[SQL*PLUS][Bash] requête sur base montée
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 :
Code:
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 |
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:
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
); |
Merci pour vos réponses, j'espère avoir été clair dans la description de mon problème.
Cdt,
Dorian.