Résoudre l'Erreur ORA-12514 : TNS Listener et Service de Base de Données
Cette erreur survient lorsque le listener Oracle ne reconnaît pas le service demandé. Découvrez des étapes claires pour valider les configurations TNSNAMES.ORA, LISTENER.ORA, vérifier le statut de la base de données, résoudre les problèmes réseau, et configurer correctement l'environnement. Essayez notre chatbot gratuit pour une assistance rapide sur les problèmes techniques.
Points Clés à Retenir
- Problème identifié : L’erreur ORA-12514 indique que le listener Oracle ne reconnaît pas le service de base de données spécifié dans le descripteur de connexion.
- Priorités : Vérifiez la configuration du listener, les fichiers TNSNAMES.ORA et LISTENER.ORA, le statut de la base de données, et assurez une connectivité réseau correcte.
- Outils/Commandes utiles :
lsnrctl status,sqlplus, entraînement/validation dynamique avecALTER SYSTEM REGISTER. - Fréquence d’apparition : Souvent causée par une mauvaise configuration ou une base de données non enregistrée auprès du listener.
Guide Étape par Étape pour Résoudre l’Erreur ORA-12514 TNS Listener Does Not Currently Know of Service Requested
1. Valider le Nom de Service ou le SID
Vérifiez que les informations du descripteur de connexion dans votre application ou fichier TNSNAMES.ORA utilisent le nom de service ou le SID correct. Consultez les noms exacts en suivant les étapes ci-dessous :
- Connectez-vous à votre base de données avec :
sqlplus / as sysdba - Listez les services :
SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME LIKE 'service_name'; SELECT INSTANCE_NAME FROM V$INSTANCE;
Assurez-vous que ces valeurs correspondent aux options spécifiées dans votre configuration.
2. Confirmer que le Listener Fonctionne Correctement
Le listener Oracle agit comme point d’entrée. Vérifiez son fonctionnement à l’aide de cette commande :
lsnrctl status
Cela produira une liste des instances et services que le listener reconnaît. Si votre base de données n’apparaît pas, le problème peut venir de l’enregistrement auprès du listener. Voir Étape 5 pour résoudre cela.
3. Examiner les Fichiers TNSNAMES.ORA et LISTENER.ORA
- Chemin par défaut sur le serveur Oracle :
- TNSNAMES.ORA :
$ORACLE_HOME/network/admin/tnsnames.ora - LISTENER.ORA :
$ORACLE_HOME/network/admin/listener.ora
- TNSNAMES.ORA :
Assurez-vous que :
- Les paramètres dans ces fichiers sont configurés correctement et consistent avec votre environnement.
- Le nom ou l’adresse IP mentionnée pointe vers le serveur correct.
Exemple d’un fichier TNSNAMES.ORA valide :
MY_SERVICE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = my-server-hostname)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = myservice)
)
)
Modifiez/validez l’élément SERVICE_NAME ou SID en fonction des valeurs trouvées à l’Étape 1.
Lien Utile : Guide détaillé pour configurer TNSNAMES.ORA
4. Vérifier le Statut de la Base de Données
Une base de données arrêtée ou hors connexion peut déclencher cette erreur.
- Connectez-vous en tant qu’administrateur via :
sqlplus / as sysdba - Vérifiez son statut avec :
SELECT INSTANCE_NAME, STATUS FROM V$INSTANCE;Le statut devrait être
OPEN. Si ce n’est pas le cas, redémarrez la base :SHUTDOWN IMMEDIATE; STARTUP;
5. Ajouter Dynamiquement le Service au Listener
Si la base opérationnelle n’apparaît toujours pas dans lsnrctl status, enregistrez-la manuellement avec :
ALTER SYSTEM REGISTER;
Cela informe le listener des services actifs. Vérifiez à nouveau après cela.
6. Vérifier les Problèmes de Réseau et de Pare-Feu
Un pare-feu ou des configurations réseau incorrectes peuvent empêcher la communication entre client et serveur.
-
Testez la connectivité avec :
telnet server_ip_address 1521Remplacez
server_ip_addresspar l’adresse de votre serveur Oracle. -
Si la connexion échoue, vérifiez les règles du pare-feu ou de
iptables. Ajoutez une règle si nécessaire pour autoriser le trafic sur le port 1521.
7. Inspecter les Journaux d’Erreur
Les fichiers journaux du listener peuvent apporter des informations utiles. Par défaut, vous trouverez ces fichiers dans le répertoire suivant :
$ORACLE_HOME/network/log/listener.log
Recherchez des erreurs ou avertissements spécifiques liés à votre service ou port.
8. Redémarrer le Listener ou la Base Oracle
Parfois, un redémarrage rapide suffit.
-
Pour redémarrer le listener :
lsnrctl stop lsnrctl start -
Si nécessaire, redémarrez aussi la base :
SHUTDOWN IMMEDIATE; STARTUP;
9. Vérifier la Configuration Client
Pour les connexions à partir d’un poste client, vérifiez :
- Version de l’Oracle Client : Votre version doit être compatible avec la version du serveur.
- Fichier TNSNAMES.ORA local : Il doit être configuré correctement.
Astuces Supplémentaires : Si vous utilisez des connexions via VPN ou équipements réseau distants, pensez à configurer des outils de connexion sécurisée tels que NordVPN pour éviter les interruptions de connectivité.
Questions Fréquemment Posées
1. Pourquoi cette erreur ORA-12514 se produit-elle souvent après un redémarrage du serveur ?
Cela peut arriver si l’instance de base de données n’a pas été enregistrée automatiquement auprès du listener. Assurez-vous que l’enregistrement dynamique est activé dans les paramètres de la base (LOCAL_LISTENER ou REMOTE_LISTENER).
2. Comment assurer une connectivité stable via un VPN ?
Utilisez des configurations réseau robustes avec des outils comme NordVPN. Assurez-vous aussi que votre fichier TNSNAMES.ORA pointe vers l’adresse correcte du serveur cible.
3. Comment éviter cette erreur sur des environnements de production ?
- Surveillez les services et le listener en permanence.
- Testez régulièrement la connexion via
tnsping. - Utilisez des solutions de sauvegarde comme MiniTool ShadowMaker pour restaurer rapidement votre environnement en cas de problème.
Avec ce guide, vous êtes désormais équipé pour diagnostiquer et corriger l’erreur ORA-12514 de manière experte, en minimisant le temps d’arrêt et les frustrations.
