Вопрос

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

Это было полезно?

Решение

@ЦАП

Короче говоря: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 SIDS и ИМЕНАМИ СЛУЖБ Oracle.Первый инструмент настройки ищет имя СЛУЖБЫ, а затем следующий ищет SIDS!Что происходит?!

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

SERVICE_NAME - это новая функция, начиная с oracle 8i, в которой база данных может регистрировать себя в listener.Если база данных зарегистрирована в listener таким образом, вы можете использовать параметр 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 & 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 networking.

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

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

В случае, если приведенная выше ссылка будет недоступна в будущем, На момент написания этого ответа приведенная выше ссылка направит вас к разделу "Служба базы данных и идентификация экземпляра базы данных" в главе "Концепции подключения" "Руководство администратора сетевых служб базы данных".Это руководство опубликовано oracle как часть "Документации Oracle Database Online, 10g Release 2 (10.2)".

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

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

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

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

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

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

SID - это уникальное имя экземпляра базы данных Oracle.---> Для переключения между базами данных Oracle пользователи должны указать желаемый SID <---. SID включен в части данных ПОДКЛЮЧЕНИЯ дескрипторов подключения в файле TNSNAMES.ORA и в определении сетевого прослушивателя в файле LISTENER.ORA.Также известен как системный идентификатор.Имя службы Oracle может быть любым описательным, например "MyOracleServiceORCL".В Windows, Вы можете указать имя своей службы, работающей как служба в службах Windows.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top