在维护数据库时,难免会因为脚本编写错误而误更新了数据,此时可能备份数据库是前一天的,根据数据库备份文件还原就只能还原到前一天,会丢失当天的数据,因此需要能够按照指定时间还原数据库。

sqlserver事务日志提供了数据还原到指定时间点的功能,前提是事务日志是完整的


操作如下:

--数据库离线,断开其他所有连接
ALTER DATABASE [mcet] SET OFFLINE WITH ROLLBACK IMMEDIATE
--首先还原完整数据库,误操作之前的数据库备份
RESTORE DATABASE [mcet] FROM DISK='D:\MCEUSA201805210756.bak' WITH REPLACE,NORECOVERY

--备份事务日志
--E:\mceusa20180522log.bak

--将数据库还原到指定时间点
RESTORE LOG [mcet] FROM DISK='E:\mceusa20180522log.bak' WITH RECOVERY,STOPAT=N'9/9/2017 5:40:00 PM'

--开启数据库连接
ALTER database [mcet] set online

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐