Compartilhar via


Exemplo: Configurando o espelhamento de banco de dados usando a Autenticação do Windows (Transact-SQL)

Este exemplo mostra todas as fases necessárias para criar uma sessão de espelhamento de banco de dados com uma testemunha, usando a Autenticação do Windows. Os exemplos deste tópico usam o Transact-SQL. Note que como uma alternativa para o uso de passos de Transact-SQL, você pode usar o Assistente para Configurar Segurança de Espelhamento de Banco de Dados para a configuração do espelhamento de banco de dados. Para obter mais informações, consulte Estabelecer uma sessão de espelhamento de banco de dados usando a Autenticação do Windows (SQL Server Management Studio).

Pré-requisito

O exemplo usa o banco de dados de exemplo do AdventureWorks, que, por padrão, usa o modelo de recuperação simples. Para usar espelhamento de banco de dados com este banco de dados, você deve alterar isso para usar o modelo de recuperação completa. Para fazer isto em Transact-SQL, use a instrução ALTER DATABASE, como se segue:

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

Para obter informações sobre a alteração do modelo de recuperação em SQL Server Management Studio, consulte Exibir ou alterar o modelo de recuperação de um banco de dados (SQL Server).

Permissões

Exige a permissão ALTER no banco de dados e permissão CREATE ENDPOINT ou associação na função de servidor fixa sysadmin.

Exemplo

Neste exemplo, os dois parceiros e a testemunha são as instâncias de servidor padrão em três sistemas de computador. As três instâncias de servidor executam o mesmo domínio do Windows, mas a conta do usuário (usada como conta de serviço de inicialização) é diferente para a instância de servidor testemunha do exemplo.

A tabela a seguir resume os valores usados neste exemplo.

Função de espelhamento inicial

Sistema de host

Conta de usuário do domínio

Principal

PARTNERHOST1

<Mydomain>\<dbousername>

Espelho

PARTNERHOST5

<Mydomain>\<dbousername>

Testemunha

WITNESSHOST4

<Somedomain>\<witnessuser>

  1. Crie um ponto de extremidade na instância de servidor principal (instância padrão em 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. Crie um ponto de extremidade na instância de servidor espelho (instância padrão em 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. Crie um ponto de extremidade na instância de servidor testemunha (instância padrão em 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. Crie o banco de dados espelho. Para obter mais informações, consulte Preparar um banco de dados espelho para espelhamento (SQL Server).

  5. Na instância de servidor espelho em PARTNERHOST5, defina a instância de servidor em PARTNERHOST1 como o parceiro (fazendo dele a instância de servidor principal inicial).

    ALTER DATABASE AdventureWorks 
        SET PARTNER = 
        'TCP://PARTNERHOST1.COM:7022'
    GO
    
  6. Na instância do servidor principal em PARTNERHOST1, defina a instância de servidor em PARTNERHOST5 como o parceiro (fazendo dele a instância de servidor espelho inicial).

    ALTER DATABASE AdventureWorks 
        SET PARTNER = 'TCP://PARTNERHOST5.COM:7022'
    GO
    
  7. No servidor principal, defina a testemunha (que está em WITNESSHOST4).

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

Tarefas relacionadas

Ícone de seta usado com o link Voltar ao Início[Início]

Consulte também

Referência

ALTER DATABASE (Transact-SQL)

Conceitos

O ponto de extremidade de espelhamento de banco de dados (SQL Server)

Segurança de transporte para espelhamento de banco de dados e grupos de disponibilidade AlwaysOn (SQL Server)

Gerenciar metadados ao disponibilizar um banco de dados em outra instância do servidor (SQL Server)

Segurança e proteção (Mecanismo de Banco de Dados)