Как SID отличается от имени службы в Oracle tnsnames.Ора
Зачем мне два из них? Когда я должен использовать то или другое?
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