Как SID отличается от имени службы в Oracle tnsnames.Ора


Зачем мне два из них? Когда я должен использовать то или другое?

5 149

5 ответов:

@DAC

Короче говоря: SID = уникальное имя ваша БД, ServiceName = используемый псевдоним при соединении

Не совсем верно.. SID = уникальное имя экземпляра (например, процесс oracle, запущенный на машине). Oracle рассматривает "базу данных" как файлы.

Имя службы = псевдоним экземпляра (или нескольких экземпляров). Основная цель этого - если вы запускаете кластер, клиент может сказать: "подключите меня к SALES.acme.com", дБА может на лету меняться количество экземпляров, которые доступны для SALES.acme.com просит или даже переезжает SALES.acme.com к совершенно другой базе данных без необходимости изменения каких-либо настроек клиента.

Пожалуйста, смотрите: http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm

В чем разница между Oracle Идентификаторы безопасности и имена служб Oracle. Один config tool ищет имя службы и тогда следующий ищет Сидов! Что что-то происходит?!

Oracle SID-это уникальное имя, которое уникально идентифицирует ваш экземпляр / база данных где как сервис имя-это псевдоним TNS, который вы даете когда вы удаленно подключаетесь к своему база данных и это имя службы: записано в Tnsnames.файл ora на вашем клиенты и он может быть таким же как Сид и вы также можете дать ему любой другой имя, которое вы хотите.

ИМЯ_СЛУЖБЫ-это новая функция из oracle 8i и далее в какой базе данных может зарегистрировать себя со слушателем. Если база данных зарегистрирована в listener таким образом, вы можете использовать Параметр SERVICE_NAME в tnsnames.Ора в противном случае-используйте SID в tnsnames.Ора.

Также, если у вас есть OPS (RAC), вы будете иметь разное имя службы для каждого пример.

SERVICE_NAMES указывает один или несколько имена для службы базы данных, чтобы который этот экземпляр соединяет. Вы можете укажите несколько имен служб в поле для того, чтобы различать между различными использование одной и той же базы данных. Для Пример:

SERVICE_NAMES = sales.acme.com, widgetsales.acme.com

Вы также можете использовать имена служб для определите единственную службу, которая является доступно из двух различных баз данных через использование репликации.

В параллельном сервере Oracle окружающая среда, Вы должны установить это параметр для каждого экземпляра.

Короче говоря: SID = уникальное имя вашего экземпляра БД, ServiceName = псевдоним, используемый при подключении

Я знаю, что это древнее, однако при работе с привередливыми инструментами, использованием, пользователями или симптомами re: Sid & service naming можно добавить немного гибкости к вашим записям tnsnames, как и:

mySID, mySID.whereever.com =
(DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = myHostname)(PORT = 1521))
  )
  (CONNECT_DATA =
    (SERVICE_NAME = mySID.whereever.com)
    (SID = mySID)
    (SERVER = DEDICATED)
  )
)

Я просто подумал, что оставлю это здесь, поскольку это мягко относится к вопросу и может быть полезно при попытке обойти некоторые менее ясные особенности сетей oracle.

Что такое SID и имя службы

Пожалуйста, ознакомьтесь с документацией oracle по адресу https://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htm

Когда я должен использовать то или другое? Зачем мне два из них?

Рассмотрим ниже отображение в среде RAC,

ИМЯ_СЛУЖБЫ SID
боб1 Боб
боб2 Боб
боб3 Боб
боб4    Боб

Если настроена балансировка нагрузки, прослушиватель будет "балансировать" рабочую нагрузку по всем четырем Sid. Даже если балансировка нагрузки настроена, вы можете подключаться к bob1 все время, если хотите, используя SID вместо SERVICE_NAME.

Пожалуйста, обратитесь, https://community.oracle.com/thread/4049517

Согласно глоссарию Oracle:

SID-это уникальное имя экземпляра базы данных Oracle. ---> Переключаться между базами данных Oracle пользователи должны указать требуемый SID

Вы должны использовать SID в TNSNAMES.Ора как лучший подход.