Quando configurado com sucesso no SQL Server para espelhamento de banco de dados, ocorreu um erro dizendo que ele não está configurado para espelhamento de banco de dados

4

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!

    
por MGOwen 21.06.2010 / 09:40

2 respostas

4

O erro 1416 geralmente ocorre quando o banco de dados espelho é recuperado. Assegure-se de que o banco de dados espelhado esteja em um estado Restaurando (opção NORECOVERY)

Execute a consulta abaixo no servidor espelho e verifique o estado do banco de dados.

select database_id, user_access_desc, state_desc, recovery_model_desc, is_broker_enabled, log_reuse_wait_desc from sys.databases where name = 'database'

Se o banco de dados espelho estiver no estado ONLINE, você precisará restaurar o banco de dados e os backups subsequentes do T-Log novamente com a opção NORECOVERY antes de configurar os parceiros de espelhamento.

    
por 22.06.2010 / 13:24
-1

Isso funcionou para mim bem:

RESTORE DATABASE [MyDb]
FROM disk = 'C:\TEmp\MyDb'
WITH
REPLACE,
NOrecovery /* */
    
por 28.08.2013 / 13:59