Разница между SID, именем базы данных, доменом базы данных, глобальным именем базы данных, именем службы, псевдонимом службы и именем экземпляра в Oracle

14

Может кто-нибудь объяснить мне, в чем разница SID, имени БД, домена БД, глобального имени базы данных, имени службы, псевдонима службы и имени экземпляра в Oracle?

Спасибо Майкл

Майкл Эллик Анг
источник

Ответы:

11

SID = идентифицирует экземпляр базы данных (имя базы данных + номер экземпляра). Поэтому, если имя вашей базы данных - somedb, а номер вашего экземпляра - 3, тогда ваш SID - somedb3.

Имя БД = Имя базы данных (база данных может совместно использоваться несколькими экземплярами)

Домен БД = Обычно такой же, как домен вашей компании (somecompany.com)

Глобальное имя базы данных = имя базы данных + домен базы данных (somedb.somecompany.com)

Имя службы = «соединитель» для одного или нескольких экземпляров. Часто полезно создавать дополнительные имена служб в среде RAC, поскольку служба может быть модифицирована для использования определенных SID в качестве первичных или вторичных соединений или для того, чтобы вообще не использовать определенные SID.

Псевдоним службы = псевдоним имени службы (как CNAME и т. Д.). Скажем, вы делаете имя своего сервиса чем-то значимым для dba, но, возможно, это немного эзотерично Создайте псевдоним службы и назовите его так, чтобы он имел смысл для пользователя.

Имя экземпляра = такое же как SID

jswoods7
источник
при каких обстоятельствах у вас есть номер экземпляра? это только с RAC?
JonnyRaa
Итак, это default service name= global db name?
Алиреза Мохамади
4

То, как вы описываете SID, - это только поведение DEFAULT в конфигурации RAC. SID (== имя_экземпляра) - это просто имя вашего экземпляра.

Я всегда смотрю на это так: Экземпляр, это экземпляр программного обеспечения СУБД. Экземпляр монтирует контрольный файл (изменяет монтирование базы данных). В этом контрольном файле записывается расположение файлов данных. коллекция файлов данных (хорошо, и контрольный файл (ы)) == база данных.

База данных имеет имя, db_name и (необязательно) домен (db_domain) -> вместе global_db_name. Теперь представьте, что вы реплицируете (DataGuard) свою базу данных. Вы хотели бы оставить имя DB_name таким же, верно? (Я имею в виду: с точки зрения данных, это ЖЕ база данных) Но тогда как определить две «версии» вашей базы данных? Введите 'DB_UNIQUE_NAME' ... Да, это сбивает с толку ...

Моя личная практика - называть INSTANCE именем db_unique_name в настройке DataGuard и придерживаться RAC-имен (db_name + Instance_Number) в настройке RAC. Затем, db_unique_names, которые я составляю, обычно похожи на db_name + 1-буквенный суффикс (MYDBa MYDBb и т. Д.)

Ура, Пол

Павел
источник
0

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

«SID = идентифицирует экземпляр базы данных (имя базы данных + номер экземпляра)» неверно. «Экземпляр, это экземпляр программного обеспечения СУБД» неправильно. Удаленная или установленная СУБД - это просто СУБД.

«Домен БД = обычно такой же, как домен вашей компании» следует избегать. У меня возникла проблема с использованием домена, и проблемы исчезли, если не использовать домен.

«Глобальное имя базы данных = имя базы данных + домен базы данных» также неверно. Глобальное имя базы данных - это имя службы. Это так просто.

«SID = идентифицирует экземпляр базы данных (имя базы данных + номер экземпляра). Поэтому, если имя вашей базы данных - somedb, а номер вашего экземпляра - 3, то ваш SID - somedb3». неправильно. Нет такой привязки личности или имени.

Bernaridho
источник
-1

Я предлагаю вам обратиться

Knowledge Xpert for Oracle Administration > Oracle Architecture > Oracle instance, files and processes

если у вас установлена ​​жаба, даже пробная версия.

Это описывает всю картину полностью.

user25414
источник