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

È stato utile?

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_ (come KEY_OraDb10g_home1 , la stringa finale è un nome di casa Oracle).
      • Ha un valore il cui nome inizia con ORA_ e termina con _AUTOSTART . (come ORA_XE_AUTOSTART , la stringa centrale è un nome di istanza).

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top