Eu preciso substituir o banco de dados antigo em nosso ambiente de teste por uma nova cópia do banco de dados de produção.
O ambiente de teste é na verdade composto por duas instâncias do banco de dados de teste, em dois servidores diferentes, em uma configuração de espelhamento (ele tem espelhamento porque a produção tem espelhamento e o cliente deseja que o ambiente de teste seja semelhante à produção). / p>
Eu pensei que isso seria uma simples questão:
- Obtendo um backup (o arquivo .bak) do banco de dados de produção
- Desativando temporariamente o espelhamento dos bancos de dados de teste
- Substituir (ou seja, restaurá-los) do backup (prod)
- Ativar novamente o espelhamento
Mas, aparentemente, isso não é suficiente para saltar. Depois de lutar com ele por um dia (problemas de permissão, erros crípticos, problemas que desaparecem se você reiniciar o SSMS (sério), eu vou poupá-lo da lista completa ...) Eu finalmente consegui o novo DB restaurado no princípio e instâncias de espelho do teste DB.
No entanto, em algum lugar ao longo da linha, o SQL Server abandonou as configurações do espelhamento, então cliquei direito no princípio, selecionei o espelhamento e passei direto pelo assistente de segurança. Quando eu cliquei em "Finish" no final do assistente de segurança, ele fez a coisa e eu tenho a tela que informa que tudo foi configurado com sucesso ("Configurando endpoints" - "Sucesso"). Imediatamente depois disso é outra janela perguntando se eu gostaria de começar o espelhamento, no entanto, clicando em iniciar nessa janela, recebo o seguinte erro do SQL Server:
Ocorreu um erro ao iniciar o espelhamento.
O banco de dados "3DSS_TEST" não está configurado para espelhamento de banco de dados. (Microsoft SQL Server, erro: 1416)
Estou recebendo "O espelhamento está configurado com sucesso!" Então, como parte do mesmo processo, "o espelhamento não pode ser iniciado porque você não o configurou!" :(
Alguma ideia? Alguém já viu isso antes ou sabe como divulgar uma mensagem de erro mais útil ou outra informação?
Atualização: resolvida
Como Brian diz abaixo, eu restaurei o banco de dados espelho com a opção de recuperação errada, a maneira correta foi:
RESTORE DATABASE [MyDb]
FROM disk = 'C:\TEmp\MyDb_LIVE_Prod_backup_2010-06-18_for_test_server.bak'
WITH
REPLACE,
NOrecovery /* This should be 'norecovery', my problem was I used 'recovery' */
Obrigado!