Зачем мне два из них? Когда я должен использовать тот или иной?
Зачем мне два из них? Когда я должен использовать тот или иной?
Ответы:
Вкратце: SID = уникальное имя вашей БД, ServiceName = псевдоним, используемый при подключении
Не совсем верно. SID = уникальное имя INSTANCE (например, процесс оракула, запущенный на машине). Oracle считает «Базой данных» файлы.
Имя службы = псевдоним INSTANCE (или многих экземпляров). Основная цель этого - если вы работаете в кластере, клиент может сказать «подключите меня к SALES.acme.com», администратор БД может на лету изменить количество экземпляров, доступных для запросов SALES.acme.com, или даже переместить SALES.acme.com в совершенно другую базу данных без необходимости изменения каких-либо настроек клиентом.
Sales1
, Sales2
и Sales3
, все из которых доступны через имя службы Sales
?
Пожалуйста, смотрите: 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 = псевдоним, используемый при подключении
Я знаю, что это древняя практика, однако, когда речь идет об изощренных инструментах, видах использования, пользователях или симптомах, связанных с именами сервисов и сервисов, можно добавить небольшую гибкость в записи 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)
)
)
Я просто подумал, что оставлю это здесь, поскольку это слегка относится к вопросу и может быть полезным, когда мы пытаемся обойти некоторые не совсем понятные особенности сетей оракулов.
что такое SID и имя сервиса
пожалуйста, ознакомьтесь с документацией оракула по адресу https://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htm
В случае, если вышеуказанная ссылка будет недоступна в будущем, во время написания этого ответа указанная выше ссылка направит вас к теме «Идентификация службы базы данных и экземпляра базы данных» в главе «Основные понятия о соединении» «Руководства администратора служб баз данных Net». , Это руководство опубликовано oracle как часть «Документация по базе данных Oracle Online, 10g Release 2 (10.2)»
Когда я должен использовать тот или иной? Зачем мне два из них?
Рассмотрим приведенное ниже отображение в среде RAC,
SID SERVICE_NAME
Боб1 Боб Боб
Боб2 Боб
Боб3 Боб
Боб4 Боб
если настроена балансировка нагрузки, слушатель будет «балансировать» рабочую нагрузку по всем четырем 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 как лучший подход.