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


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

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

В будущей версии Microsoft SQL Server этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Используйте вместо этого Группы доступности AlwaysOn.

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

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

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

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

Указанный экземпляр сервера может быть задействован в нескольких одновременных сеансах зеркального отображения базы данных с одними и теми же или разными участниками. В некоторых сеансах указанный экземпляр сервера может быть участником, в других — следящим сервером. На экземпляре зеркального сервера должен работать тот же выпуск SQL Server, что и на экземпляре основного сервера. Зеркальное отображение баз данных поддерживается не во всех выпусках Microsoft SQL Server. Список функций, поддерживаемых в разных выпусках SQL Server, см. в разделе Возможности, поддерживаемые различными выпусками SQL Server 2012. Кроме того, настоятельно рекомендуется размещать серверы в системах со сравнимой производительностью, которые могут справляться с одинаковой рабочей нагрузкой.

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

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

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

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

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

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

    На каждом сервере-партнере убедитесь, что конечная точка существует для зеркального отображения базы данных. Независимо от поддерживаемого количества сеансов зеркального отображения экземпляр сервера может иметь только одну конечную точку зеркального отображения базы данных. Если этот экземпляр сервера будет использоваться исключительно для участников сеансов зеркального отображения базы данных, можно присвоить роль участника конечной точке (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 (SQL Server).

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

    ALTER DATABASE <database_name> SET PARTNER = <server_network_address>

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

    Для указания сетевого адреса сервера, используйте следующий синтаксис:

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

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

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

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

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

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

    ALTER DATABASE <database_name> SET PARTNER = <server_network_address>

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

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

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

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

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

Пример

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

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

Пример показывает основные шаги для создания сеанса зеркального отображения базы данных без следящего сервера. Эти два участника являются экземплярами сервера по умолчанию на двух компьютерных системах (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.
    
    ПримечаниеПримечание

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

  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 в качестве участника (делая его исходным основным сервером):

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

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

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

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

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

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

См. также

Задания

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

Справочник

ALTER DATABASE (Transact-SQL)

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

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

Подготовка зеркальной базы данных к зеркальному отображению (SQL Server)

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

Зеркальное отображение баз данных и доставка журналов (SQL Server)

Зеркальное отображение базы данных (SQL Server)

Зеркальное отображение и репликация баз данных (SQL Server)

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

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

Режимы работы зеркального отображения базы данных