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

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

ms175883.note(ru-ru,SQL.90).gifВажно!
Настройку зеркального отображения базы данных рекомендуется выполнять в часы с наименьшей загрузкой, поскольку этот процесс может повлиять на производительность.
ms175883.note(ru-ru,SQL.90).gifПримечание.
Указанный экземпляр сервера может быть задействован в нескольких одновременных сеансах зеркального отображения базы данных с одними и теми же или разными участниками. В некоторых сеансах указанный экземпляр сервера может быть участником, в других — следящим сервером. На экземпляре зеркального сервера должен работать тот же выпуск SQL Server — Standard Edition или Enterprise Edition — что и на экземпляре основного сервера. Кроме того, настоятельно рекомендуется, чтобы они работали на приблизительно одинаковых системах, способных обрабатывать сходную рабочую нагрузку.

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

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

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

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

    ms175883.note(ru-ru,SQL.90).gifПримечание.
    Метод проверки подлинности, применяемый экземпляром сервера при зеркальном отображении базы данных, является свойством его конечной точки зеркального отображения базы данных. Для зеркального отображения базы данных доступны два типа защиты передачи данных: проверка подлинности Windows и проверка подлинности на основе сертификатов. Дополнительные сведения см. в разделе Защита транспорта зеркального отображения базы данных.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример

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

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

ms175883.note(ru-ru,SQL.90).gifПримечание.
Подробный пример, показывающий настройку безопасности, подготовку зеркальной базы данных, настройки участников и добавление следящего сервера, см. в разделе Настройка зеркального отображения базы данных.
  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.
    
    ms175883.note(ru-ru,SQL.90).gifПримечание.
    Пример по настройке имени входа см. в разделе Как разрешить сетевой доступ к зеркальному отображению базы данных, используя проверку подлинности Windows (Transact-SQL).
  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 AdventureWorks 
        TO DISK = 'C:\AdvWorks_dbmirror.bak' 
        WITH FORMAT
    GO
    
  4. На экземпляре зеркального сервера (на компьютере PARTNERHOST5) восстанавливается база данных:

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

    BACKUP LOG AdventureWorks 
        TO DISK = 'C:\AdventureWorks.bak' 
    GO
    
  6. Перед тем, как приступить к зеркальному отображению, необходимо применить требуемую резервную копию журналов (и все последующие резервные копии журналов).
    В следующем примере с помощью инструкции Transact-SQL восстанавливается первый журнал из файла «C:\AdventureWorks.bak»:

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

    ALTER DATABASE AdventureWorks 
        SET PARTNER = 
        'TCP://PARTNERHOST1:7022'
    GO
    
    ms175883.note(ru-ru,SQL.90).gifВажно!
    По умолчанию, сеанс зеркального отображения базы данных выполняется в синхронном режиме, который зависит от наличия полной безопасности транзакций (параметр SAFETY установлен в FULL). Чтобы сеанс выполнялся в асинхронном, высокопроизводительном режиме, установите параметр SAFETY в OFF. Дополнительные сведения см. в разделах Сеансы зеркального отображения базы данных и Как изменить безопасность транзакций в сеансах зеркального отображения базы данных (Transact-SQL).
  8. На экземпляре основного сервера установите экземпляр сервера на компьютере PARTNERHOST5 в качестве участника (делая его исходным зеркальным сервером):

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

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

См. также

Задачи

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

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

Автоматический переход на другой ресурс
Сеансы зеркального отображения базы данных
Зеркальное отображение баз данных и доставка журналов
Обзор зеркального отображения базы данных
Репликация и зеркальное отображение базы данных
Указание сетевого адреса сервера (зеркальное отображение базы данных)
Настройки Transact-SQL и режимы зеркального отображения базы данных

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

ALTER DATABASE (Transact-SQL)
Настройка зеркального отображения базы данных

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

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