Aujourd’hui, comme la machine à nœuds ETL souhaite accéder à un nouveau serveur de base de données, elle doit configurer tnsnames.ora, et une fois le résultat configuré, une erreur est signalée lors de la connexion à la base de données :
ORA-12547: TNS:lost contact
Au début, je pensais que c’était tnsnames.ora mal configuré, mais après comparaison et vérification, cette possibilité a été écartée. Parce que la même configuration sur d’autres hôtes a été vérifiée pour se connecter à ce serveur de base de données.
Ensuite, j’ai cherché beaucoup d’informations sur Internet selon cette erreur « ORA-12547 : TNS : lost contact », certains disaient qu’il manquait de logiciels, d’autres qu’il y avait un problème avec les paramètres d’autorisation du fichier sur l’hôte de la base de données, mais ils n’étaient pas en accord avec la situation rencontrée cette fois.
Plus tard, j’ai décidé de consulter les journaux, de vérifier le listener.log de la base de données du journal de surveillance, et j’ai découvert qu’il y avait les messages d’erreur suivants : 20-MAI-2016 15:46:03 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=db01)(USER=grid))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=186647552)) * statut * 0 Connexion entrante de 192.168.24.1 rejetée 20-MAI-2016 15:46:06 * 12546
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error TNS-00516 : Autorisation refusée
et vérifié la configuration sqlnet.ora du serveur de base de données, et constaté que c’était parce que la restriction IP d’accès à la base de données était fixée, c’est-à-dire que seule l’IP spécifiée pouvait accéder à la base de données.
Comme il s’agit d’une base de données RAC à deux nœuds, modifier sqlnet.ora sous l’utilisateur de la grille consiste à ajouter l’adresse IP du nœud ETL à la liste blanche IP pour accéder à la base de données. Après modification, redémarrez l’écoute (rechargement lsnrctl), sinon une erreur sera toujours signalée. |