日志还原条件--条件一:检查数据库的恢复模式:Full--条件二:有最后一次的完整备份--条件三:完整备份后未强制截断日志--条件四:故障发生后做过日志备份
CREATE TABLE [dbo].[tb]( [姓名] [varchar](10) NULL, [课程] [varchar](10) NULL, [分数] [int] NULL ) ON [PRIMARY] Insert into tb (姓名,课程, 分数 ) values ('张三1', '语文', 80),('张三', '语文', 80),('张三2', '数学', 90),('张三3', '英语', 70) ---完整备份: Use master GO Backup Database Test To Disk='D:\Backup\TEST_FullDB_20141103.bak' With init ---模拟故障时间,记录前后时间 Use Test GO Select GETDATE () --2014-11-03 21:39:30.323 UPdate tb SET 分数 = 150 --120 Select GETDATE () -- 2014-11-03 21:39:30.323 ---故障后未强制截断日志备份 Backup Log Test To Disk='D:\Backup\TEST_Log_20141103_2.trn' With No_Truncate, init --- 还原到另一个数据库. NORECOVERY 模式(因测试环境只一个数据库实例,故路径要写明) USE [master] RESTORE DATABASE [TEST_New] FROM DISK = N'D:\Backup\TEST_FullDB_20141103.bak' WITH FILE = 1, MOVE N'Test' TO N'D:\Backup\Test.ndf', MOVE N'Test_log' TO N'D:\Backup\Test.ldf', NORECOVERY ----日志还原反复执行直到真正的时间点,使用STANDBY的目的是担心时间点选择不够准确, 还可以继续恢复日志备份 USE [master] RESTORE LOG [TEST_New] FROM DISK =N'D:\Backup\TEST_Log_20141103_2.trn' WITH FILE = 1, STANDBY = N'D:\Backup\ROLLBACK_UNDO_TEST_New.BAK', STOPAT = N' 2014-11-03 21:39:30.323' -----查看结果 Use TEST_New -- Use TEST Select * From dbo.tb (nolock) -- 2014-11-03 21:32:19.070 ---最后更新....转载于:https://www.cnblogs.com/dba-soft/p/4074576.html
相关资源:Centos7实现MySQL基于日志还原数据的示例代码