Чем SID отличается от имени службы в Oracle tnsnames.ora

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

5 ответов

Решение

@DAC

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

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

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

Я знаю, что это древняя практика, однако, когда речь идет об изощренных инструментах, видах использования, пользователях или симптомах, связанных с именами сервисов и сервисов, можно добавить небольшую гибкость в ваши записи 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)
  )
)

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

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

В чем разница между Oracle SID и Oracle SERVICE NAMES. Один инструмент конфигурации ищет имя службы, а затем другой ищет SID! В чем дело?!

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

SERVICE_NAME - это новая функция, начиная с oracle 8i, в которой база данных может зарегистрироваться для прослушивателя. Если база данных зарегистрирована с прослушивателем таким образом, вы можете использовать параметр SERVICE_NAME в tnsnames.ora, в противном случае - использовать SID в tnsnames.ora.

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

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

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

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

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

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

что такое SID и имя сервиса

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

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

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

SID SERVICE_NAME
Боб1 Боб
bob2 bob
bob3 bob
bob4 bob

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

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

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

SID - это уникальное имя для экземпляра базы данных Oracle. ---> Чтобы переключаться между базами данных Oracle, пользователи должны указать желаемый SID<---. SID включен в части CONNECT DATA дескрипторов соединения в файле TNSNAMES.ORA и в определение сетевого прослушивателя в файле LISTENER.ORA. Также известен как идентификатор системы. Имя службы Oracle может быть любым описательным, например "MyOracleServiceORCL". В Windows вы можете использовать свое имя службы в качестве службы в службах Windows.

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

Другие вопросы по тегам