Θέλω να συνδεθώ σε μια βάση δεδομένων της Oracle που βρίσκεται σε έναν άλλο υπολογιστή χρησιμοποιώντας το sqlplus. Αυτή η σελίδα πρότεινε την προσθήκη ενός στοιχείου στο tnsnames μου για να συνδεθώ σε αυτή τη βάση δεδομένων.
local_SID =
(DESCRIPTION =
(ADDRESS = (PROTOCOL= TCP)(Host= hostname.network)(Port= 1521))
(CONNECT_DATA = (SID = remote_SID))
)
και στη συνέχεια να το χρησιμοποιήσω στο sqlplus.
sqlplus user/pass@local_SID
Ωστόσο, στις δικές μου συνθήκες η τροποποίηση των τοπικών tnsnames δεν είναι δυνατή. Είναι δυνατόν να συνδεθώ σε μια απομακρυσμένη βάση δεδομένων μόνο με τη χρήση του όρου sqlplus χωρίς να χρειαστεί να αλλάξω τα tnsnames; Κάτι σαν
sqlplus user/pass@[email protected] ;( I know, this one is not valid)
sqlplus user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))
Ίσως, και αυτό μπορεί να εξαρτάται από το περιβάλλον της γραμμής εντολών που χρησιμοποιείτε, πρέπει να παραθέσετε τη συμβολοσειρά, κάτι σαν
sqlplus "user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))"
ή
sqlplus 'user/pass@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.network)(Port=1521))(CONNECT_DATA=(SID=remote_SID)))'
Μπορείτε να χρησιμοποιήσετε το easy connect για αυτό:
sqlplus usr/[email protected]/remote_service_name
Για να ενεργοποιήσετε την εύκολη σύνδεση στο μηχάνημά σας, πρέπει να την προσθέσετε στο NAMES.DIRECTORY_PATH
στο sqlnet.ora, π.χ:
NAMES.DIRECTORY_PATH=(EZCONNECT)
Εάν ο ακροατής σας βρίσκεται σε μη προεπιλεγμένη θύρα, χρησιμοποιήστε [email protected]:port/...
.
Στην πραγματικότητα φαίνεται ότι πρέπει να δώσετε ένα όνομα υπηρεσίας, όχι ένα SID- μπορεί να είναι το ίδιο, αλλά αν όχι, θα πρέπει να το λάβετε από το διακομιστή.
Δημιουργήστε ένα αντίγραφο του αρχείου tnsnames.ora σε έναν κατάλογο στον οποίο μπορείτε να γράψετε, τροποποιήστε το αρχείο ανάλογα και, στη συνέχεια, ορίστε τη μεταβλητή περιβάλλοντος TNS_ADMIN στη θέση αυτού του καταλόγου.
π.χ:
cp $ORACLE_HOME/network/admin/tnsnames.ora /tmp/tnsnames.ora
# edit the /tmp/tnsnames.ora file to add your entries
# Set the $TNS_ADMIN environment variable so that sqlplus knows where to look
export TNS_ADMIN=/tmp