как узнать sid базы oracle
Проверка sid oracle и имени базы данных
Я хочу проверить SID и текущее имя базы данных.
Я использую следующий запрос для проверки oracle SID
но таблица или представление не существует ошибка приходит.
Я использую следующий запрос для проверки текущей базы данных имя
но таблица или представление не существует ошибка приходит.
любая идея для выше двух проблем?
6 ответов
предполагаю select user from dual; должен дать вам текущего пользователя
и select sys_context(‘userenv’,’instance_name’) from dual; имя экземпляра
Я считаю, что вы можете получить Сид as SELECT sys_context(‘USERENV’, ‘SID’) FROM DUAL; (не могу проверить это сейчас)
Если, как и я, ваша цель-получить хост базы данных и SID для создания url-адреса Oracle JDBC, как
следующие команды помогут:
команда Oracle query для проверки SID (или имени экземпляра):
команда Oracle query для проверки имени базы данных (или хоста сервера):
Att. Серхио Марсело!—4—>
для полноты вы также можете использовать ORA_DATABASE_NAME.
возможно, стоит отметить, что не все методы дают вам одинаковый результат:
самый простой способ найти имя базы данных:
это представление предоставляется PUBLIC, поэтому любой может запросить его.
типа sqlplus командная строка
тогда u будет видеть результат в командной строке
Как уже упоминалось выше,
вы не можете запросить V$database/V$instance/V$thread, потому что у вашего пользователя нет необходимых разрешений. Вы можете предоставить их (через учетную запись DBA) с помощью:
Изменение SID и имени базы данных
Что такое SID, как его узнать и как изменить
Ответ Тома Кайта
НАЗНАЧЕНИЕ
Здесь описано, как найти и изменить имя базы данных ( db_name ) или ORACLE_SID для экземпляра, не пересоздавая базу данных.
ДЛЯ КОГО ЭТА ЗАМЕТКА
Чтобы найти текущие значения DB_NAME и ORACLE_SID:
Если ORACLE_SID = DB_SID и db_name = DBNAME :
Чтобы найти текущее значение ORACLE_SID :
Чтобы найти текущее значение DB_NAME :
Изменение базы данных для работы с новым ORACLE_SID :
Например, пройдите по всем каталогам и выполните grep ORACLE_SID *
Если в этот момент вы получаете сообщение об ошибке, утверждающее, что для файла необходимо восстановление носителя (media recovery), значит, база данных была остановлена аварийно на шаге 4. Можно попытаться восстановить базу данных, используя данные повторного выполнения в текущем файле журнала, с помощью команды:
Чтобы найти список активных журнальных файлов:
Cколько АБД Oracle надо, чтобы поменять лампочку. Комментарий от 13 сентября 2001 года
Удивительно, сколько механической работы требуется в Oracle для простых вещей.
Ответ Тома Кайта
База данных поддерживает реляционную модель, а обеспечивающее работу с ней программное обеспечение, согласен, этой модели не соответствует.
НА САМОМ ДЕЛЕ, мы сталкиваемся с попыткой ИЗМЕНИТЬ ПЕРВИЧНЫЙ КЛЮЧ.
Так что, даже при наличии ОДНОГО внешнего ключа, пробюлема будет аналогичной. Если вы когда-нибудь изменяли значение первичного ключа, вам приходилось делать то же самое (находить все внешние ключи и изменять их соответственно).
Комментарий от 1 марта 2001 года
Ответ Тома Кайта
На NT посмотрите список служб Oracle в Панели управления.
Оригинал обсуждения этого вопроса можно найти здесь.
Изменение SID на платформе Windows, кстати, описано вот здесь.
Copyright © 2003 Oracle Corporation
В следующем выпуске
Перевод очередной статьи Джонатана Льюиса пока придется подождать. Статья большая. Пожалуй, продолжим тему клонирования БД «по мотивам» ответов Тома Кайта. Следите за новостями на сайте проекта Open Oracle.
Как получить список SID Oracle
У меня есть хост, порт, идентификатор пользователя и пароль, но отсутствует SID для подключения к СУБД Oracle. Как найти список SID на этом сервере?
Ответов: 5
В приведенном выше примере вы можете подключиться к базе данных XE с помощью Conect Strings XEXDB, XE_XPT или XE.
Короткий ответ: вам нужен доступ к ОС хоста:
В Windows я предполагаю, что в списке задач есть аналогичная подпись.
На практике эта информация обычно предоставляется вам тем, кто администрирует базу данных при создании вашей подключаемой учетной записи.
Вопрос сводится к тому, что ORACLE_SID или службы поддерживаются слушателем, который выполняется на хост-порту X. В зависимости от того, насколько безопасен этот прослушиватель, вы можете увидеть это, используя команду lsnrctl от клиента, на котором установлен lsnrctl. Для этого вам понадобится установка сервера oracle на этом клиенте. Когда у вас есть это, вы можете
Значение по умолчанию для заполнения прослушивателя 10g вызывает следующий результат: TNS-01189: слушатель не смог аутентифицировать пользователя
Это связано с тем, что по умолчанию 10g oracle имеет значение «Безопасность»: «Локальная аутентификация ОС» означает, что только пользователь локальной ОС, который начал прослушиватель, может выдать команды lsnrctl слушателю. Слушатель отказывается отвечать на любого другого пользователя.
Другим вариантом для рассмотрения является файл / etc / oratab в Unix или его equivilent в Windows, который, я думаю, является кустом реестра.
Oratab должен отображать все идентификаторы SID на хосте, независимо от того, запущен ли он сейчас или нет.
Существует сценарий nmap, который может помочь, oracle-sid-brute:
Он был установлен с nmap в моей системе.
Это поможет только в том случае, если SID можно сопоставить в списке. Список по умолчанию:
Как получить список SID Oracle
У меня есть хост, порт, идентификатор пользователя и пароль, но отсутствует SID для подключения к СУБД Oracle. Как найти список SID на этом сервере?
В приведенном выше примере вы можете подключиться к базе данных XE с помощью Conect Strings XEXDB, XE_XPT или XE.
Короткий ответ: вам нужен доступ к операционной системе:
В Windows, я думаю, есть похожая подпись в списке задач.
На практике эта информация обычно предоставляется вам тем, кто администрирует базу данных при создании вашей учетной записи.
Вопрос сводится к тому, что ORACLE_SID или сервисы поддерживаются слушателем, который выполняется на хост-порту X. В зависимости от того, насколько безопасен этот прослушиватель, вы можете увидеть это с помощью команды lsnrctl от клиента, на котором установлен lsnrctl, Для этого вам понадобится установка сервера oracle на этом клиенте. Когда у вас есть это, вы можете выпустить
Значение по умолчанию для заполнения 10-го слушателя вызывает следующий результат:
TNS-01189: слушатель не смог аутентифицировать пользователя
Это связано с тем, что из 10g оракула по умолчанию
Безопасность включена: аутентификация локальной ОС
что только пользователь локальной ОС, который начал слушатель, может выдать команды lsnrctl слушателю. Слушатель отказывается отвечать любому другому пользователю.
Другим вариантом для рассмотрения является файл /etc/oratab в Unix или его equivilent в Windows, который, я думаю, является кустом реестра.
В oratab должен быть указан список всех идентификаторов безопасности на хосте, независимо от того, запущен ли он в настоящий момент.
Существует nmap script, который может помочь, oracle-sid-brute:
Он был установлен с nmap в моей системе.
Это поможет только в том случае, если SID можно сопоставить в списке. Список по умолчанию:
Checking oracle sid and database name
I want to check SID and current database name.
I am using following query for checking oracle SID
but table or view does not exist error is coming.
I am using following query for checking current database name
but table or view does not exist error is coming.
Any idea for above two problems?
7 Answers 7
I presume SELECT user FROM dual; should give you the current user
and SELECT sys_context(‘userenv’,’instance_name’) FROM dual; the name of the instance
I believe you can get SID as SELECT sys_context(‘USERENV’, ‘SID’) FROM DUAL;
If, like me, your goal is get the database host and SID to generate a Oracle JDBC url, as
the following commands will help:
Oracle query command to check the SID (or instance name):
Oracle query command to check database name (or server host):
Att. Sergio Marcelo
Just for completeness, you can also use ORA_DATABASE_NAME.
It might be worth noting that not all of the methods give you the same output:
The easiest way of finding the database name is:
This view is granted to PUBLIC, so anybody can query it.
Type on sqlplus command prompt
then u will be see result on command prompt
Here first one «ORCL» is database name,may be your system «XE» and other what was given on oracle downloading time.
As has been mentioned above,
You couldn’t query v$database/v$instance/v$thread because your user does not have the required permissions. You can grant them (via a DBA account) with:
SELECT sys_context(‘userenv’,’instance_name’) FROM dual;