Чем SID отличается от имени службы в Oracle tnsnames.ora

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

Как узнать имя нашей службы, если у меня есть имя SID?

Mrinal Saurabh 28.08.2015 09:30
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
182
1
538 300
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

См.: http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm

What is the difference between Oracle SIDs and Oracle SERVICE NAMES. One config tool looks for SERVICE NAME and then the next looks for SIDs! What's going on?!

Oracle SID is the unique name that uniquely identifies your instance/database where as Service name is the TNS alias that you give when you remotely connect to your database and this Service name is recorded in Tnsnames.ora file on your clients and it can be the same as SID and you can also give it any other name you want.

SERVICE_NAME is the new feature from oracle 8i onwards in which database can register itself with listener. If database is registered with listener in this way then you can use SERVICE_NAME parameter in tnsnames.ora otherwise - use SID in tnsnames.ora.

Also if you have OPS (RAC) you will have different SERVICE_NAME for each instance.

SERVICE_NAMES specifies one or more names for the database service to which this instance connects. You can specify multiple services names in order to distinguish among different uses of the same database. For example:

SERVICE_NAMES = sales.acme.com, widgetsales.acme.com

You can also use service names to identify a single service that is available from two different databases through the use of replication.

In an Oracle Parallel Server environment, you must set this parameter for every instance.

Вкратце: SID = уникальное имя вашего экземпляра БД, ServiceName = псевдоним, используемый при подключении

Я запутался. Разве не должно быть, что в RAC у вас будет свой "INSTANCE_NAME" для каждого экземпляра? А одна SERVICE_NAME может быть связана с несколькими экземплярами?

Iwan Satria 07.06.2019 17:06
Ответ принят как подходящий

Цитата @DAC

In short: SID = the unique name of your DB, ServiceName = the alias used when connecting

Не совсем так. SID = уникальное имя ЭКЗАМЕНА (например, процесс Oracle, запущенный на машине). Oracle считает «Базой данных» файлы.

Имя службы = псевдоним ЭКЗАМЕНА (или многих экземпляров). Основная цель этого заключается в том, что если вы запускаете кластер, клиент может сказать «подключите меня к SALES.acme.com», администратор базы данных может на лету изменить количество экземпляров, доступных для запросов SALES.acme.com, или даже переместить SALES.acme.com на совершенно другой база данных без необходимости изменения каких-либо настроек клиенту.

Итак, в вашем примере могут быть идентификаторы безопасности Sales1, Sales2 и Sales3, все из которых доступны через имя службы Sales?

user565869 04.09.2014 20:51

Я думаю, что дело обстоит наоборот: у вас есть один SID, доступный как можно большему количеству сервисов. Затем вы можете взять одну из служб и указать ей другой SID / базу данных.

Colin Nicholls 11.02.2015 03:19

Можно ли использовать имя Oracle SID так же, как имя TNS? Будет ли это проблемой?

user2441441 18.03.2015 20:58

@ user2441441: Следуя объяснению, которое дал Мэтью, я думаю, вы правы в предположении, что может быть несколько SID, и один раз служба, которая абстрагирует все SID

Dwarak 18.08.2016 14:42

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

SID is a unique name for an Oracle database instance. ---> To switch between Oracle databases, users must specify the desired SID <---. The SID is included in the CONNECT DATA parts of the connect descriptors in a TNSNAMES.ORA file, and in the definition of the network listener in the LISTENER.ORA file. Also known as System ID. Oracle Service Name may be anything descriptive like "MyOracleServiceORCL". In Windows, You can your Service Name running as a service under Windows Services.

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

Я знаю, что это очень давно, но когда речь идет о привередливых инструментах, использовании, пользователях или симптомах re: sid и именование сервисов, можно добавить немного гибкости к вашим записям 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)
  )
)

Я просто подумал, что оставлю это здесь, поскольку это имеет отношение к вопросу и может быть полезно при попытке обойти некоторые менее чем четкие особенности сетей оракулов.

what is a SID and Service name

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

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

When I have to use one or another? Why do I need two of them?

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

SID      SERVICE_NAME
bob1    bob
bob2    bob
bob3    bob
bob4    bob

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

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

Другие вопросы по теме