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 das etapas do 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, confira 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 saber mais sobre como alterar o modelo de recuperação no SQL Server Management Studio, confira 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> |
Witness (testemunha) | WITNESSHOST4 | <Somedomain>\<witnessuser> |
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
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
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
Crie o banco de dados espelho. Para obter mais informações, confira Preparar um Banco de Dados Espelho para Espelhamento – (SQL Server).
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
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
No servidor principal, defina a testemunha (que está em WITNESSHOST4).
ALTER DATABASE AdventureWorks SET WITNESS = 'TCP://WITNESSHOST4.COM:7022' GO
Related Tasks
Preparar um banco de dados espelho para espelhamento (SQL Server)
Configurar um banco de dados espelho para usar a propriedade confiável (Transact-SQL)
Exemplo: configurar espelhamento de banco de dados usando certificados (Transact-SQL)
Consulte Também
ALTER DATABASE (Transact-SQL)
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)
Central de segurança do Mecanismo de Banco de Dados do SQL Server e Banco de Dados SQL do Azure