Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
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 isso no Transact-SQL, use a instrução ALTER DATABASE, conforme mostrado a seguir:
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 hospedeiro | Conta de usuário do domínio |
|---|---|---|
| Principal | PARTNERHOST1 | <Mydomain>\<dbousername> |
| Espelho | PARTNERHOST5 | <Mydomain>\<dbousername> |
| 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]; GOCrie 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]; GOCrie um endpoint na instância do servidor de testemunha (instância padrão do 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]; GOCrie o banco de dados de 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' GONa 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' GONo servidor principal, defina a testemunha (que está em WITNESSHOST4).
ALTER DATABASE AdventureWorks SET WITNESS = 'TCP://WITNESSHOST4.COM:7022' GO
Tarefas Relacionadas
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)
Conteúdo relacionado
- ALTER DATABASE (Transact-SQL)
- O ponto de extremidade de espelhamento do banco de dados (SQL Server)
- Segurança de transporte em grupos de disponibilidade e espelhamento de banco de dados
- Gerenciar metadados ao disponibilizar um banco de dados em outro servidor
- Segurança do Mecanismo de Banco de Dados do SQL Server e Banco de Dados SQL do Azure