Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
Caution
Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Для обеспечения высокой доступности вместо этого используйте группы доступности AlwaysOn.
Внимание
Зеркальное отображение базы данных в SQL Server — это отдельная технология зеркального отображения базы данных Microsoft Fabric. Зеркальное отображение в Fabric обеспечивает более высокую аналитическую производительность, возможность объединения ресурсов данных с OneLake в Fabric и открытие доступа к данным в формате Delta Parquet.
С помощью зеркального отображения в Microsoft Fabric вы можете непрерывно реплицировать существующий объект данных непосредственно в OneLake в Fabric, включая данные из SQL Server 2016+, Базу данных SQL Azure, Управляемый экземпляр SQL Azure, Cosmos DB, Oracle, Snowflake и многое другое.
Чтобы настроить следящий сервер для базы данных, ее владелец назначает экземпляру компонента ядро СУБД роль следящего сервера. Экземпляр сервера-свидетеля может выполняться на том же компьютере, что и основной экземпляр сервера или экземпляр зеркального сервера, но это существенно снижает надежность автоматического переключения при отказе.
Мы настоятельно рекомендуем, чтобы свидетель находился на отдельном компьютере. Указанный сервер может быть задействован в нескольких одновременных сеансах зеркального отображения базы данных с одними и теми же или разными участниками. В некоторых сеансах указанный сервер может быть участником, в некоторых — следящим сервером.
Свидетель предназначен исключительно для использования в режиме высокой безопасности с автоматическим переключением при отказе. Перед установкой следящего сервера настоятельно рекомендуется убедиться, что для свойства SAFETY установлено значение FULL.
Внимание
Конфигурацию зеркального отображения базы данных рекомендуется выполнять в часы с наименьшей загрузкой, поскольку этот процесс может повлиять на производительность.
Создайте свидетель
На экземпляре сервера-свидетеля убедитесь, что существует конечная точка для зеркального отображения базы данных. Независимо от числа сеансов зеркального отображения, которые будут поддерживаться, на экземпляре сервера должна быть только одна конечная точка зеркального отображения. Если вы планируете использовать этот экземпляр сервера исключительно в качестве свидетеля в сеансах зеркального отображения базы данных, назначьте конечной точке роль свидетеля (ROLE**=**WITNESS). Если вы планируете использовать этот экземпляр сервера в качестве партнёра в одном или нескольких других сеансах зеркалирования базы данных, укажите для конечной точки роль ALL.
Чтобы выполнить SET инструкцию WITNESS, сеанс зеркального отображения базы данных должен быть уже запущен (между партнерами), а состояние конечной точки свидетеля должно иметь значение STARTED.
Чтобы определить, настроена ли на этом экземпляре сервера-свидетеля конечная точка зеркального отображения базы данных, а также узнать ее роль и состояние, используйте на этом экземпляре следующую инструкцию Transact-SQL:
SELECT role_desc, state_desc FROM sys.database_mirroring_endpointsВнимание
Если конечная точка зеркального отображения базы данных существует и уже используется, рекомендуется использовать эту конечную точку для каждого сеанса экземпляра сервера. Удаление используемой конечной точки нарушает соединения существующих сеансов. Если для сеанса настроен сервер-свидетель, удаление конечной точки зеркального отображения базы данных может привести к потере кворума основным сервером этого сеанса; в этом случае база данных будет переведена в автономный режим, а ее пользователи будут отключены от нее. Дополнительные сведения см. в статье Кворум: как свидетель влияет на доступность базы данных (зеркальное отображение базы данных).
Если конечная точка на следящем сервере отсутствует, см. раздел Создание конечной точки зеркального отображения базы данных с проверкой подлинности Windows (Transact-SQL).
Если экземпляры-партнёры работают под разными доменными учётными записями пользователей, создайте учётную запись для входа для каждой из этих учётных записей в базе данных master каждого экземпляра. Дополнительные сведения см. в разделе Разрешение сетевого доступа к конечной точке зеркального отображения базы данных с помощью проверки подлинности Windows (SQL Server).
Подключитесь к основному серверу и выполните следующую команду:
ALTER DATABASE <database_name>SET СВИДЕТЕЛЬ <=
Здесь <имя_базы_данных> — имя базы данных, подлежащей зеркальному отображению (это имя является одинаковым в обоих партнерах), а <сетевой_адрес_сервера> — сетевой адрес экземпляра следящего сервера.
Чтобы указать сетевой адрес сервера, используйте следующий синтаксис:
TCP://<системный_адрес>:<порт>
Здесь <системный_адрес> — строка, однозначно идентифицирующая целевой компьютер, а <порт> — номер порта, используемого конечной точкой зеркального отображения экземпляра сервера-партнера. Дополнительные сведения см. в статье Указание сетевого адреса сервера (зеркальное отображение базы данных).
Например, на экземпляре основного сервера следующая ALTER DATABASE инструкция задает свидетеля. Имя базы данных — AdventureWorks, адрес системы — DBSERVER3 (имя следящей системы), а порт, используемый конечной точкой зеркального отображения базы данных на следящем сервере, —
7022:ALTER DATABASE AdventureWorks SET WITNESS = 'TCP://DBSERVER3:7022'
Пример
В следующем примере создается свидетель зеркального отображения базы данных. На экземпляре сервера-свидетеля (экземпляр по умолчанию на WITNESSHOST4):
Создайте конечную точку для этого экземпляра сервера только для роли WITNESS, используя порт
7022.CREATE ENDPOINT Endpoint_Mirroring STATE=STARTED AS TCP (LISTENER_PORT=7022) FOR DATABASE_MIRRORING (ROLE=WITNESS) GOСоздайте имя входа для учетной записи пользователя домена партнерских экземпляров, если они различаются; например, предположим, что следящий сервер запущен от имени
SOMEDOMAIN\witnessuser, а партнеры — от имениMYDOMAIN\dbousername. Создайте имя входа для партнеров таким образом:--Create a login for the partner server instances, --which are both running as MYDOMAIN\dbousername: USE master ; GO CREATE LOGIN [MYDOMAIN\dbousername] FROM WINDOWS ; GO --Grant connect permissions on endpoint to login account --of partners GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [MYDOMAIN\dbousername]; GOНа каждом из экземпляров партнерских серверов создайте учетную запись для входа для экземпляра сервера-свидетеля:
--Create a login for the witness server instance, --which is running as SOMEDOMAIN\witnessuser: USE master ; GO CREATE LOGIN [SOMEDOMAIN\witnessuser] FROM WINDOWS ; GO --Grant connect permissions on endpoint to login account --of partners GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [SOMEDOMAIN\witnessuser]; GOНа основном сервере настройте сервер-свидетель (который находится на
WITNESSHOST4):ALTER DATABASE AdventureWorks SET WITNESS = 'TCP://WITNESSHOST4:7022' GO
Примечание.
Сетевой адрес сервера определяет целевой экземпляр сервера по номеру порта, который сопоставляется с конечной точкой зеркального отображения этого экземпляра.
Подробный пример настройки зеркального отображения базы данных, в котором показана настройка защиты, подготовка зеркальной базы данных, настройка партнеров и добавление следящего сервера, см. в разделе Настройка зеркального отображения базы данных (SQL Server).
Связанные материалы
- ALTER DATABASE (Transact-SQL)
- Зеркальное отображение базы данных — разрешение сетевого доступа — проверка подлинности Windows
- Создать конечную точку зеркального отображения базы данных для проверки подлинности Windows (Transact-SQL)
- Настройка зеркального отображения базы данных
- Удаление свидетеля из сеанса зеркального отображения базы данных (SQL Server)
- Свидетель зеркалирования базы данных