Estou usando o SQL Server 2008R2. Ontem à noite, a máquina host na qual meu banco de dados espelhado estava rodando basicamente quebrou. Felizmente, o banco de dados principal estava em um servidor host diferente e estava bom. No entanto...
O princípio está funcionando, mas diz suspenso. Quando tento retomar o espelhamento, recebo um erro no log de erros do SQL, fornecendo um número de erro de 9004.
Um rápido Google desse número de erro retorna com este artigo . (tl;dr: log de transações está danificado)
Então, isso significa que o envio do log de transação entre o princípio e o espelho foi de alguma forma estragado? Como faço para corrigir isso?
É tão simples quanto fazer um backup completo no princípio e um log de transações completo e, em seguida, restaurá-los no banco de dados espelho com a opção norecovery ativada e, em seguida, configurar o espelhamento novamente?
Ou terei que fazer algo mais drástico?
O problema provável é que o principal teve backups de log executados desde que a sessão de espelhamento foi pausada e não pode recuperar, portanto, reinicializar o espelho com um backup completo e de log deve corrigir o problema. Primeiro, você precisará remover o espelhamento de ambos os servidores com:
Em seguida, restaure o backup completo e de log com NORECOVERY e execute novamente por meio do assistente de espelhamento.