Ας πούμε ότι έχω μια βάση δεδομένων Oracle. Έχω όνομα χρήστη = x, κωδικό πρόσβασης = y, βάση δεδομένων = z. Επίσης γνωρίζω τη θύρα = a, SID = b, Hostname = c.
Οπότε πώς πρέπει να συνδεθώ σωστά; Χρησιμοποίησα πολλές επιλογές, όπως:
sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'
sqlplus (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=c)(PORT=a))(CONNECT_DATA=(SID=b)))
Η υποβολή αυτών των γραμμών εντολών συνήθως μου δίνει πίσω μηνύματα σφάλματος όπως:
ORA-12560: TNS:σφάλμα προσαρμογέα πρωτοκόλλου <br>, ORA-12514: TNS:listener does not currently know of service
Πολλές ευχαριστίες εκ των προτέρων!!!
Δοκιμάσατε
sqlplus username/password@host:port/service
sqlplus x/y@c:a/b
οι σύγχρονες εκδόσεις του sqlplus (έκδοση 11 ή νεότερη) κατανοούν αυτή τη σύνταξη και δεν χρειάζεστε ένα αρχείο tnsnames.ora.
Το πιο απλό είναι να χρησιμοποιήσετε το αρχείο tnsnames.ora για να συνδεθείτε στη βάση δεδομένων. Για το σκοπό αυτό επεξεργαστείτε το και προσθέστε μια νέα καταχώρηση: Αυτό το αρχείο βρίσκεται κανονικά στον κατάλογο $ORACLE HOME\NETWORK\ADMIN.
myDb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = c)(Port =a))
)
(CONNECT_DATA =
(SERVICE_NAME =b)
)
)
και στη συνέχεια μπορείτε να συνδεθείτε με την db:
sqlplus x/y@myDb
Ίσως η βάση δεδομένων σας δεν είναι έτοιμη. Εάν το μηχάνημα επανεκκινήθηκε και η παρουσία δεν έχει ρυθμιστεί σε αυτόματη εκκίνηση (και δεν ξεκίνησε χειροκίνητα), ίσως χρειαστεί να εκκινήσετε την υπηρεσία μόνοι σας.
Αν έχετε πρόσβαση στην οθόνη Υπηρεσίες, μπορείτε να το κάνετε από εκεί- ή, μπορείτε να το κάνετε από τη γραμμή εντολών.
Μεταβείτε στη γραμμή εντολών και εισαγάγετε τις ακόλουθες εντολές:
set oracle_sid=ORCL
net start oracleserviceORCL
Η πρώτη ορίζει το SID της Oracle- η δεύτερη εκκινεί πραγματικά την υπηρεσία.