Как добавить следящий сервер для зеркального отображения базы данных с использованием проверки подлинности Windows (язык Transact-SQL)

Чтобы настроить следящий сервер для базы данных, ее владелец назначает экземпляру компонента Database Engine роль следящего сервера. Экземпляр следящего сервера может быть запущен на том же компьютере, что и экземпляры основного или зеркального серверов, но это значительно уменьшает надежность автоматического перехода на другой ресурс.

Настоятельно рекомендуется размещать следящий сервер на отдельном компьютере. Указанный сервер может быть задействован в нескольких одновременных сеансах зеркального отображения базы данных с одними и теми же или разными участниками. В некоторых сеансах указанный сервер может быть участником, в некоторых — следящим сервером.

Следящий сервер предназначен исключительно для режима высокой надежности с автоматическим переходом на другой ресурс. Перед установкой следящего сервера настоятельно рекомендуется убедиться, что для свойства SAFETY установлено значение FULL.

ms190430.note(ru-ru,SQL.90).gifВажно!
Конфигурацию зеркального отображения базы данных рекомендуется производить в часы с наименьшей загрузкой, поскольку этот процесс может отрицательно сказаться на производительности.

Настройка следящего сервера

  1. Убедитесь, что на экземпляре следящего сервера существует конечная точка зеркального отображения. Независимо от числа сеансов зеркального отображения, которые будут поддерживаться, на экземпляре сервера должна быть только одна конечная точка зеркального отображения. Если данный сервер будет использоваться исключительно в роли следящего в сеансах зеркального отображения, назначьте конечной точке соответствующую роль (ROLE**=**WITNESS). Если экземпляр данного сервера может выступать как участник одного или несколько сеансов зеркального отображения, назначьте конечной точке роль ALL.

    Чтобы выполнить инструкцию SET WITNESS, нужно сначала открыть сеанс зеркального отображения базы данных (между партнерами), а состоянием конечной точки следящего сервера должно быть STARTED.

    Чтобы определить, есть ли на экземпляре следящего сервера конечная точка зеркального отображения его базы данных, а также узнать ее роль и состояние, выполните следующую инструкцию Transact-SQL:

    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
    
    ms190430.note(ru-ru,SQL.90).gifВажно!
    Если конечная точка зеркального отображения базы данных существует и уже используется, рекомендуется использовать эту конечную точку для каждого сеанса экземпляра сервера. Удаление используемой конечной точки разрушает связь существующих сеансов. Если для сессии указан следящий сервер, удаление конечных точек зеркального отображения базы данных может привести к тому, что основной сервер потеряет кворум, поэтому база данных будет переведена в автономный режим и ее пользователи будут отключены. Дополнительные сведения см. в разделе Кворум: как следящий сервер влияет на доступность базы данных.

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

  2. Если экземпляры участников запущены от имени пользователей других доменов, создайте имя входа для разных учетных записей в базе данных master каждого экземпляра. Дополнительные сведения см. в разделе Как разрешить сетевой доступ к зеркальному отображению базы данных, используя проверку подлинности Windows (Transact-SQL).

  3. Подключите следящий сервер к основному, выполнив следующую инструкцию:

    ALTER DATABASE <имя_базы_данных> SET WITNESS =<сетевой_адрес_сервера>

    где <имя_базы_данных> — имя отображаемой базы данных (это имя одинаково на обоих участниках) и <сетевой_адрес_сервера> — сетевой адрес экземпляра следящего сервера.

    Чтобы указать сетевой адрес сервера, используйте следующий синтаксис:

    TCP**://<системный_адрес>:**<порт>

    где <системный_адрес> — строка, однозначно идентифицирующая целевой компьютер, а <порт> — номер порта, используемого конечной точкой зеркального отображения экземпляра сервера-участника. Дополнительные сведения см. в разделе Указание сетевого адреса сервера (зеркальное отображение базы данных).

    Например, на экземпляре основного сервера следующая инструкция ALTER DATABASE установит следящий сервер. Имя базы данных — AdventureWorks, адрес системы — DBSERVER3 (имя следящей системы), а порт, используемый конечной точкой зеркального отображения базы данных на следящем сервере — 7022:

    ALTER DATABASE AdventureWorks 
      SET WITNESS = 'TCP://DBSERVER3:7022'
    

Пример

В следующем примере настраивается следящий сервер зеркального отображения. На экземпляре следящего сервера (экземпляр по умолчанию на компьютере WITNESSHOST4):

  1. Создайте конечную точку для экземпляра сервера с ролью WITNESS и портом 7022.

    CREATE ENDPOINT Endpoint_Mirroring
        STATE=STARTED 
        AS TCP (LISTENER_PORT=7022) 
        FOR DATABASE_MIRRORING (ROLE=WITNESS)
    GO
    
  2. Создайте имя входа для учетной записи пользователя домена экземпляров-участников, если они находятся в другом домене, например, пусть следящий сервер запущен от имени 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
    
  3. На каждом экземпляре сервера-участника создайте имя входа для экземпляра следящего сервера:

    --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
    
  4. На основном сервере определите следящий сервер (запущенный на компьютере WITNESSHOST4):

    ALTER DATABASE AdventureWorks 
        SET WITNESS = 
        'TCP://WITNESSHOST4:7022'
    GO
    
ms190430.note(ru-ru,SQL.90).gifПримечание.
Сетевой адрес сервера определяет целевой экземпляр сервера по номеру порта, который соответствует конечной точке этого экземпляра.

Подробный пример, показывающий настройку безопасности, подготовку зеркальной базы данных, задание участников и добавление следящего сервера, см. в разделе Настройка зеркального отображения базы данных.

См. также

Задачи

Как разрешить сетевой доступ к зеркальному отображению базы данных, используя проверку подлинности Windows (Transact-SQL)
Как создать конечную точку зеркального отображения базы данных с проверкой подлинности Windows (язык Transact-SQL)
Как создать сеанс зеркального отображения базы данных с использованием проверки подлинности Windows (Transact-SQL)
Как удалить следящий сервер из сеанса зеркального отображения базы данных (Transact-SQL)

Основные понятия

Следящий сервер зеркального отображения базы данных
Настройки Transact-SQL и режимы зеркального отображения базы данных

Другие ресурсы

ALTER DATABASE (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005