Errores al restaurar backups desde devices

27/01/2005 - 16:47 por Morena | Informe spam
El Escenario es como sigue:
He creado un device a una unidad de red que apunta al disco duro de otro
servidor(ServidorDeBackup) distinto a donde tengo mi base de datos. En este
device almaceno el backup completo del día, 3 diferenciales y los logs de
transacciones cada media hora. De manera que al revisar el contenido del
device tengo lo siguiente:

-Full Backup
-Log Backup
-Log Backup
-Log Backup
-Diferencial Backup
-Log Backup
-Log Backup
-Log Backup
-Diferencial Backup
-Log Backup
-Log Backup
-Log Backup
-Diferencial Backup
-Log Backup
-Log Backup
-Log Backup

Estoy tratando de restaurar este backup en otro servidor sobre otra base de
datos.He escrito el siguiente código para restaurar el full backup del
inicio del día:

RESTORE DATABASE PruebaMiBASE
from disk='\\ServidorDeBackup\Backups\MiBASE.BAK'
WITH NORECOVERY,
MOVE 'MiBASE_Data' TO 'G:\PruebaMiBASE_data.mdf',
MOVE 'MiBASE_Log' TO 'I:\PruebaMiBASE_log.ldf',
REPLACE
GO

Hasta aquí todo bien ya que restaura el backup completo que está en ese
dispositivo.El problema surge cuando quiero restaurar alguno de los
diferenciales.Para restaurar los diferenciales tengo el siguiente codigo:

RESTORE DATABASE PruebaMiBASE
from disk='\\ServidorDeBackup\Backups\MiBASE.BAK'
WITH NORECOVERY,
FILE = 2 --quiero restaurar el segundo diferencial
GO

Cuando lo ejecuto me salta el siguiente error:
Server: Msg 3135, Level 16, State 2, Line 1
The backup set in file '\\ServidorDeBackup\Backups\MiBASE.BAK' was created
by BACKUP LOG and cannot be used for this restore operation.
Server: Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.

Entonces supuse que FILE debería ser igual al número de archivo que
correspondía al segundo backup diferencial y coloqué FILE=9 y me dio otro
error:
Server: Msg 3136, Level 16, State 1, Line 1
Cannot apply the backup on device '\\ServidorDeBackup\Backups\MiBASE.BAK' to
database 'PruebaMiBASE'.
Server: Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.

Sin embargo si yo intento restaurar los logs con el siguiente código,
pareciera que si hace esa restauración, ya que no da error alguno:
RESTORE LOG PruebaMiBASE
from disk='\\ServidorDeBackup\Backups\MiBASE.BAK'
WITH NORECOVERY
GO

No sé que estoy haciendo mal o si la forma en que realicé el backup es la
errónea...ya que no puedo restaurar los diferenciales. Probé desde el
enterprise manager y me da justamente el mismo error. Si alguno me puede dar
una idea o una sugerencia se los agradeceré mucho.

Morena.
 

Leer las respuestas

#1 Eladio Rincón
27/01/2005 - 18:47 | Informe spam
Hola,

puedes usar la sentencia
RESTORE HEADERONLY
FROM disk='c:\backupNorthwind.bak'

para comprobar las copias que tiene el dispositivo:
donde BackupType:
1 = Database
2 = Transaction Log
4 = File
5 = Differential
Database
6 = Differential File

sobre tu problema he detectado lo siguiente:
el primer mensaje que comentas es que intentas restaurar una copia de log
con la instrucción "restore database", para ello deberías usar la
instrucción "restore log";

y en el último error al usar "restore log" me da la sensación de que no
especificas el número de fichero...

mira este ejemplo que he hecho con la base de datos Northwind que es posible
te sea de ayuda:

use master
go
alter database Northwind set RECOVERY FULL
go
backup database Northwind to disk='c:\backupNorthwind.bak' with init -- 1
go
backup database Northwind to disk='c:\backupNorthwind.bak' with
differential --2
go
backup log Northwind to disk='c:\backupNorthwind.bak' --3
go
backup log Northwind to disk='c:\backupNorthwind.bak' --4
go
backup log Northwind to disk='c:\backupNorthwind.bak' --5
go
backup database Northwind to disk='c:\backupNorthwind.bak' with
differential --6
go
backup log Northwind to disk='c:\backupNorthwind.bak' --7
go
backup log Northwind to disk='c:\backupNorthwind.bak' --8
go
backup log Northwind to disk='c:\backupNorthwind.bak' --9
go

restore database Northwind2
from disk='c:\backupNorthwind.bak'
with file = 1
, norecovery
, move 'Northwind' to 'c:orthwind2.mdf'
, move 'Northwind_log' to 'c:orthwind2.ldf'
go
restore database Northwind2
from disk='c:\backupNorthwind.bak'
with file = 6
, norecovery
go
restore log Northwind2
from disk='c:\backupNorthwind.bak'
with file = 7
, norecovery
go
restore log Northwind2
from disk='c:\backupNorthwind.bak'
with file = 8
, norecovery
go
restore log Northwind2
from disk='c:\backupNorthwind.bak'
with file = 9
go



Eladio Rincón
SQL Server MVP

Solid Quality Learning (http://www.solidqualitylearning.com)
"Comparte lo que sabes, aprende lo que no sepas", FGG

Consulte el histórico del grupo en Google
http://groups.google.com/groups?gro....sqlserver

¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Morena" wrote in message
news:
El Escenario es como sigue:
He creado un device a una unidad de red que apunta al disco duro de otro
servidor(ServidorDeBackup) distinto a donde tengo mi base de datos. En


este
device almaceno el backup completo del día, 3 diferenciales y los logs de
transacciones cada media hora. De manera que al revisar el contenido del
device tengo lo siguiente:

-Full Backup
-Log Backup
-Log Backup
-Log Backup
-Diferencial Backup
-Log Backup
-Log Backup
-Log Backup
-Diferencial Backup
-Log Backup
-Log Backup
-Log Backup
-Diferencial Backup
-Log Backup
-Log Backup
-Log Backup

Estoy tratando de restaurar este backup en otro servidor sobre otra base


de
datos.He escrito el siguiente código para restaurar el full backup del
inicio del día:

RESTORE DATABASE PruebaMiBASE
from disk='\\ServidorDeBackup\Backups\MiBASE.BAK'
WITH NORECOVERY,
MOVE 'MiBASE_Data' TO 'G:\PruebaMiBASE_data.mdf',
MOVE 'MiBASE_Log' TO 'I:\PruebaMiBASE_log.ldf',
REPLACE
GO

Hasta aquí todo bien ya que restaura el backup completo que está en ese
dispositivo.El problema surge cuando quiero restaurar alguno de los
diferenciales.Para restaurar los diferenciales tengo el siguiente codigo:

RESTORE DATABASE PruebaMiBASE
from disk='\\ServidorDeBackup\Backups\MiBASE.BAK'
WITH NORECOVERY,
FILE = 2 --quiero restaurar el segundo diferencial
GO

Cuando lo ejecuto me salta el siguiente error:
Server: Msg 3135, Level 16, State 2, Line 1
The backup set in file '\\ServidorDeBackup\Backups\MiBASE.BAK' was created
by BACKUP LOG and cannot be used for this restore operation.
Server: Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.

Entonces supuse que FILE debería ser igual al número de archivo que
correspondía al segundo backup diferencial y coloqué FILE=9 y me dio otro
error:
Server: Msg 3136, Level 16, State 1, Line 1
Cannot apply the backup on device '\\ServidorDeBackup\Backups\MiBASE.BAK'


to
database 'PruebaMiBASE'.
Server: Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.

Sin embargo si yo intento restaurar los logs con el siguiente código,
pareciera que si hace esa restauración, ya que no da error alguno:
RESTORE LOG PruebaMiBASE
from disk='\\ServidorDeBackup\Backups\MiBASE.BAK'
WITH NORECOVERY
GO

No sé que estoy haciendo mal o si la forma en que realicé el backup es la
errónea...ya que no puedo restaurar los diferenciales. Probé desde el
enterprise manager y me da justamente el mismo error. Si alguno me puede


dar
una idea o una sugerencia se los agradeceré mucho.

Morena.


Preguntas similares