Пример: Настроить зеркальное отображение базы данных с помощью проверки подлинности Windows (Transact-SQL)

Область применения:SQL Server

В этом примере показаны все этапы, необходимые для создания сеанса зеркального отображения базы данных со свидетелем с проверкой подлинности Windows. В примерах в этом подразделе используется язык Transact-SQL. Обратите внимание, что в качестве альтернативы использованию этапов Transact-SQL для установки зеркального отображения баз данных можно воспользоваться мастером конфигурации безопасности зеркального отображения баз данных. Дополнительные сведения см. в разделе Настройка сеанса зеркального отображения базы данных с помощью проверки подлинности Windows (SQL Server Management Studio).

Предварительные требования

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

USE master;  
GO  
ALTER DATABASE AdventureWorks   
SET RECOVERY FULL;  
GO  

Дополнительные сведения об изменении модели восстановления в SQL Server Management Studio см. в статье Просмотр или изменение модели восстановления базы данных (SQL Server).

Разрешения

Требуется разрешение ALTER для базы данных и разрешение CREATE ENDPOINT, либо членство в предопределённой серверной роли sysadmin.

Пример

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

В следующей таблице представлены все значения, использованные в этом примере.

Начальная роль зеркального отображения Система размещения Учетная запись пользователя домена
Принципал PARTNERHOST1 <Mydomain>\<dbousername>
Зеркало PARTNERHOST5 <Mydomain>\<dbousername>
Свидетель WITNESSHOST4 <Somedomain>\<witnessuser>
  1. Создайте конечную точку на экземпляре основного сервера (экземпляр по умолчанию для PARTNERHOST1).

    CREATE ENDPOINT Endpoint_Mirroring  
        STATE=STARTED   
        AS TCP (LISTENER_PORT=7022)   
        FOR DATABASE_MIRRORING (ROLE=PARTNER)  
    GO  
    --Partners under same domain user; login already exists in master.  
    --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 witness.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Somedomain\witnessuser];  
    --Grant connect permissions on endpoint to login account of partners.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];  
    GO  
    
  2. Создайте конечную точку на экземпляре зеркального сервера (экземпляр по умолчанию для PARTNERHOST5).

    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.  
    --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 witness.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Somedomain\witnessuser];  
    --Grant connect permissions on endpoint to login account of partners.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];  
    GO  
    
  3. Создайте конечную точку на экземпляре следящего сервера (экземпляр по умолчанию для WITNESSHOST4).

    CREATE ENDPOINT Endpoint_Mirroring  
        STATE=STARTED   
        AS TCP (LISTENER_PORT=7022)   
        FOR DATABASE_MIRRORING (ROLE=WITNESS)  
    GO  
    --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  
    
  4. Создайте зеркальную базу данных. Дополнительные сведения см. в статье Подготовка зеркальной базы данных к зеркальному отображению (SQL Server).

  5. На экземпляре сервера-зеркала на PARTNERHOST5 укажите экземпляр сервера на PARTNERHOST1 в качестве партнера, тем самым сделав его исходным экземпляром основного сервера.

    ALTER DATABASE AdventureWorks   
        SET PARTNER =   
        'TCP://PARTNERHOST1.COM:7022'  
    GO  
    
  6. На основном экземпляре сервера PARTNERHOST1 укажите экземпляр сервера PARTNERHOST5 в качестве партнёра, сделав его исходным экземпляром зеркального сервера.

    ALTER DATABASE AdventureWorks   
        SET PARTNER = 'TCP://PARTNERHOST5.COM:7022'  
    GO  
    
  7. На основном сервере настройте сервер-свидетель, который находится на WITNESSHOST4.

    ALTER DATABASE AdventureWorks   
        SET WITNESS =   
        'TCP://WITNESSHOST4.COM:7022'  
    GO  
    

Связанные задачи

См. также

ALTER DATABASE (Transact-SQL)
Конечная точка зеркального отображения базы данных (SQL Server)
Безопасность транспорта для зеркального отображения баз данных и групп доступности AlwaysOn (SQL Server)
Управление метаданными при создании базы данных в другом экземпляре сервера (SQL Server)
Центр безопасности для ядра СУБД SQL Server и Базы данных Azure SQL