Может кто-нибудь объяснить мне, в чем разница SID, имени БД, домена БД, глобального имени базы данных, имени службы, псевдонима службы и имени экземпляра в Oracle?
Спасибо Майкл
Может кто-нибудь объяснить мне, в чем разница SID, имени БД, домена БД, глобального имени базы данных, имени службы, псевдонима службы и имени экземпляра в Oracle?
Спасибо Майкл
Ответы:
SID = идентифицирует экземпляр базы данных (имя базы данных + номер экземпляра). Поэтому, если имя вашей базы данных - somedb, а номер вашего экземпляра - 3, тогда ваш SID - somedb3.
Имя БД = Имя базы данных (база данных может совместно использоваться несколькими экземплярами)
Домен БД = Обычно такой же, как домен вашей компании (somecompany.com)
Глобальное имя базы данных = имя базы данных + домен базы данных (somedb.somecompany.com)
Имя службы = «соединитель» для одного или нескольких экземпляров. Часто полезно создавать дополнительные имена служб в среде RAC, поскольку служба может быть модифицирована для использования определенных SID в качестве первичных или вторичных соединений или для того, чтобы вообще не использовать определенные SID.
Псевдоним службы = псевдоним имени службы (как CNAME и т. Д.). Скажем, вы делаете имя своего сервиса чем-то значимым для dba, но, возможно, это немного эзотерично Создайте псевдоним службы и назовите его так, чтобы он имел смысл для пользователя.
Имя экземпляра = такое же как SID
default service name
= global db name
?
То, как вы описываете 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 и т. Д.)
Ура, Пол
SID является экземпляром. Лучше избегать использования термина «экземпляр базы данных», просто «экземпляр».
«SID = идентифицирует экземпляр базы данных (имя базы данных + номер экземпляра)» неверно. «Экземпляр, это экземпляр программного обеспечения СУБД» неправильно. Удаленная или установленная СУБД - это просто СУБД.
«Домен БД = обычно такой же, как домен вашей компании» следует избегать. У меня возникла проблема с использованием домена, и проблемы исчезли, если не использовать домен.
«Глобальное имя базы данных = имя базы данных + домен базы данных» также неверно. Глобальное имя базы данных - это имя службы. Это так просто.
«SID = идентифицирует экземпляр базы данных (имя базы данных + номер экземпляра). Поэтому, если имя вашей базы данных - somedb, а номер вашего экземпляра - 3, то ваш SID - somedb3». неправильно. Нет такой привязки личности или имени.