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

<p>может кто-нибудь объяснить мне, в чем разница sid, имени бд, домена бд, глобального имени базы данных, имени службы, псевдонима службы и имени экземпляра в oracle?</p><p>спасибо майкл</p>

<p>sid = идентифицирует экземпляр базы данных (имя базы данных + номер экземпляра). поэтому, если имя вашей базы данных - somedb, а номер вашего экземпляра - 3, тогда ваш sid - somedb3.</p><p>имя бд = имя базы данных (база данных может совместно использоваться несколькими экземплярами)</p><p>домен бд = обычно такой же, как домен вашей компании (somecompany.com)</p><p>глобальное имя базы данных = имя базы данных + домен базы данных (somedb.somecompany.com)</p><p>имя службы = "соединитель" для одного или нескольких экземпляров. часто полезно создавать дополнительные имена служб в среде rac, поскольку служба может быть модифицирована для использования определенных sid в качестве первичных или вторичных соединений или для того, чтобы вообще не использовать определенные sid.</p><p>псевдоним службы = псевдоним имени службы (например, cname и т.д.). скажем, вы делаете имя своего сервиса чем-то значимым для dba, но, возможно, это немного эзотерично. создайте псевдоним службы и назовите его так, чтобы он имел смысл для пользователя.</p><p>имя экземпляра = такое же как sid</p>

<p>то, как вы описываете sid, - это только поведение default в конфигурации rac. sid (== имя\_экземпляра) - это просто имя вашего экземпляра.</p><p>я всегда смотрю на это так: экземпляр - это экземпляр программного обеспечения субд. экземпляр монтирует контрольный файл (изменяет монтирование базы данных). в этом контрольном файле записывается местоположение файлов данных. коллекция файлов данных (хорошо, и контрольный файл (ы)) == база данных.</p><p>база данных имеет имя, db\_name и (необязательно) домен (db\_domain) -> вместе global\_db\_name. теперь представьте, что вы реплицируете (dataguard) свою базу данных. вы хотели бы оставить имя db\_name таким же, верно? (я имею в виду: в отношении данных, это же база данных) но тогда как определить две "версии" вашей базы данных? введите 'db\_unique\_name' ... да, это сбивает с толку ...</p><p>моя личная практика - называть instance именем db\_unique\_name в настройке dataguard и придерживаться rac-имен (db\_name + instance\_number) в настройке rac. затем, db\_unique\_names, которые я составляю, обычно имеют вид db\_name + 1-letter-суффикс (mydba mydbb и т.д.)</p><p>ура, пол</p>

<p>sid является экземпляром. лучше избегать использования термина "экземпляр базы данных", просто "экземпляр".</p><p>"sid = идентифицирует экземпляр базы данных (имя базы данных + номер экземпляра)" неверно. "экземпляр, это экземпляр программного обеспечения субд" неправильно. удаленная или установленная субд - это просто субд.</p><p>"домен бд = обычно такой же, как домен вашей компании" следует избегать. у меня возникла проблема с использованием домена, и проблемы исчезли, если не использовать домен.</p><p>"глобальное имя базы данных = имя базы данных + домен базы данных" также неверно. глобальное имя базы данных - это имя службы. это так просто.</p><p>"sid = идентифицирует экземпляр базы данных (имя базы данных + номер экземпляра). поэтому, если имя вашей базы данных равно somedb, а номер вашего экземпляра равен 3, тогда ваш sid равен somedb3". неправильно. нет такой привязки личности или имени.</p>