Eu tenho o SQL 2012 com SP1 instalado no meu computador. Eu fiz um backup de um banco de dados test.bak
.
Eu tenho um banco de dados com o nome test2
que é o mesmo banco de dados, mas os dados foram alterados.
Eu quero restaurar test.bak
sobre o test2
banco de dados.
Estou sempre recebendo o erro:
Erro 3154: O conjunto de backup mantém um backup de um banco de dados diferente do banco de dados existente.
Eu tentei:
Eu cliquei direito
test2 -> Restore database -> From device
Eu escolhi
test.bak
e verifiquei,With Replace
mas recebo o erro.Então eu tentei clicar com o botão direito do mouse em
test2 -> Restore file and filegroups
Eu escolhi
test.bak
e verifiquei,With Replace
mas recebo o erro.
Posso excluir meu banco de dados antigo e, em seguida, restaurar meu backup com o nome correto, mas quando estava usando o SQL 2008, não tive problemas em restaurar um banco de dados existente.
Parece que desde que eu uso o SQL2012, recebo muito esse erro!
fonte
1) Use
WITH REPLACE
enquanto estiver usando oRESTORE
comando.2)
DROP
o banco de dados mais antigo que está em conflito e restaura novamente usando oRESTORE
comandoNão há nenhum problema com a versão do SQL Server. Como Aaron apontou, também sou capaz de restaurar o banco de dados de 2008 a 2012 e as mesmas versões.
fonte
Você está restaurando o banco de dados errado. Não pense nisso como "restaurando
test2
com um backup detest
", pense em "restaurar meu backup de,test
mas renomeie-o comotest2
". Você pode escolher a tarefa de restauraçãotest
e colocartest2
no campo "Para o banco de dados:".Como Aaron menciona, aprenda o script em vez de confiar no assistente - é mais claro o que está acontecendo para onde.
fonte
Você ainda pode fazer isso, mas isso requer uma etapa extra.
Abra a caixa de diálogo de restauração, faça suas seleções habituais de acordo com os hábitos de 2008. Se o banco de dados original for DB, escolha o dispositivo DB.bak para Source e altere o nome do Destination para DBTest. Em seguida, em Selecione uma página (canto superior esquerdo), onde você vê Geral / Arquivos / Opções - escolha Arquivos. Olhe na grade. Você verá colunas para Nome do arquivo original e Restaurar como nome do arquivo. Aumente manualmente o último e digite o novo nome (se o nome original do banco de dados for DB e você desejar criar o DBTest, altere .... \ DB.mdf para ... \ DBTest.mdf, etc.)
Isso aceitará seu arquivo .bak para DB como origem e DBTest como destino. Você também pode precisar ir para a página Opções e escolher Com Substituir. Preciso de outros motivos, portanto não posso testá-lo sem essa opção.
fonte
A resposta correta, como apontado, é usar a
WITH REPLACE
opçãoEu só quero ressaltar que você pode obter o erro na pergunta mesmo quando estiver usando
WITH REPLACE
, se tentar restaurar de um backup diferencial (sem o completo).fonte
Espero que isso funcione.
fonte
Por favor, pare o servidor em execução e, em seguida, restaure o db, ele irá ajudá-lo. :)
fonte