Как SID отличается от имени службы в Oracle tnsnames.Ора
зачем мне два из них? Когда я должен использовать то или другое?
5 ответов
@DAC
короче: SID = уникальное имя ваш DB, ServiceName = используемый псевдоним при подключении
Не совсем верно.. SID = уникальное имя экземпляра (например, процесс oracle, запущенный на компьютере). Oracle рассматривает "базу данных" как файлы.
имя службы = псевдоним экземпляра (или многих экземпляров). Основная цель этого - если вы используете кластер, клиент может сказать: "подключите меня к SALES.acme.com", DBA может на лету изменить количество экземпляров, которые доступны для SALES.acme.com запросы или даже перемещение SALES.acme.com в совершенно другую базу данных без необходимости изменения каких-либо параметров клиента.
см.: http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm
в чем разница между Oracle Имена служб SIDs и Oracle. Один config tool ищет имя службы и затем следующий ищет Сидс! Что продолжаешь?!
Oracle SID-это уникальное имя, которое уникально определяет ваш экземпляр / база данных, где как Служба имя-псевдоним TNS, который вы даете при удаленном подключении к ваш базы данных и услуги записано в Tnsnames.файл ora на вашем клиенты и он может быть таким же, как SID и вы также можете дать ему любое другое имя, которое ты хочешь.
SERVICE_NAME-это новая функция из oracle 8i, в какой базе данных может зарегистрироваться в listener. Если база данных зарегистрирована на 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 networking.
что такое SID и имя службы
пожалуйста, ознакомьтесь с документацией oracle по адресуhttps://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htm
когда я должен использовать один или другой? Зачем мне два из них?
рассмотрим ниже отображение в среде RAC,
ИМЯ_СЛУЖБЫ SID
bob1 bob
bob2 bob
вов3 Боб!--15-->
bob4 bob
если настроена балансировка нагрузки, прослушиватель будет "балансировать" рабочую нагрузку по всем четырем SIDs. Даже если балансировка нагрузки настроена, вы можете подключаться к bob1 все время, если хотите, используя SID вместо SERVICE_NAME.
согласно глоссарию Oracle:
SID-уникальное имя экземпляра базы данных Oracle. ---> Переключаться между базами данных Oracle пользователи должны указать требуемый SID
вы должны использовать SID в TNSNAMES.ORA как лучший подход.