Какие различия SID и Service Name при использовании Oracle SQLDeveloper?
Английский не мой родной пожалуйста, поймите
Когда я пытаюсь войти как system/password как sysdba в Oracle(Linux), sqldeveloper(окно)
Не удается через сервисное имя и вернуть ORA-0131: недостаточные привилегии
но сид? успешно пройден
какие отличия? а как связаться с Service Name?
1 ответ
Томас Кайт красиво объяснил разницу:
Имя службы более гибкое, чем SID.
База данных может динамически регистрироваться в слушателе, используя одно или несколько имен служб. Фактически, более одной базы данных могут зарегистрироваться с помощью прослушивателя, используя одно и то же имя службы (подумайте о кластерной среде, где у вас есть несколько экземпляров, которые все являются одной и той же базой данных под прикрытием).
База данных, с другой стороны, имеет один SID. И один SID идет в одну базу данных. Это чистые отношения 1:1.
Услуга - это отношения многие ко многим.
Имена сервисов используются при динамической регистрации - данные регистрируются в слушателе после его запуска. Как только он это сделает, вы можете подключиться.
С SID - это больше похоже на сообщение слушателю: "Я хочу, чтобы вы подключились к этой конкретной базе данных, я знаю" адрес ", вот и все"
С помощью SERVICE - вы просите слушателя связать вас с базой данных, которая может обслуживать ваш запрос, с базой данных, которая регистрируется с использованием этой службы.
Более подробная информация здесь, https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1508737000346067364
Аналогичный вопрос задавался в переполнении стека 6 лет назад, как SID отличается от имени службы в Oracle tnsnames.ora
В вашей тестовой среде поиграйте с tnsnames.ora
а также listener.ora
, AFAIK, с 12c, Oracle использует только service_name
, поскольку он гибкий и имеет много-много отношений. Я проверю из документации, если я нахожу это неправильным.