Se eu fizer failover de um banco de dados, os outros que compartilham o mesmo ponto final de espelho também fazem failover?

11

Temos dois bancos de dados configurados para espelhamento em uma única instância do SQL Server: um banco de dados de teste e um banco de dados de produção. Ambos são espelhados para outro servidor usando exatamente os mesmos pontos finais.

Se eu for para as Propriedades do banco de dados para o banco de dados de teste e clicar no botão "Failover", ele fará o failover do banco de dados de produção também, pois os dois bancos de dados compartilham um ponto de extremidade espelhado e suas propriedades de endereços de rede do servidor são as mesmas?

insira a descrição da imagem aqui

Estou preocupado porque, quando configurei o espelhamento para o segundo banco de dados, não precisei configurar nada de novo. Apenas usou todas as informações existentes.

Se eu usar o botão "Failover" nas Propriedades do banco de dados, isso resultará no failover de todos os bancos de dados que usam esse ponto de extremidade ou apenas do banco de dados específico para o qual estou visualizando as propriedades?

Rachel
fonte

Respostas:

19

A resposta de @ mrdenny é precisa: a falha em um banco de dados não resultará em todos os outros bancos de dados também.

No entanto, apenas para dar uma visão geral do que é um Endpoint de espelhamento de banco de dados :

De BOL ,

O gerenciamento de conexões no Microsoft SQL Server 2005 e versões posteriores é baseado em pontos de extremidade. Um ponto de extremidade é um objeto do SQL Server que permite que o SQL Server se comunique pela rede. Para o espelhamento de banco de dados, uma instância do servidor requer seu próprio terminal dedicado de espelhamento de banco de dados. Todas as conexões de espelhamento em uma instância do servidor usam um único ponto de extremidade de espelhamento de banco de dados. Esse terminal é um terminal de finalidade especial usado exclusivamente para receber conexões de espelhamento de banco de dados de outras instâncias do servidor.

Para ser mais flexível, você pode usar o T-sql para realizar failover manual:

Desative o espelhamento (quebre o espelhamento) no banco de dados espelhado.

ALTER DATABASE <<DB NAME>> SET PARTNER OFF

Defina o mod de recuperação do banco de dados para RECOVERY

RESTORE DATABASE <<DB NAME>> WITH RECOVERY

Corrija usuários órfãos se você estiver usando autenticação SQL

EXEC sp_change_users_login Auto_Fix , ‘<<username>>’

EDITAR:

Como você está usando o modo de alta segurança (conforme sua captura de tela), é possível usar o seguinte no servidor principal

ALTER DATABASE <<DB NAME>> SET PARTNER FAILOVER

Fazendo isso, apenas a inversão de papel acontece e a direção do espelhamento é invertida - o principal se torna espelho e vice-versa. Observe que MIRRORING não está quebrado.

Observe que, por este artigo do MSDN

O failover manual pode ser iniciado apenas no servidor principal.

Se você deseja automatizar todo o failover, consulte Automação de espelhamento de banco de dados

Kin Shah
fonte
8

Não, não vai. Os bancos de dados são submetidos a failover independentemente um do outro. Não há nenhum dano ao falhar no banco de dados de teste, o banco de dados de produção permanecerá onde está.

mrdenny
fonte