Recuperação de banco de dados espelhada do SQL Server 2005

3

cenário: Queremos usar a versão do espelhamento de banco de dados do SQL Server 2005 Standard junto com um servidor testemunha em um ambiente de domínio do Active Directory. O banco de dados é alimentado a partir de um servidor de aplicativos de terceiros que não pode ser modificado além da string de conexão do banco de dados.

Duas perguntas relacionadas a isso:

  1. Como podemos tornar a falha um pouco invisível (ou pelo menos exigir menos trabalho manual) para o servidor de aplicativos de terceiros gastando o mínimo possível? Meu pensamento está configurado DNS "sqlserver.ourdomain" que aponta para o primário e usar isso na seqüência de conexão. Então, se falhar, mudamos o DNS para apontar para o espelho e reiniciar o servidor de aplicativos. Não é invisível ou automático, mas é barato e parece que deveria funcionar.
  2. Como fazemos as transações do secundário de volta para o primário após o fracasso e promovemos o primário? Esse processo deve levar em conta "desfazendo" o modo de failover em # 1. Obviamente, se formos usar a opção DNS acima, nós redirecionaremos o DNS para o primário, mas como faço para recuperar o sistema como antes - com o primário atualizado do espelho e o espelho sendo rebaixado de volta ao espelho?
por Matt Rogish 06.05.2009 / 17:18

2 respostas

8

Pergunta 1: Você está pensando demais nisso. As especificações de espelhamento de banco de dados do SQL 2005 são construídas na cadeia de conexão. Você especifica o servidor primário e o espelho na cadeia de conexão, e o driver tenta os servidores em ordem. Essa é uma das belezas do espelhamento de banco de dados - nenhuma alteração de aplicativo do cliente é necessária.

Mais informações aqui: link link

Pergunta 2: Você disse que está usando um servidor testemunha, então presumo que esteja usando o failover automático. O espelhamento de banco de dados do SQL 2005 faz isso automaticamente - mais informações aqui:

link

Se você não estiver usando o failover automático, ainda é muito fácil: basta clicar com o botão direito do mouse no banco de dados, entrar no Espelhamento de Banco de Dados e pode fazer o failback dos bancos de dados de primário para secundário e vice-versa. Eles voltam automaticamente em sincronia após interrupções como reinicializações.

    
por 06.05.2009 / 17:36
2

Uma outra coisa a ter em mente (não relacionada às suas perguntas, mas algo que as pessoas não pensam às vezes) - se o principal original ficar inativo por um tempo, você deve remover o espelhamento para impedir o log de transações o novo diretor crescendo fora de controle. Caso contrário, o log de transação deve ser mantido, porque o espelhamento assume que o principal antigo voltará a ficar online em algum momento.

Obrigado

    
por 06.05.2009 / 21:00