Rilevare se è installato un database Oracle
-
08-07-2019 - |
Domanda
Mi chiedevo se ci fosse un modo per sapere se un'istanza di Oracle su un sistema ha un database installato o no?
Questo è per uno script di installazione e devo verificare che sia presente un database effettivo prima di procedere con il caricamento del mio tablespace su quel database. Qualcuno ha affrontato questo problema prima?
Saluti
Soluzione
Verifica l'esistenza di un ORACLE_HOME. È anche ragionevole aspettarsi che questo ambiente debba essere configurato per l'installazione, quindi testare le variabili di ambiente ed uscire con una diagnostica ragionevole (probabilmente suggerendo che eseguano oraenv) è un buon primo avvio. Se hai impostato ORACLE_HOME, ORACLE_SID o un'altra variabile d'ambiente appropriata, puoi verificare l'esistenza di una casa dell'oracolo e testare la connettività e le autorizzazioni del database.
Altri suggerimenti
Per Oracle 10g, su Windows:
- Controlla il registro:
- La chiave
HKLM \ SOFTWARE \ ORACLE
deve esistere. - Deve esistere una sottochiave che:
- Ha un nome che inizia con
KEY_
(comeKEY_OraDb10g_home1
, la stringa finale è un nome di casa Oracle). - Ha un valore il cui nome inizia con
ORA_
e termina con_AUTOSTART
. (comeORA_XE_AUTOSTART
, la stringa centrale è un nome di istanza).
- Ha un nome che inizia con
- La chiave
Attenzione, installa un client Oracle (senza un'istanza di database), crea voci nel registro e può impostare variabili di ambiente (come ORACLE_HOME
). Questo è il motivo per cui il modello sopra è un po 'complicato.
È molto probabile che questo modello funzioni anche per Oracle 9i, e possibilmente Oracle 8i.
Puoi usare tnsping
per verificare se il listener del database è attivo, sarebbe una buona indicazione. A parte questo, perché non semplicemente fare una connessione di prova? Se fa parte di un processo di installazione, potresti chiedere all'utente di inserire le credenziali di connessione appropriate se non sai quali saranno in anticipo.
Cerca il file / etc / oratab per le case degli oracoli. Queste case hanno il software del database installato e il nome del database da quella casa. Quindi puoi verificare se il database è valido o meno avviandolo.
Non sono sicuro di Oracle, ma per MySQL e PostgreSql faccio quanto segue:
$yum grouplist | grep SQL
Questo restituisce:
MySQL Database client
MySQL Database server
PostgreSQL Database client
PostgreSQL Database server
Quindi suppongo che dovresti provare:
$yum grouplist | grep Orac