根据日志文件将数据库还原至指定的时间点

----------------------备份处理--------------------------
/*
数据库名:TestDB
按计划定期执行备份语句,1.备份日志,2.收缩日志,3.备份数据库
*/

Use [master]
go
BACKUP LOG [TestDB] TO  DISK = N'c:\testDB_Log.bak' WITH NOFORMAT, INIT,  NAME = N'TestDB-事务日志  备份', 
SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

USE [TestDB]
GO
DBCC SHRINKFILE (N'TestDB_log' , 1)
GO
Use [master]
go
BACKUP DATABASE [TestDB] TO  DISK = N'c:\testDB_Data.bak' WITH NOFORMAT, INIT,  NAME = N'TestDB-完整 数据库 备份',
SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO


-----------------------还原处理----------------------------
/*
步骤
1.备份TestDB的日志TestDB_LogNow.bak
2.还原testDB_Data.bak 为新的数据库名:TestDB2
3.还原日志TestDB_LogNow.bak 为指定的时间点
*/
Use [master]
go
BACKUP LOG [TestDB] TO  DISK = N'c:\testDB_LogNow.bak' WITH NOFORMAT, INIT,  NAME = N'TestDB-事务日志  备份',
 SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

RESTORE DATABASE [TestDB2] FROM  DISK = N'C:\testDB_Data.bak' WITH  FILE = 1,  
NORECOVERY,  NOUNLOAD,  REPLACE,  STATS = 10
GO

RESTORE LOG [TestDB2] FROM  DISK = N'C:\testDB_LogNow.bak' WITH  FILE = 1,  NOUNLOAD,  STATS = 10, 
 RECOVERY,STOPAT = N'2011-12-29T22:19:00'
GO


 

你可能感兴趣的:(根据日志文件将数据库还原至指定的时间点)