Пример Настройка зеркального отображения с использованием проверки подлинности 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