2008-11-20 35 views
8

Zastanawiam się, czy istnieje sposób sprawdzenia, czy instancja Oracle w systemie ma zainstalowaną bazę danych, czy nie?Wykrywanie, czy zainstalowana jest baza danych Oracle

Jest to skrypt instalacyjny i muszę sprawdzić, czy istnieje aktualna baza danych przed kontynuowaniem ładowania mojego własnego obszaru tabel do tej bazy danych. Czy ktoś wcześniej rozwiązał ten problem?

Cheers

Odpowiedz

5

Sprawdź, czy istnieje klucz ORACLE_HOME. Rozsądnie jest oczekiwać, że to środowisko powinno być skonfigurowane do instalacji, więc testowanie zmiennych środowiskowych i wychodzenie z rozsądną diagnostyką (prawdopodobnie sugerując, że uruchamiają oraenv) jest dobrym początkiem. Jeśli masz ORACLE_HOME, ORACLE_SID lub inną odpowiednią ustawioną zmienną środowiskową, możesz sprawdzić istnienie domu Oracle i przetestować łączność z bazami danych i uprawnienia.

+0

Właśnie sprawdziłem, nie mam ORACLE_HOME lub ORACLE_SID i mogę łączyć się z bazami danych Oracle bez żadnych problemów. – ninesided

+0

Jeśli masz klienta natychmiastowego, to nie potrzebujesz domu z wyrocznią ... ciąg połączenia może być wbudowany bezpośrednio w aplikację i nie potrzebuje domena oracle home lub tsnames.ora – jle

+0

Myślę, że OP mówił o serwerze - ty może mieć natychmiastowego klienta na PC, ale serwer nadal będzie miał siedzibę Oracle dla instancji bazy danych. – ConcernedOfTunbridgeWells

4

można użyć tnsping aby sprawdzić, czy słuchacz baza danych jest aktywna, to byłoby to dobre wskazanie. Poza tym, dlaczego nie po prostu zrobić połączenie testowe? Jeśli jest to część procesu instalacyjnego, możesz poprosić użytkownika o podanie odpowiednich poświadczeń połączenia, jeśli nie wiesz, co będzie z góry.

5

dla Oracle 10g w systemie Windows:

  • sprawdzić rejestr:
    • Kluczem HKLM\SOFTWARE\ORACLE musi istnieć.
    • podklucz musi istnieć, że:
      • ma imię rozpoczynające KEY_ (jak KEY_OraDb10g_home1, ciąg koniec bycia nazwy macierzystego Oracle).
      • Ma wartość, której nazwa zaczyna się od ORA_, a kończy na _AUTOSTART. (jak ORA_XE_AUTOSTART, środkowy łańcuch będący nazwą instancji).

Uważaj, instalując klienta Oracle (bez instancji bazy wtedy), tworzy wpisy w rejestrze i może ustawić zmienne środowiskowe (np ORACLE_HOME). Dlatego powyższy wzór jest nieco skomplikowany.

Ten wzorzec jest bardzo prawdopodobny również w przypadku Oracle 9i i prawdopodobnie Oracle 8i.

+0

+1 dla mapy drogowej. Oprogramowanie klienckie Win32 Oracle generuje ogromną ilość śmieci w rejestrze podczas instalacji. – ConcernedOfTunbridgeWells

+0

@Mac Próbowałem sprawdzić rejestr przy użyciu następujące instrukcja (C#): ** var swSubkeys = (Registry.LocalMachine.OpenSubKey ("Software")). GetSubKeyNames(); ** ale nie ma wpisu ORACLE w swSubKeys (tablica ciągów znaków). Tak więc sprawdzam używając Regedit ręcznie, oczywiście podklucz ORACLE istnieje w HKLM \ SOFTWARE ... Jest bardzo zdezorientowany. – MagB

0

Wyszukaj plik/etc/oratab dla domów oracle.Te domy mają zainstalowane oprogramowanie bazy danych, a także nazwę bazy danych z tego domu. Następnie możesz sprawdzić, czy baza danych jest dobra, czy nie, uruchamiając ją.

0

nie jestem pewien o Oracle, ale dla MySQL oraz PostgreSQL I wykonaj następujące czynności:

$yum grouplist | grep SQL 

ta zwraca:

MySQL Database client 
MySQL Database server 
PostgreSQL Database client 
PostgreSQL Database server 

Zakładam więc, należy spróbować:

$yum grouplist | grep Orac 
Powiązane problemy