Есть ли эквивалент SHOW DATABASES
оператора MySQL ?
Можно ли найти базы данных в кластере? т.е. базы данных присутствующие в сети в какой-то другой системе?
Могу ли я проанализировать файлы, присутствующие в установке Oracle, чтобы найти то же самое?
Учитывая полные учетные данные доступа к системе Oracle, как бы вы перечислили все существующие базы данных?
Ответы:
Там нет такой вещи. Вы можете запросить прослушиватели на машине (
lsnrctl status
), чтобы узнать, какие службы там зарегистрированы, но это не сопоставляет один-к-одному с базой данных (и на одной машине может быть несколько слушателей). В противном случае обычно используемые инструменты подключаются к одному экземпляру базы данных, а экземпляр относится к одной базе данных.Если вы говорите о кластерах Oracle RAC, то каждый экземпляр знает своих одноранговых узлов (другие экземпляры, которые обслуживают одну и ту же базу данных), и вы можете найти другие экземпляры, запущенные в данный момент для этой базы данных, используя
gv$instance
представление.Вы также можете использовать
crsctl
утилиту для перечисления служб (включая базы данных), которые зарегистрированы в кластере, и их статус.Если вы говорите о программном обеспечении для кластеризации другого производителя, я уверен, что у них всех есть такие утилиты управления ресурсами для запроса.
Если вы говорите только о группе машин, то нет, нет 100% надежного способа перечисления всех баз данных в сети.
Чтобы найти активные (то есть запущенные) базы данных, найдите
*_pmon_*
процессы в Unix (по одному на экземпляр базы данных) и службы Oracle в Windows.Чтобы найти установки программного обеспечения базы данных Oracle, посмотрите
/etc/oratab
на Unix. Это должно содержать всеORACLE_HOME
установленные. Вы можете заглянуть внутрь каждого из них в$ORACLE_HOME/dbs
течениеspfile<SID>.ora
и / илиinit<SID>.ora
файлов - будет один для каждой базы данных.(Я полагаю, что вы можете найти эквивалент информации в
oratab
разделах реестра Windows нижеHKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
, но я не знаю ее структуру.)Теперь, конечно, если вы зарегистрировали всю свою базу данных на сервере OEM (Enterprise Manager), когда вы их установили, вы можете найти полный список там - но я думаю, если вы спросите, это не так.
источник
У Oracle нет баз данных, но есть схемы, вы можете перечислить их с помощью
или что-то вроде этого:
источник
Проще говоря, в Oracle нет прямой аналогии с «базами данных» или «кластером» MySQL: наиболее близким совпадением является «схема», но она все еще сильно отличается.
Очевидно, это изменится в 12c с введением подключаемых баз данных:
источник
Я думаю, что ответ для будущих браузеров на * nix может быть:
кот / etc / oratab
источник
Просто подключитесь к ASM и проверьте клиент базы данных.
источник
Если у вас есть подключаемые базы данных (рекомендуется) в Oracle 12, вы можете сделать следующее:
источник
Для автономной базы данных, чтобы получить список баз данных, которые запускаются автоматически после перезагрузки хоста:
или просто получить список всех баз данных:
Для баз данных RAC может быть полезен следующий метод:
Также, как уже упоминалось, база данных в MySQL отличается от базы данных в Oracle. В Oracle это ближе к схеме - это именуемый контейнер для объектов пользователя. Для получения списка схем вы можете использовать следующую инструкцию SQL:
или получить список не связанных с системой схем (доступно в Oracle RDBMS начиная с версии 12c):
источник