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

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

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

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

ПримечаниеПримечание

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

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

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

  2. Настройка безопасности на каждом из экземпляров сервера.

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

    ПримечаниеПримечание

    Метод проверки подлинности, применяемый экземпляром сервера при зеркальном отображении базы данных, является свойством его конечной точки зеркального отображения базы данных. Для зеркального отображения базы данных доступны два типа защиты передачи данных: проверка подлинности Windows и проверка подлинности на основе сертификатов. Дополнительные сведения см. в разделе Защита транспорта зеркального отображения базы данных.

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

    Для выполнения инструкции SET PARTNER требуется, чтобы параметры STATE обоих участников имели значение STARTED.

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

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

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

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

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

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

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

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

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

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

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

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

    ALTER DATABASE AdventureWorks2008R2 
       SET PARTNER = 'TCP://DBSERVER1:7022'
    

    Эта инструкция подготавливает зеркальный сервер для формирования сеанса, когда с ним соединяется основной сервер.

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

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

    Дополнительные сведения см. в шаге 4.

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

    ALTER DATABASE AdventureWorks2008R2 SET PARTNER = 'TCP://DBSERVER2:7022'
    

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

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

Пример

ПримечаниеПримечание

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

Пример показывает основные шаги для создания сеанса зеркального отображения базы данных без следящего сервера. Эти два участника являются экземплярами сервера по умолчанию на двух компьютерных системах (PARTNERHOST1 и PARTNERHOST5). Оба экземпляра-участника выполняются под одной и той же учетной записью пользователя домена Windows (MYDOMAIN\dbousername).

ПримечаниеПримечание

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

  1. На экземпляре основного сервера (экземпляр по умолчанию на PARTNERHOST1) создается конечная точка, которая поддерживает все роли, используя порт 7022:

    --create an endpoint for this instance
    CREATE ENDPOINT Endpoint_Mirroring
        STATE=STARTED 
        AS TCP (LISTENER_PORT=7022) 
        FOR DATABASE_MIRRORING (ROLE=ALL)
    GO
    --Partners under same domain user; login already exists in master.
    
  2. На экземпляре зеркального сервера (экземпляр по умолчанию на PARTNERHOST5) создается конечная точка, которая поддерживает все роли, используя порт 7022:

    --create an endpoint for this instance
    CREATE ENDPOINT Endpoint_Mirroring
        STATE=STARTED 
        AS TCP (LISTENER_PORT=7022) 
        FOR DATABASE_MIRRORING (ROLE=ALL)
    GO
    --Partners under same domain user; login already exists in master.
    
  3. На экземпляре основного сервера (на PARTNERHOST1) создается резервная копия базы данных:

    BACKUP DATABASE AdventureWorks2008R2 
        TO DISK = 'C:\AdvWorks_dbmirror.bak' 
        WITH FORMAT
    GO
    
  4. На экземпляре зеркального сервера (на компьютере PARTNERHOST5) восстанавливается база данных:

    RESTORE DATABASE AdventureWorks2008R2 
        FROM DISK = 'Z:\AdvWorks_dbmirror.bak' 
        WITH NORECOVERY
    GO
    
  5. После того, как полная резервная копия базы данных создана, обязательно создается резервная копия журнала для основной базы данных. В следующем примере с помощью инструкции Transact-SQL создается резервная копия журналов для того же файла, который использовался в предыдущей резервной копии базы данных:

    BACKUP LOG AdventureWorks2008R2 
        TO DISK = 'C:\AdventureWorks2008R2.bak' 
    GO
    
  6. Перед тем, как приступить к зеркальному отображению, необходимо применить требуемую резервную копию журналов (и все последующие резервные копии журналов).

    В следующем примере с помощью инструкции Transact-SQL восстанавливается первый журнал из файла «C:\AdventureWorks2008R2.bak».

    RESTORE LOG AdventureWorks2008R2 
        FROM DISK = 'C:\ AdventureWorks2008R2.bak' 
        WITH FILE=1, NORECOVERY
    GO
    
  7. На экземпляре зеркального сервера установите экземпляр сервера на PARTNERHOST1 в качестве участника (делая его исходным основным сервером):

    USE master;
    GO
    ALTER DATABASE AdventureWorks2008R2 
        SET PARTNER = 
        'TCP://PARTNERHOST1:7022'
    GO
    
    Важное примечаниеВажно!

    По умолчанию сеанс зеркального отображения базы данных выполняется в синхронном режиме, который зависит от наличия полной безопасности транзакций (параметр SAFETY установлен в FULL). Чтобы сеанс выполнялся в асинхронном, высокопроизводительном режиме, установите параметр SAFETY в OFF. Дополнительные сведения см. в разделах Сеансы зеркального отображения базы данных и Как изменить безопасность транзакций в сеансах зеркального отображения базы данных (Transact-SQL).

  8. На экземпляре основного сервера установите экземпляр сервера на компьютере PARTNERHOST5 в качестве участника (делая его исходным зеркальным сервером):

    USE master;
    GO
    ALTER DATABASE AdventureWorks2008R2 
        SET PARTNER = 'TCP://PARTNERHOST5:7022'
    GO
    
  9. Если необходимо использовать режим высокого уровня безопасности с автоматической отработкой отказа, дополнительно установите экземпляр следящего сервера. Дополнительные сведения см. в разделе Как добавить следящий сервер для зеркального отображения базы данных с использованием проверки подлинности Windows (язык Transact-SQL).

ПримечаниеПримечание

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

См. также

Задания

Справочник

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

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