Чем SID отличается от имени службы в Oracle tnsnames.ora
-
09-06-2019 - |
Вопрос
Зачем мне нужны два из них?Когда я должен использовать то или иное?
Решение
@ЦАП
Короче говоря: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 как лучший подход.