Bonjour !
Je suis actuellement en train de développer une supervision de nos SGBD Oracle (en bash, grâce à l'outil de Monitoring Xymon) et j'ai un problème :
La plupart de mes scripts vont aller chercher des informations dans v$instance et v$database (entre autres) et je n'ai pas eu de problèmes à créer un rôle et un utilisateur spécifique, lui grant uniquement ce dont il a besoin et taper sur la base ouverte.
Seulement, le script actuel sur lequel je travaille doit savoir si la base est ouverte ou juste montée. (select status from v$instance)
Le problème est que si cette requête marche parfaitement pour le role sysdba sans login, impossible pour mon utilisateur de récupérer l'information "MOUNTED" si la base n'est pas ouverte, mes autres scripts ne fonctionnent plus non plus avec la base dans cet état, voici le message d'erreur que j'obtiens sur toutes les requêtes exécutées :
Est-ce parce que mon rôle n'est pas adapté à ce type de requête ? Y a t-il possibilité d'autoriser l'accès sysdba sans lui assigner explicitement ce rôle ? La voici en entier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ERROR: ORA-01033: ORACLE initialization or shutdown in progress Process ID: 0 Session ID: 0 Serial number: 0 SP2-0306: Invalid option. Usage: CONN[ECT] [{logon|/|proxy} [AS {SYSDBA|SYSOPER|SYSASM}] [edition=value]] where ::= [/][@] ::= [][/][@] SP2-0306: Invalid option. Usage: CONN[ECT] [{logon|/|proxy} [AS {SYSDBA|SYSOPER|SYSASM}] [edition=value]] where ::= [/][@] ::= [][/][@] SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
Merci pour vos réponses, j'espère avoir été clair dans la description de mon problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 req=$(sqlplus -s $DB_USER/$DB_PASSWORD@$HOSTNAME:$ORACLE_PORT/$ORACLE_SID << EOF set echo off; set feedback off; set heading off; select status from v\$instance; exit; EOF );
Cdt,
Dorian.
Partager