在維護數據庫時,難免會因爲腳本編寫錯誤而誤更新了數據,此時可能備份數據庫是前一天的,根據數據庫備份文件還原就只能還原到前一天,會丟失當天的數據,因此需要能夠按照指定時間還原數據庫。
sqlserver事務日誌提供了數據還原到指定時間點的功能,前提是事務日誌是完整的
操作如下:
--數據庫離線,斷開其他所有連接
ALTER DATABASE SYWMS_CT SET OFFLINE WITH ROLLBACK IMMEDIATE
--首先還原完整數據庫,誤操作之前的數據庫備份
RESTORE DATABASE SYWMS_CT FROM DISK='D:\SQL數據庫(切勿刪除)\SYWMS_CT_backup_2017_09_03_000008_7673256.bak' WITH REPLACE,NORECOVERY
--備份事務日誌
D:\sql\ctlog9.9.bak
--將數據庫還原到指定時間點
RESTORE LOG SYWMS_CT FROM DISK='D:\sql\ctlog9.9.bak' WITH RECOVERY,STOPAT=N'9/9/2017 5:40:00 PM'
--開啓數據庫連接
ALTER database SYWMS_CT set online