Bonjour à tous,
-le contexte:
ma société développe et installe des applications avec des bases de données ORACLE (8i ou 10g).
Quelques-fois la base de données est "installée" sur 2 machines avec un LOAD-BALANCING.
Ainsi le tnsmames.ora client est du type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 MADB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = machine01)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = machine02)(PORT = 1521)) (LOAD_BALANCE = yes) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = LaBD.Clientdb.CLIENT) ) )
-la problématique:
Quelquefois une des 2 machines tombe en panne, ou bien un conflit d'adresse IP entraine le fait que la connexion ORACLE ne marche plus - listener KO-, et personne ne s'en apercoit... jusqu'à ce qu'un problème intervienne sur la 2ème machine, et là c'est la catastrophe puisqu'aucune des 2 instances de la BD ne répond plus...
-la solution envisagée, mais comment faire ?
la solution envisagée, c'est, après s'être connecté à la base de données (pour info: soit sous WINDEV, soit sous SQLPLUS), de tester si toutes les autres instances (auxquelles on aurait pu éventuellement se connecter si le load-balancing en avait décidé autrement, et qui doivent être opérationnelles !) sont OK...
-les résultats de mes recherches:
sont bien maigres...
j'ai trouvé la table DBA_RESOURCE_INCARNATIONS qui me semble intéressante
ainsi je pourrais peut-être pour chaque ligne de DBA_RESOURCE_INCARNATIONS tester la commande connect user/pwd@//HostNameDeDBA_RESOURCE_INCARNATIONS/ServiceNameRenvoyeParLaCommandeGlobalName
Bon j'avoue que je galère pas mal...
Merci d'avance de votre aide.
Patrick.
Partager