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


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

В этом примере показаны все этапы, необходимые для создания сеанса зеркального отображения базы данных с свидетелем с помощью проверки подлинности 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  
    

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

См. также

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