Поделиться через


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

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

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

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

Важное примечаниеВажно!

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

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

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

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

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

    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
    
    Важное примечаниеВажно!

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

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

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

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

    ALTER DATABASE <database_name> SET WITNESS = <server_network_address>

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

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

    TCP**://<system-address>:**<port>

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

    Например, на экземпляре основного сервера следующая инструкция 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
    
ПримечаниеПримечание

Сетевой адрес сервера определяет целевой экземпляр сервера по номеру порта, который соответствует конечной точке этого экземпляра.

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

См. также

Задания

Разрешение сетевого доступа к конечной точке зеркального отображения базы данных с использованием проверки подлинности Windows (SQL Server)

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

Справочник

ALTER DATABASE (Transact-SQL)

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

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

Удаление следящего сервера из сеанса зеркального отображения базы данных (SQL Server)

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