sqlserver 误删数据库恢复
本文为转载
原文:https://blog.csdn.net/xwnxwn/article/details/53537841
由于长时间从事企业应用系统开发,前往用户现场升级、调试系统是比较常做的事情,但是就在周一,由于同事的失误在毫无知觉的情况下误删了生产数据库几乎所有的数据。当我发现的那一刻,感觉头发都立起来了,心想这他娘的是要领盒饭了。
为了迅速恢复系统的使用,在当时的情况下立即关闭相关系统的访问入口,前后共花费不到五分钟。经过思考,立即将最近的一次备份文件进行还原,从而保证了系统的正常运行,但是此举也不可避免的可能会丢掉某些数据。
另外事情已经发生,如何做才能为以后的数据恢复做准备呢,以下是自己的观点:
1、务必冷静,事情已经发生不可慌乱。
2、立即查看当前时间,最好能够精确到秒,并做记录。
3、应立即向直接上级反映此事,不可隐瞒,防止事态扩大。
4、如果权限允许,应当立即停止相关应用,防止有新的数据写入数据库。
事后一直不放心,当下次再出现这种情况的时候,该如何对数据进行数据恢复,尽可能的减小损失呢(做不到完全避免损失),因此从网上查阅大量资料并进行整理。
之前生产数据库使用的是sqlserver2000和2005,当时也出现过误删数据的情况,用Log Exlorer For SQL很轻松就恢复了数据,现在数据库升级到2012了这个工具无法使用了,因此只能采用其他办法,在此需要特别鸣谢CSDN一位大神的文章,网址:http://blog.csdn.net/dba_huangzj/article/details/8491327
原文是SQLSERVER2008R2,本次试验环境是2012版本。根据文章中过程的介绍,进行了整个过程的操作,但是还是未能一遍完成,现在在自己的操作过程中进行总结,并分享。
在此构建一个新的数据库模拟数据恢复全过程。
1、构建新数据库以及写入一些数据



2、做一次完整备份,这个是前提,没有一份完整备份文件是无法进行接下来的操作的。

注意:如上图所示,恢复模式一定要说完整,如果是其他类型那恐怕就没有下文了。一般来讲新建数据库的时候,默认不要去改恢复模式这个属性。
3、写入一条新数据

4、删除数据,让悲剧重现,记住此时要记录时间点,在现实中往往会由于慌乱忘记记录,但是希望看了这个文章之后能够记住此事。

好既然悲剧已经发生,也有了心理准备和恢复前准备,此刻最好看一下系统时间。接下来就要演示如何进行数据恢复。
5、做事务日志备份,做事务日志备份需要注意一下一点,如图所示

备份模式请选择事务日志,备份路径自行决定

进入选项,将可靠性第1、2勾选,事务日志选择第二个,压缩属性可以不选择.点击确定备份成功,此时数据库将显示为正在还原状态
注意:如果备份失败,请检查该数据库是否正在被占用,如果是请kill。
6、还原完整备份
数据库处于正在还原状态,右键数据库--任务--还原--文件和文件组,选择最近的一次完整备份。此时,需要在“选项”中选择第二种还原方式,具体如下图。
如上图,勾选完整数据备份文件。

如上图,恢复状态选择第二种,从字面意思就知道为什么要选择这种。
7、接着还原备份的事务日志
完整备份还原完毕,接着要对事务日志进行还原,右键数据库--任务--还原--事务日志,如下图:
还原事务日志的时候需要特别注意“时间点”这个设置,其他不需要设置。
时间点选择为误删数据的时间点之前就可以恢复出误删的数据,所以之前强调要查看一下时间。如下图所示

点击确定,在确定等待还原成功,数据库变成可用状态。此时后再查询,如下图:

如果查询发现数据不是你想要的,那么可以重复上述的操作,从备份事务日志开始,然后最后选择时间点的时候在缩小范围。
以上,完整的演示了个人在恢复数据过程中的总结。当然前提是允许这样干,当然大型电子商务系统、高并发系统应该不适用,肯定也不会出现误删数据的情况,都有对应的解决方案避免此类情况发生。
sqlserver 误删数据库恢复的更多相关文章
- SQLSERVER最简单的同名数据库恢复过程.
一. 冷备份恢复 1. net stop mssqlserver # 如果是安装的默认数据库实例 关闭 sqlserver的数据库 2. copy sqlserver的数据文件 主要是mdf 数据文件 ...
- 解剖SQLSERVER 第一篇 数据库恢复软件商的黑幕(有删减版)
解剖SQLSERVER 第一篇 数据库恢复软件商的黑幕(有删减版) 这一系列,我们一起来解剖SQLSERVER 在系列的第一篇文章里本人可能会得罪某些人,但是作为一位SQLSERVER MVP,在我 ...
- Sqlserver 数据库恢复常见错误及解决(网站转载 留着备用)
数据库恢复常见错误及解决 2009-04-13 11:25 1145人阅读 评论(0) 收藏 举报 数据库databasesqlserverusermicrosoftsql server 在sqlSe ...
- SqlServer 通过日志恢复数据库
前期工作 查看数据属性,确保下条件: 1.数据库属性->选项->恢复模式=完整 2.建好库以后.一个数据库完整的数据备份 3.到出事期间日志没有你间断 4.记录出事的准确时间 一.数据准备 ...
- SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法
SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法 今天看到这篇文章:没有了SA密码,无法Windows集成身份登录,DBA怎么办? 想起来之前着急哥问我的一个问 ...
- SQLSERVER误删Windows登录用户
SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法 SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法 今天看到这篇 ...
- 用友金蝶SQL数据库误格式化恢复 SQL数据库修复 SQL数据库恢复 工具 方法
用友金蝶SQL数据库误格式化恢复 SQL数据库修复 SQL数据库恢复 硬盘误格式化.重分区.重装操作系统覆盖 SQL数据解决方法 [客户名称]:贵州铜仁市开天驾驶人培训中心 [软件名称]:用友T3普及 ...
- sqlserver 附加数据库失败,错误提示:5拒绝访问 解决办法
sqlserver 附加数据库失败,错误提示:5拒绝访问 解决办法 金刚 sqlserver 附加数据库 拒绝访问 今天把项目拷贝到新硬盘里,发现在附加数据库中提示:操作系统错误5:"5拒绝 ...
- 从SQLSERVER/MYSQL数据库中随机取一条或者N条记录
从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 很多人都知道使用rand()函数但是怎麽使用可能不是每个人都知道 建立测试表 USE [sss] GO ,NAME ) DEFAULT ...
随机推荐
- 《xss跨站脚本剖析与防御》实验笔记
1.书籍<xss跨站脚本剖析与防御>上介绍的xss测试代码 <img src="javascrpt:alert('xss');">, <table b ...
- mybatis forEach使用
1.集合的使用 <select id="getCitysByKeys" resultMap="city" parameterType="Arra ...
- Python Flask Jinja2模板引擎
模板 简介 模板是一个包含响应文本的文件,其中包含用占位变量表示的动态部分,其具体值只在请 求的上下文中才能知道. 渲染 使用真实值替换变量,再返回最终得到的响应字符串,这一过程 称为渲染.为了渲染模 ...
- ss源码学习--从协议建立到完成一次代理请求
上一次介绍了ss源码中各个事件处理函数完成的工作,这次具体分析一下协议的建立以及请求数据的传输过程. 因为ss的local和server共用一个类以及一系列的事件处理函数,所以看起来稍显复杂.下面来将 ...
- poj1256(贪心+并查集)
题目链接:http://poj.org/problem?id=1456 题意:给n件商品的价格和卖出截至时间,每一个单位时间最多只能卖出一件商品,求能获得的最大利润. 思路:首先是贪心,为获得最大利润 ...
- Unity3d插件Master Audio AAA Sound v3.5
Unity3d声音类插件Master Audio AAA Sound v3.5.8.3Master Audio gives you tremendous ease of use, speed, pow ...
- java初学网站
http://www.jfinal.com/doc http://www.w3school.com.cn/
- ROS launch总结
1 运行Launch文件2 新建Launch文件3 在namespace中启动nodes 4 remapping names 5 其他的launch元素 1 运行Launch文件 Launch文 ...
- mysql 事务中如果有sql语句出错,会导致自动回滚吗?
事务,我们都知道具有原子性,操作要么全部成功,要么全部失败.但是有可能会造成误解. 我们先准备一张表,来进行测试 CREATE TABLE `name` ( `id` int(11) unsigned ...
- JFinal Web开发学习(一)开启HelloWorld
初次接触JFinal框架,接触过MVC思想,接触过Spring. JFinal官网: http://www.jfinal.com/ 之前很嫌弃JavaWeb开发,主要原因是繁琐的xml配置. 官方推荐 ...