Estou usando o SQL Server 2008 R2 Standard (versão 10.50.1600.1) para meu site de produção e a edição SQL Server Express com Advanced Services (v10.50.1600.1) para meu host local como um banco de dados.
Poucos dias atrás, meu SQL Server travou e eu tive que instalar uma nova versão 2008 R2 Express em meu host local. Funcionou bem quando restaurei algumas versões mais antigas retiradas da edição Express, mas quando tento restaurar o banco de dados de um .bak
arquivo que é retirado do servidor de produção, está causando o seguinte erro:
Erro: o elenco especificado não é válido. (SqlManagerUI)
e quando tento restaurar o banco de dados usando o comando
Use Master
Go
RESTORE DATABASE Publications
FROM DISK = 'C:\Publications.bak'
WITH MOVE 'Publications' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS2008R2\MSSQL\DATA\Publications.mdf',--adjust path
MOVE 'AlPublications_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS2008R2\MSSQL\DATA\Publications.ldf'
Isso gera um erro diferente
Msg 3154, nível 16, estado 4, linha 1
O conjunto de backup contém um backup de um banco de dados diferente do banco de dados 'Publicações' existente.
Msg 3013, nível 16, estado 1, linha 1
RESTORE DATABASE está sendo encerrado de forma anormal.
Eu verifiquei as versões. Todos eles parecem combinar comigo, conforme mostrado na imagem abaixo
Anteriormente, eu conseguia restaurar um banco de dados da versão padrão para a edição expressa, mas agora ele falha. Excluí o banco de dados e tentei recriá-lo. Isso também falha.
Não tenho certeza do que estou fazendo de errado. Eu agradeceria ajuda nisso em relação
O problema foi resolvido , pois parece que o arquivo .bak estava corrompido. Quando tentei com um arquivo diferente, funcionou.
fonte
,REPLACE
ao comando T-SQL para sobrescrever o banco de dados AlHabtoorPublications existente.Respostas:
A GUI pode ser instável às vezes. O erro que você obteve ao usar o T-SQL é porque você está tentando sobrescrever um banco de dados existente, mas não especificou para sobrescrever / substituir o banco de dados existente. O seguinte pode funcionar:
fonte
, REPLACE
Failed: 38
indicareached end of the file
. (Em uma janela de comando, executeNET HELPMSG 38
). Isso geralmente indica um backup corrompido: stackoverflow.com/questions/5656363/…Pode ser devido à restauração do arquivo de backup da versão do SQL Server 2012 no SQL Server 2008 R2 ou até menos.
fonte
Finalmente recebi este erro para ir embora em uma restauração. Mudei para o SQL2012 por frustração, mas acho que provavelmente ainda funcionaria no 2008R2. Tive que usar os nomes lógicos:
E a partir daí executei uma instrução de restauração
MOVE
usando nomes lógicos.Quando terminei de restaurar, quase chorei de alegria.
Boa sorte!
fonte
Abaixo podem estar 2 motivos para este problema:
O backup feito no SQL 2012 e o Restore Headeronly foi feito no SQL 2008 R2
A mídia de backup está corrompida.
Se executarmos o comando abaixo, podemos encontrar o erro real sempre:
Forneça a localização completa do seu arquivo de banco de dados no quot
Espero que ajude
fonte