Навіщо мені потрібно два з них? Коли мені доведеться користуватися тим чи іншим?
Навіщо мені потрібно два з них? Коли мені доведеться користуватися тим чи іншим?
Відповіді:
Якщо коротко: SID = унікальна назва вашої БД, ServiceName = псевдонім, який використовується під час з'єднання
Не зовсім вірно. SID = унікальна назва ІНСТАНЦІЇ (наприклад, процес oracle, який працює на машині). Oracle вважає "База даних" файлами.
Назва служби = псевдонім до ІНСТАНЦІЇ (або багатьох примірників). Основна мета цього - якщо ви запускаєте кластер, клієнт може сказати "підключити мене до SALES.acme.com", DBA може на хоті змінити кількість екземплярів, доступних для запитів 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. Один інструмент конфігурації шукає ім'я SERVICE, а наступний шукає 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 = псевдонім, який використовується під час з'єднання
Я знаю, що це давнє, але, коли ви маєте справу з вигадливими інструментами, використанням, користувачами або симптомами, що стосуються: імені та надання послуг, можна додати трохи гнучких даних до ваших tnsname, як:
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
Якщо вищезазначене посилання надалі не буде доступним, на час написання цієї відповіді, вищенаведене посилання направить вас на тему "Служба баз даних та ідентифікація ідентифікатора бази даних" у розділі Концепції підключення "Посібник для мережевих служб бази даних" . Цей посібник опубліковано компанією Oracle як частина "Інтернет-документації бази даних Oracle, 10 г, випуск 2 (10.2)"
Коли мені доведеться користуватися тим чи іншим? Навіщо мені потрібно два з них?
Розглянемо нижче карти в середовищі RAC,
SID SERVICE_NAME
bob1 боб
bob2 боб
bob3 боб
bob4 боб
якщо налаштовано балансування навантаження, слухач буде «врівноважувати» навантаження на всі чотири 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 як кращий підхід.