SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可。但是,这个恢复需要有两个前提条件:
1. 至少有一个误删除之前的数据库完全备份。
2. 数据库的恢复模式(Recovery mode)是完整(Full)。
3 有最近的数据库备份(bak)且备份后没有删除过日志
恢复步骤:
1 立即停止业务,停掉网站 冷静冷静!
记住误操作的时间点 精确到秒
2 设置数据库为独占 选项 -> 限制访问,选择SINGLE_USER
命令行操作(不要使用管理工具操作)
准备: 1找到最近的完整数据库备份 2 备份当下数据库 BACKUP DATABASE [数据库名] to DISK = N'出错的数据库文件名
每一步都很重要
a) 备份当前数据库的事务日志:BACKUP LOG [数据库名] TO disk= N'备份文件名' WITH NORECOVERY
b) 恢复一个误删除之前的完全备份:RESTORE DATABASE [数据库名] FROM DISK = N'完全备份文件名' WITH NORECOVERY, REPLACE
c) 将数据库恢复至误删除之前的时间点:RESTORE LOG [数据库] FROM DISK = N'第一步的日志备份文件名' WITH STOPAT = N'误删除之前的时间点' , RECOVERY
检查数据是否恢复完成,完成后设置数据库为正常模式 ,然后业务运行