Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Restaurar backup diferencial (https://www.clubdelphi.com/foros/showthread.php?t=50001)

Viky 06-11-2007 01:13:45

Restaurar backup diferencial
 
Tengo las siguientes dos instruccion para restaurar un backup diferencial:

RESTOREDATABASE base FROMDISK='C:\base_full.BAK'WITH NORECOVERY,REPLACE

RESTOREDATABASE base FROMDISK='C:\base_DIFF.BAK'WITH RECOVERY

la primera instrucción es para restaurar el ultimo backup full, la segunda instruccion es para restaurar el backup diferencial; pero el problema es que me sale el sgte error: System.Data.SqlClient.SqlError: This differential backup cannot be restored because the database has not been restored to the correct earlier state. (Microsoft.SqlServer.Smo)

Estoy trabajando con sql 2005, y agradeceria mucho una ayuda, porque lei toda la ayuda y en todos los lugares me dice que ponga las instrucciones tal cual las puse.

Muchas Gracias
Viky

Viky 09-11-2007 21:21:47

Les comento que la única solución que hallé es hacer backup del log de transacciones y restaurar en secuencia los loog que se van haciendo. En una página encontré como hacer el backup y luego la restauración.

Para hacer el backup hice lo sgte:
USE master
GO
BACKUP DATABASE AdventureWorks TO DISK='c:\AdventureWorks_full.BAK' WITH INIT
BACKUP LOG AdventureWorks TO DISK='c:\AdventureWorks_log1.TRN' WITH INIT
BACKUP DATABASE AdventureWorks TO DISK='c:\AdventureWorks_diff.BAK' WITH INIT, DIFFERENTIAL
BACKUP LOG AdventureWorks TO DISK='c:\AdventureWorks_log2.TRN' WITH INIT
--run special full backup
BACKUP DATABASE AdventureWorks TO DISK='c:\AdventureWorks_full2.BAK' WITH INIT, COPY_ONLY
--resume normal backup process
BACKUP DATABASE AdventureWorks TO DISK='c:\AdventureWorks_diff2.BAK' WITH INIT, DIFFERENTIAL
BACKUP LOG AdventureWorks TO DISK='c:\AdventureWorks_log3.TRN' WITH INIT

Para Restaurar hago lo sgte:
RESTORE DATABASE AdventureWorks FROM DISK='C:\AdventureWorks_full.BAK' WITH NORECOVERY, REPLACE
RESTORE DATABASE AdventureWorks FROM DISK='C:\AdventureWorks_diff2.BAK' WITH NORECOVERY
RESTORE LOG AdventureWorks FROM DISK='C:\AdventureWorks_log3.TRN' WITH RECOVERY



El próximo backup que hago es así:
BACKUP LOG AdventureWorks TO DISK='c:\AdventureWorks_log4.TRN' WITH INIT


Y para resastaurar el log_4:
RESTORE DATABASE AdventureWorks FROM DISK='C:\AdventureWorks_full.BAK' WITH NORECOVERY, REPLACE
RESTORE DATABASE AdventureWorks FROM DISK='C:\AdventureWorks_diff2.BAK' WITH NORECOVERY
RESTORE LOG AdventureWorks FROM DISK='C:\AdventureWorks_log3.TRN' WITH NORECOVERY

RESTORE LOG AdventureWorks FROM DISK='C:\AdventureWorks_log4.TRN' WITH RECOVERY

Saludos


Lepe 09-11-2007 22:12:00

Pues se agradece mucho el completar el hilo. Yo al menos no sabía como afrontarlo.

La próxima vez, te sugiero que encierres tu código entre etiquetas "sql". Escribes el mensaje así:

[sql]
USE master
GO
BACKUP DATABASE AdventureWorks TO DISK='c:\AdventureWorks_full.BAK' WITH INIT
BACKUP LOG AdventureWorks TO DISK='c:\AdventureWorks_log1.TRN' WITH INIT
[/sql]

y el resultado al enviar el mensaje al foro:
Código SQL [-]
USE master
GO
BACKUP DATABASE AdventureWorks TO DISK='c:\AdventureWorks_full.BAK' WITH INIT
BACKUP LOG AdventureWorks TO DISK='c:\AdventureWorks_log1.TRN' WITH INIT

No tendrás que colorear a mano, vBulletin ya lo hace ¿oki?

Saludos


La franja horaria es GMT +2. Ahora son las 09:41:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi