Σήμερα, επειδή το μηχάνημα κόμβων ETL θέλει να αποκτήσει πρόσβαση σε έναν νέο διακομιστή βάσης δεδομένων, πρέπει να ρυθμίσει το tnsnames.ora και μετά τη διαμόρφωση του αποτελέσματος, αναφέρεται ένα σφάλμα κατά τη σύνδεση στη βάση δεδομένων:
ORA-12547: TNS:lost contact
Στην αρχή, νόμιζα ότι ήταν λάθος ρυθμισμένο το tnsnames.ora, αλλά μετά από σύγκριση και επαλήθευση, αυτή η πιθανότητα αποκλείστηκε. Επειδή η ίδια ρύθμιση παραμέτρων σε άλλους κεντρικούς υπολογιστές έχει επαληθευτεί για σύνδεση σε αυτόν τον διακομιστή βάσης δεδομένων.
Στη συνέχεια, έψαξα πολλές πληροφορίες στο Διαδίκτυο σύμφωνα με αυτό το σφάλμα "ORA-12547: TNS: lost contact", κάποιοι είπαν ότι υπήρχε έλλειψη πακέτων λογισμικού και κάποιοι είπαν ότι υπήρχε πρόβλημα με τις ρυθμίσεις αδειών αρχείων στον κεντρικό υπολογιστή της βάσης δεδομένων, αλλά δεν ήταν σύμφωνες με την κατάσταση που αντιμετωπίστηκε αυτή τη φορά.
Αργότερα, αποφάσισα να κοιτάξω τα αρχεία καταγραφής, έλεγξα το αρχείο καταγραφής παρακολούθησης listener.log της βάσης δεδομένων και διαπίστωσα ότι υπήρχαν τα ακόλουθα μηνύματα σφάλματος σε αυτό: 20-MAY-2016 15:46:03 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=db01)(USER=grid))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647552)) * status * 0 Η εισερχόμενη σύνδεση από το 192.168.24.1 απορρίφθηκε 20-ΜΑΪ́ΟΥ-2016 15:46:06 * 12546
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error TNS-00516: Απορρίφθηκε η άδεια
αναφορά και έλεγξε τη διαμόρφωση sqlnet.ora του διακομιστή βάσης δεδομένων και διαπίστωσε ότι αυτό συνέβη επειδή είχε οριστεί ο περιορισμός IP πρόσβασης στη βάση δεδομένων, δηλαδή μόνο η καθορισμένη IP μπορούσε να έχει πρόσβαση στη βάση δεδομένων.
Δεδομένου ότι πρόκειται για μια βάση δεδομένων RAC δύο κόμβων, η τροποποίηση του sqlnet.ora κάτω από τον χρήστη του πλέγματος είναι η προσθήκη της διεύθυνσης IP του κόμβου ETL στη λίστα επιτρεπόμενων IP για πρόσβαση στη βάση δεδομένων. Μετά την τροποποίηση, επανεκκινήστε την ακρόαση (επαναφόρτωση lsnrctl), διαφορετικά θα εξακολουθεί να αναφέρεται σφάλμα. |