SQL Server: что такое именованные экземпляры и экземпляры по умолчанию?

35

Что такое именованные и стандартные экземпляры? В чем разница между ними? Почему они используются?

Начинающий разработчик
источник

Ответы:

30

По словам Microsoft в отношении именованных по умолчанию

Клиентские приложения подключаются к экземпляру Microsoft SQL Server 2005 для работы с базой данных SQL Server. Каждый экземпляр SQL Server состоит из отдельного набора служб, которые могут иметь уникальные настройки. Структура каталога, структура реестра и имя службы отражают конкретное имя экземпляра, которое вы идентифицируете во время установки.

Экземпляр является либо неназванным экземпляром по умолчанию, либо именованным экземпляром. Когда SQL Server 2005 установлен в экземпляре по умолчанию, клиенту не нужно указывать имя экземпляра для установления соединения. Клиент должен знать только имя сервера.

Именованный экземпляр идентифицируется сетевым именем компьютера плюс имя экземпляра, которое вы указали во время установки. Клиент должен указать как имя сервера, так и имя экземпляра при подключении.

По умолчанию SQL Server устанавливается в экземпляр по умолчанию, если вы не укажете имя экземпляра. SQL Server Express, однако, всегда устанавливается в именованном экземпляре, если во время установки вы не установили установку по умолчанию.

Бретт Дж
источник
17

Также вы можете установить только один экземпляр по умолчанию (безымянный экземпляр), но вы можете установить множество именованных экземпляров.

Многие сторонние программы обычно используют именованный экземпляр по умолчанию, хотя они могут не упоминать его. Причина ясна из приведенных выше ответов: стандартные версии устанавливают безымянный экземпляр по умолчанию, а версия Express устанавливает именованный экземпляр по умолчанию.

Важно понимать разницу с этой точки зрения, потому что если у вас работает 2 или 3 сервера БД, вы никогда не сможете подключиться к нужной версии. Поскольку стороннее программное обеспечение ищет экземпляр по умолчанию, пока вы думаете, что это экземпляр SQLEXPRESS, к которому он пытается подключиться. Это может значительно увеличить время устранения неполадок, если вы не знаете, как подключиться к именованному или безымянному экземпляру.

Поэтому, если вы хотите подключиться к Именованной или Безымянной версии, используйте следующие рекомендации.

MY-MACHINE-NAME\SQLEXPRESS  /* named version - correct */
MY-MACHINE-NAME             /* unnamed version (default instance) - correct */
MY-MACHINE-NAME\MSSQLSERVER /* unnamed version (default instance) - Wrong */

Обратите внимание, что хотя экземпляр по умолчанию имеет имя, на него нельзя ссылаться по имени!

Дикий Сад
источник
5

В дополнение к объяснению, опубликованному Бреттом Дж, вот несколько причин, почему их следует использовать:

  • Вы можете иметь разные экземпляры, используя разные версии SQL (т.е. - по умолчанию, используя SQL 2008, именованный экземпляр, используя SQL 2005).
  • Разделение проблем, будь то что-то с вашим приложением или безопасности или что-то еще
  • Различные среды разработки
  • Различные среды приложений (т.е. отечественные или сторонние)

Всевозможные причины их использования. Это не значит, что это всегда хорошая идея: P

squillman
источник
5

Еще одно практическое отличие: SQL2005 и выше позволяют установить 16 или более экземпляров на систему. Поскольку лицензирование зависит от физического ЦП , от установки сервера SQL (а не от экземпляра!), Это означает, что вы можете запустить до 16 экземпляров SQL Server 2005, не платя ни цента больше, чем вы уже сделали.

Учитывая, что лицензии на процессор могут стоить до $ 15000 (!) На сокет, это необходимо для больших установок, скажем, с 16 ядрами и 256 ГБ памяти.

adaptr
источник
1

Вы также можете ограничить объем памяти и назначить лимит использования процессора для каждого экземпляра. Вы также можете создать экземпляр для написанных вендором приложений, которым «нужны» привилегии системного администратора, чтобы не рисковать другими приложениями.

Сэм
источник
0

Одна из лучших причин - разделение баз данных. Если вы разрабатываете свое собственное приложение и упаковываете в него SQL Express, то имеет смысл установить его в свой собственный экземпляр. Кроме того, предоставляя пользователю возможность указать существующую установку SQL, если он это сделает.

Если у вас есть база данных, которая крайне важна, и вы хотите, чтобы никто другой не имел к ней доступа, она может перейти к собственному экземпляру с очень ограниченными полномочиями безопасности. Допустим, это ваша база данных продуктов, а затем она реплицируется в базу данных отчетов на том же сервере **, который предназначен только для чтения. Однако менее вероятно, что из-за ошибки пользователя (администратора) пользователи случайно получат доступ к производственной БД, ограничив число тех, кто может обновить группы безопасности в производственном экземпляре, до нескольких человек.

** Хорошая практика говорит о том, чтобы сделать сервер отчетов отдельной машиной, но я просто делаю это в качестве примера.

SpaceManSpiff
источник