Ответ
В Microsoft SQL Server instance (экземпляр) — это отдельная, изолированная установка ядра СУБД SQL Server. На одном физическом или виртуальном сервере может работать несколько независимых экземпляров.
Ключевые характеристики экземпляра:
- Собственные системные БД: Каждый экземпляр имеет свои копии
master,model,msdbиtempdb. - Изолированная конфигурация: Настройки памяти, процессора, безопасности и другие параметры конфигурируются отдельно для каждого экземпляра.
- Уникальное сетевое имя: К экземпляру обращаются по уникальному имени.
- Отдельные службы Windows: Для каждого экземпляра запускаются свои службы
SQL Server (INSTANCE_NAME)иSQL Server Agent (INSTANCE_NAME).
Типы экземпляров:
-
Экземпляр по умолчанию (Default Instance):
- На сервере может быть только один.
- Доступен по сетевому имени компьютера (например,
DBSERVER). - Использует стандартный порт 1433.
-
Именованный экземпляр (Named Instance):
- На сервере может быть несколько.
- Имеет собственное имя, добавляемое к имени сервера через обратную черту:
DBSERVERDEVELOPMENT,DBSERVERREPORTING. - Использует динамические порты (если не настроен статический).
Зачем использовать несколько экземпляров?
- Изоляция сред: Разделение разработки, тестирования и производства на одном сервере.
- Разные версии/редакции: Возможность запуска разных версий SQL Server (например, 2019 и 2022) для миграции или тестирования.
- Распределение ресурсов: Назначение разных квот памяти и CPU для разных приложений или команд.
- Безопасность: Изоляция БД с разными требованиями к доступу.
Практические команды:
-- Показать имя текущего экземпляра
SELECT @@SERVERNAME AS 'InstanceName';
SELECT SERVERPROPERTY('InstanceName') AS 'InstanceName'; -- Для именованных экземпляров
-- Показать все базы данных на текущем экземпляре
SELECT name FROM sys.databases;
Важно: Каждый экземпляр потребляет ресурсы сервера (память, CPU). Создание множества экземпляров на слабом железе может привести к деградации производительности всех.