Мне было интересно, есть ли способ узнать, установлена ли база данных в экземпляре Oracle в системе или нет?
Это для сценария установки, и мне нужно убедиться, что существует действующая база данных, прежде чем продолжить загрузку моего собственного табличного пространства в эту базу данных. Кто-нибудь раньше занимался этой проблемой?
Ваше здоровье





Вы можете использовать tnsping, чтобы проверить, активен ли слушатель базы данных, это будет хорошим показателем. Кроме того, почему бы просто не выполнить тестовое соединение? Если это часть процесса установки, вы можете предложить пользователю ввести соответствующие учетные данные для подключения, если вы не знаете, какими они будут заранее.
Проверьте наличие ORACLE_HOME. Также разумно ожидать, что эта среда должна быть настроена для установки, поэтому тестирование переменных среды и выход с разумной диагностикой (возможно, предполагающей, что они запускают oraenv) - хороший первый старт. Если у вас есть ORACLE_HOME, ORACLE_SID или другая соответствующая переменная среды, вы можете затем проверить наличие дома оракула и проверить возможность подключения к базе данных и разрешений.
Если у вас есть мгновенный клиент, вам не нужен oracle home ... строка подключения может быть встроена прямо в приложение и не требует oracle home или tsnames.ora
Я думаю, что OP говорил о сервере - у вас может быть мгновенный клиент на ПК, но сервер все равно будет иметь дом оракула для экземпляра базы данных.
Для Oracle 10g в Windows:
HKLM\SOFTWARE\ORACLE должен существовать.KEY_ (например, KEY_OraDb10g_home1, где конечная строка является домашним именем Oracle).ORA_ и заканчивается на _AUTOSTART. (например, ORA_XE_AUTOSTART, средняя строка - имя экземпляра).Будьте осторожны, установка клиента Oracle (тогда без экземпляра базы данных) создает записи в реестре и может устанавливать переменные среды (например, ORACLE_HOME). Вот почему приведенный выше шаблон немного сложен.
Этот шаблон, скорее всего, также будет работать для Oracle 9i и, возможно, Oracle 8i.
+1 к дорожной карте. Клиентское программное обеспечение Win32 Oracle при установке создает огромное количество мусора в реестре.
@Mac Я попытался проверить реестр, используя следующий оператор (C#): var swSubkeys = (Registry.LocalMachine.OpenSubKey («Программное обеспечение»)). GetSubKeyName s ();, но в swSubKeys (массив строк) нет записи ORACLE. Поэтому я проверяю использование Regedit вручную, очевидно, что подраздел ORACLE существует в HKLM \ SOFTWARE ... Это очень запутано.
Найдите файл / etc / oratab для домов oracle. В этих домах установлено программное обеспечение базы данных, а также имя базы данных из этого дома. Затем вы можете проверить, исправна ли база данных, запустив ее.
Я не уверен насчет Oracle, но для MySQL и PostgreSql я делаю следующее:
$yum grouplist | grep SQL
Это возвращает:
MySQL Database client
MySQL Database server
PostgreSQL Database client
PostgreSQL Database server
Я полагаю, вам стоит попробовать:
$yum grouplist | grep Orac
Я только что проверил, у меня нет ORACLE_HOME или ORACLE_SID, и я могу без проблем подключаться к базам данных Oracle.