SQL Server数据恢复——日志备份
太坑了,我把数据给删了
“大坑啊,数据被我误删了。”从事数据库相关工作的过程中,我想应该很多人会有过和我一样的遭遇吧?尤其是在进行update或者delete操作的时候,忘记了where条件。这些毁灭性的操作,足以使你不能淡定。然后就开始到baidu、csdn、csblogs等等找恢复方案。网上呢,也是众说纷纭,一时间,你又崩溃了。这个时候要学会淡定,否则,会让你心碎的。
幸好,还可以数据恢复
出现这类问题之后,我们的目的就是想找回误操作之前的数据,在SSMS2008之前,有个很出名的工具LogExploer,但是好像是收费的(反正,我是对收费的工具,都是避而远之)。除了这之外,我们还可以使用日志备份的功能,来完成数据恢复。
下面我们来讲解用日志备份的方法来恢复数据(有图有真相哦)。
准备工作:
1.运行下面的代码,创建RecoverDemo数据库,和TestTable表。
USE [RecoverDemo]
GO
/****** Object: Table [dbo].[TestTable] Script Date: 10/22/2014 17:00:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[TestTable](
[A] [varchar](50) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
INSERT [dbo].[TestTable] ([A]) VALUES (N'a1')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a2')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a3')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a4')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a5')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a6')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a7')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a8')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a9')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a10')
2.然后做一次完整备份,至于步骤就没必要说了吧。(恢复数据的前提是,该数据库至少做过一次完整备份)
提示:因为所有类型的备份都是基于完整备份的,如果没有至少一次的完整备份,其他的备份都是多余的,所以一定要在建完数据库后做一次完整备份。
3.确认数据库的恢复模式为完整。

提示:在生产环境中,都强烈建议使用【完整恢复模式】,即使说相对于其他两中恢复模式,完整恢复模式产生的日志会很大,但是在出现问题的时候,这都不算什么了。
4.执行下面脚本,向TestTable中添加数据。
INSERT [dbo].[TestTable] ([A]) VALUES (N'a11')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a12')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a13')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a14')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a15')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a16')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a17')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a18')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a19')
INSERT [dbo].[TestTable] ([A]) VALUES (N'a20')
检查结果:select * from TestTable
灾难发生了
1.我们误操作删除(delete from TestTable)了TestTable中的数据。
这个时候,你就该不淡定了。
别急!我们来恢复数据
之前的那些都算是抛砖引玉吧,接下来才是我们重点想讲述的。
1.做日志备份,记住一定要选择【备份日志尾部】。

然后在【选项】中,严格按照红色框中的选择项进行勾选,否则,你可能会哭的。并且保证数据库不要有连接,因为有链接,日志备份是备份不了的。

2.日志备份后数据库会处于【正在还原状态...】

日志备份后就可以进行数据还原了
3.先要还原完整备份,注意一定要选择最后那一次的完整备份,否则是还原不了的。


4.最后一步就是还原日志备份了,选择恢复的时间点不必太在意,只要填写你误操作之前的时间点,就可以了。



哈哈,数据还原成功了。

后事之师
1.在进行危险操作的的时候一定要,谨慎谨慎,以免造成不必要的麻烦。
2.一定要养成备份的习惯,千万不要因为嫌弃日志文件过于庞大,就将恢复模式设为【简单】,甚至是删除日志文件,到那个时候神仙恐怕也就不了你了。
SQL Server数据恢复——日志备份的更多相关文章
- SQL SERVER BUG--Alwayson日志备份报错
数据库版本 SQL SERVER 2012 企业版,版本号:11.0.5582.0 问题场景: 数据库配置Alwayson环境,同机房2节点同步自动切换+跨机房异步,在异步机房中选取同一节点做完整备份 ...
- SQL Server 2012完全备份、差异备份、事务日志备份和还原操作;
SQL Server 2012完全备份.差异备份.事务日志备份和还原操作: 1.首先,建立一个测试数据库,TestA:添加一张表,录入二条数据:备份操作这里我就不详细截图和讲解了.相信大家都会备份,我 ...
- SQL Server 数据恢复到指点时间点(完整恢复)
SQL Server 数据恢复到指点时间点(完整恢复) 高文龙关注2人评论944人阅读2017-03-20 12:57:12 SQL Server 数据恢复到指点时间点(完整恢复) 说到数据库恢复,其 ...
- SQL Server数据恢复准备之TRUNCATE TABLE理解
SQL Server数据恢复准备之TRUNCATE TABLE理解 转自:https://blog.51cto.com/aimax/2142553 易语随风去关注0人评论6717人阅读2018-07- ...
- 人人都是 DBA(VI)SQL Server 事务日志
SQL Server 的数据库引擎通过事务服务(Transaction Services)提供事务的 ACID 属性支持.ACID 属性包括: 原子性(Atomicity) 一致性(Consisten ...
- SQL Server 使用日志传送
参考文献: http://msdn.microsoft.com/en-us/library/ms187103.aspx 概述 SQL Server 使用日志传送,您可以自动将“主服务器”实例上“主数据 ...
- 对 sql server 数据库的备份进行加密
原文:对 sql server 数据库的备份进行加密 嗯,最近在研究数据库备份相关的东西,考虑到应该为数据库备份加个密,就准备从网上搜索一下看看有什么好办法,没想到还挺乱... 首先,我从网上搜到的, ...
- SQL Server中日志
再谈SQL Server中日志的的作用 简介 之前我已经写了一个关于SQL Server日志的简单系列文章.本篇文章会进一步挖掘日志背后的一些概念,原理以及作用.如果您没有看过我之前的文章,请参阅: ...
- sql server 错误日志errorlog
一 .概述 SQL Server 将某些系统事件和用户定义事件记录到 SQL Server 错误日志和 Microsoft Windows 应用程序日志中. 这两种日志都会自动给所有记录事件加上时间戳 ...
随机推荐
- mysql 5.6
mysql 5.6的安裝: 1,提前安装依赖的库环境. yum install -y make bison cmake gcc-c++ ncurses ncurses-devel git 2,下载 ...
- 三、Mp3帧分析(数据帧)
一. 帧 帧头长4字节,是的,是4个字节,共32位. 帧头后面可能有两个字节的CRC 校验,这两个字节的是否存在决定于FRAMEHEADER 信息的第16bit, 为0 则帧头后面无校验,为1 则有校 ...
- 基于内容的自适应变长编码[CAVLC]
基于内容自适应的变长编码方式用于编码zigzag顺序扫描的4x4和2x2残差变换系数块. 1.编码系数个数和零序列(coeff_token): coeff_token = <TotalCoeff ...
- Model注解的后台原理
Asp.net MVC的验证特性是由模型绑定器.模型元数据.模型验证器和模型状态组成的协调系统的一部分. 1.验证和模型绑定 默认情况下,Asp.net MVC框架在模型绑定石执行验证逻辑,在操作方法 ...
- 链接<a href="javascript:void(0)" />
1.<a href="#"></a>——点击链接后,页面会向上滚到页首,# 默认锚点为 #TOP 2.<a href="javascript ...
- 基于实际项目的SQL学习总结
青云 随笔 - 2, 文章 - 0, 评论 - 1, 引用 - 0 一个项目涉及到的50个Sql语句(整理版) /* 标题:一个项目涉及到的50个Sql语句(整理版) 说明:以下五十个语句都按照测 ...
- UVA 140 Bandwidth
题意: 给出一个n个节点的图G,和一个节点的排列,定义节点i的带宽为i和相邻节点在排列中的最远距离,而所有带宽的最大值就是图的带宽,求让图的带宽最小的排列. 分析: 列出所有可能的排列,记录当前找到的 ...
- C++ 常见容器
迭代器. 基本介绍(来源于网络):迭代器是一种抽象的概念.能够遍历容器内的 部分/全部 元素.每个迭代器中包含着元素的地址. 它可以将 抽象容器 和 泛型算法 结合起来. 大致原理: 1)迭代器 ...
- GDAL的安装和配置(编译proj.4)
1.下载地址 http://trac.osgeo.org/gdal/wiki/DownloadSource 下面是两个版本: http://pan.baidu.com/s/1bntuXER (1.1 ...
- http协议说明
今天公司有同事让我给他讲一讲http..然后自己写了一个示例代码,这如果都看不懂.那我也没办法了.... <?php //这里服务器以apache举例.nginx.iis.他们实际上处理方式的都 ...