Problema ao restaurar backup diferencial

2

Eu tentei restaurar o backup diferencial, mas recebi o seguinte erro:

Falha na restauração do servidor (Microsoft.Sqlserver.smoextended) Informação adicional: system.data.sqlclient.sqlerror: O arquivo 'astroved_data' não pode ser movido por esta operação de restauração (microsoft.sqlserver.smo)

astroved_data é um arquivo .mdf.

alguém pode me ajudar?

    
por user18576 26.08.2009 / 13:54

2 respostas

3

Não consigo que esse erro ocorra no SSMS 2008, que você especificou usando, mas posso fazer com que ele ocorra no SSMS 2005.

O motivo é que você não pode especificar um novo local para seus arquivos de dados quando fizer uma restauração diferencial na página OPTIONS.

Se você escolher um novo local ao restaurar o backup completo na página de opções, precisará alterá-lo para o SAME physical location ao fazer a restauração diferencial. Caso contrário, o SSMS coloca no local original e tenta restaurá-lo para lá.

Esse problema parece estar corrigido no SSMS 2008 (verificado com o RTM) e parece ignorar quaisquer valores colocados na página de opções do caminho ao fazer a restauração diferencial, mesmo que o local seja inválido.

Quais outras opções você está selecionando? isso pode ser outra maneira de acionar o erro? Tente colocar no mesmo local dos arquivos de dados / log que você usou em sua restauração completa e veja se ele corrige isso.

Se você está cansado de ficar à mercê do SSMS, aprenda a fazer a restauração no T-SQL:

-- use this command to get the logical names for the restore 
-- so you can specify a new location using MOVE
RESTORE FILELISTONLY FROM DISK='c:\av_full.bak'

-- restore the full backup, don't recover yet
RESTORE DATABASE adventureworks1 FROM DISK= 'c:\av_full.bak' WITH 
MOVE 'AdventureWorks_Data'  to 'C:\AdventureWorks_Data.mdf',
MOVE 'AdventureWorks_Log'   to 'C:\AdventureWorks_Log.ldf' , 
NORECOVERY

-- restore the differential
RESTORE DATABASE adventureworks1 FROM DISK= 'c:\av_diff.bak'
    
por 26.08.2009 / 14:34
0

Eu tive esse problema várias vezes. A resolução mais fácil, se você estiver mais confortável com o SSMS, é preparar a restauração como fez originalmente, mas depois clique no botão Script na caixa de diálogo Restaurar.

Isso mostrará algo parecido com isto:

RESTORE DATABASE [UAT] 
FROM  DISK = N'd:\Database_backup\mydifferentialbackup.bak' 
WITH  FILE = 1,  
MOVE N'mydb_Data' TO N'R:\MSSQL10_50.REPORTING\MSSQL\Data\mydb.mdf',  
MOVE N'mydb_FullText' TO N'R:\MSSQL10_50.REPORTING\MSSQL\Data\mydb.ndf',  
MOVE N'mydb_Log' TO N'R:\MSSQL10_50.REPORTING\MSSQL\Data\mydb.ldf',  
NOUNLOAD,  STATS = 10
GO

Em seguida, basta remover as cláusulas MOVE:

RESTORE DATABASE [UAT] 
FROM  DISK = N'd:\Database_backup\mydifferentialbackup.bak' 
WITH  FILE = 1,  
NOUNLOAD,  STATS = 10
GO

E bingo - isso deve funcionar.

    
por 26.06.2015 / 12:33