您的位置:首页 > 数据库

[MSSQL]事务日志还原

2017-09-12 09:35 387 查看
前提:①必须有数据库的完整备份(做个备份计划);

②数据库恢复模式是完整的(full)。

–1.完整备份数据库,一般企业都有做日备份。

BACKUP DATABASE ZE TO DISK = N'D:\DB\ZE_20170712_0903.bak';




–2.故障发生(09:11模拟勿删数据)

WAITFOR TIME '09:11'
DELETE FROM INVMB WHERE MB001 IN ('1-7709003001','1-7709003002','1-7709003003')




–3.出现故障后,首先执行备份事务日志命令,这里以ZE作为数据库名。

BACKUP LOG ZE TO DISK = N'D:\DB\ZELOG.bak'
WITH NORECOVERY;




–4.从完整备份还原数据

RESTORE  DATABASE ZE FROM DISK=N'D:\DB\ZE_20170712_0903.bak'
WITH  NORECOVERY, REPLACE




–5.从事务日志还原数据,还原到某个时间点之前

RESTORE LOG ZE FROM DISK=N'D:\DB\ZELOG.bak'
WITH  STOPAT='2017-09-12 09:10:01.723',RECOVERY




–6.还原数据库,如果数据库提示正在还原中,则执行此命令即可。

RESTORE DATABASE ZE WITH RECOVERY


–7.验证数据

SELECT * FROM  INVMB WHERE MB001 IN ('1-7709003001','1-7709003002','1-7709003003')




完整代码:

--1.完整备份数据库
BACKUP DATABASE ZE TO DISK = N'D:\DB\ZE_20170712_0903.bak';
--2.故障发生(09:11模拟勿删数据)
WAITFOR TIME '09:11' DELETE FROM INVMB WHERE MB001 IN ('1-7709003001','1-7709003002','1-7709003003')
--3.出现故障后,首先执行备份事务日志命令,这里以ZE作为数据库名。
BACKUP LOG ZE TO DISK = N'D:\DB\ZELOG.bak' WITH NORECOVERY;
--4.从完整备份还原数据
RESTORE DATABASE ZE FROM DISK=N'D:\DB\ZE_20170712_0903.bak'
WITH NORECOVERY, REPLACE
--5.从事务日志还原数据,还原到某个时间点之前
RESTORE LOG ZE FROM DISK=N'D:\DB\ZELOG.bak' WITH STOPAT='2017-09-12 09:10:01.723',RECOVERY
--6.还原数据库,如果数据库提示正在还原中,则执行此命令即可。
RESTORE DATABASE ZE WITH RECOVERY
--7.验证数据
SELECT * FROM INVMB WHERE MB001 IN ('1-7709003001','1-7709003002','1-7709003003')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: