Détecter si une Base de données Oracle est Installé
Je me demandais si il y avait un moyen de savoir si une instance d'Oracle sur un système de base de données installé ou pas?
C'est pour un script d'installation, et j'ai besoin de vérifier qu'il existe une réelle base de données avant de commencer le chargement de mon propre espace de stockage sur la base de données. Quelqu'un a abordé ce problème avant?
Acclamations
OriginalL'auteur Christopher McAtackney | 2008-11-20
Vous devez vous connecter pour publier un commentaire.
Vérifier l'existence d'un ORACLE_HOME. Il est également raisonnable de s'attendre à ce que cet environnement doit être configuré pour l'installation, afin de tester les variables d'environnement et de sortir avec un bon diagnostic (éventuellement, ce qui suggère qu'ils exécuter oraenv) est un bon début. Si vous avez un ORACLE_HOME, ORACLE_SID ou une autre variable d'environnement définie, vous pouvez alors vérifier l'existence d'un oracle de la maison et de test de connectivité de base de données et les autorisations.
Si vous avez instantanée client, alors vous n'avez pas besoin d'un oracle de la maison... la chaîne de connexion peut être intégré directement dans l'application et n'a pas besoin d'oracle à la maison ou tsnames.ora
Je pense que l'OP parlait d'un serveur, vous pouvez instantanément client sur un PC, mais un serveur aura encore une base oracle pour la base de données d'instance.
OriginalL'auteur ConcernedOfTunbridgeWells
Pour Oracle 10g, sur Windows :
HKLM\SOFTWARE\ORACLE
doit exister.KEY_
(commeKEY_OraDb10g_home1
, la fin de la chaîne étant un Oracle home nom).ORA_
et se termine avec_AUTOSTART
. (commeORA_XE_AUTOSTART
, le milieu de chaîne étant un nom d'instance).Attention, l'installation d'un client Oracle (sans une instance de base de données), crée les entrées dans le registre, et peut définir des variables d'environnement (comme
ORACLE_HOME
). C'est pourquoi le schéma ci-dessus est un peu compliqué.Ce modèle est très probable de travailler pour Oracle 9i aussi, et, éventuellement, Oracle 8i.
J'ai essayé de vérifier le registre en utilisant l'instruction suivante (C#): var swSubkeys = (Registre.LocalMachine.OpenSubKey("Logiciel")).GetSubKeyNames(); mais il n'y a pas d'ORACLE entrée dans swSubKeys (un tableau de chaîne). J'ai donc vérifier à l'aide de Regedit manuellement, à l'évidence l'ORACLE de la sous-clé existe dans HKLM\SOFTWARE ... C'est très confus.
OriginalL'auteur Mac
Vous pouvez utiliser
tnsping
pour vérifier si l'écouteur de base de données est active, ce qui serait une bonne indication. Autre que cela, pourquoi ne pas tout simplement faire un test de connexion? Si elle fait partie d'un programme d'installation de processus, vous pouvez inviter l'utilisateur à saisir le cas échéant des informations d'identification de connexion si vous ne savez pas ce qu'ils vont être à l'avance.OriginalL'auteur ninesided
Rechercher le /etc/oratab fichier pour oracle maisons.Ces maisons ont de la base de données du logiciel installé en tant que bien que la base de données nom de cette maison.Ensuite, vous pouvez vérifier si la base de données est bonne ou pas et qu'il commence.
OriginalL'auteur
Je ne suis pas sûr au sujet de l'Oracle, mais pour MySQL et PostgreSql je ne les suivants:
Ce retourne:
Donc je suppose que vous devriez essayer:
OriginalL'auteur Maha