通过日志恢复MSSQL数据例子

这段时间看了关于在SQL server 中通过日志和时间点来恢复数据。也看了一些网上的例子,看如何通过日志来恢复数据。

    前提条件:

        数据库的故障恢复改为非简单模式,去掉自动关闭和自动收缩两个选项     

      如果是简单模式: 类似下面的语句操作数据就不会记录到日志中:  select * into t from [表名] 

      这时为保证数据的完整要将数据库的恢复模式改成“完整” 

    测试环境:    

       1,建立数据库和测试表         

create database zp

create table [zping.com](
id 
int,
name 
varchar(20)
)

   插入测试数据:   

insert into [zping.com](id,name)
values(1,'zping.com1')
insert into [zping.com](id,name)
values(2,'zping.com2')
insert into [zping.com](id,name)
values(3,'zping.com3')
insert into [zping.com](id,name)
values(4,'zping.com4')

  备份数据库,可以通过sql server的可视化操作,下面是生成的代码:

BACKUP DATABASE [zp] TO  DISK = N'C:\k.bak' WITH NOFORMAT, NOINIT,  
NAME 
= N'zp-完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

   查看数据: 

  

  注意:这时我们做一个完整备份

 这时可能一不小心删除了一些数据。我们模拟一下:(假定删除了1,2的数据) 

delete from [zping.com] where (id=1 or id =2)

   注意:要记住大体的删除时间

 

  这时发现删除错误了,怎么把数据找回来啊。方法有两个:

       1,通过Log Explorer 查找进行恢复数据(我网站有此工具)

       2,另一种方法通过恢复日志(指定时间点恢复)来恢复数据。

 

    说明:第一个方法可以在线操作。

            第二个方法必须停止数据库或者再另一个数据库恢复(前提是必须有一个完全备份和日志备份)

  

   这里我们来讨论第二中方法指定时间点恢复:

      1,这时对数据库事务日志做备份(注意,如果没做个数据库完整备份,是不能做事务日志备份的

 

     这时新建一个数据库zp(将以前的数据库改名),恢复数据库

 

   这时我们看到,有两个还原的数据库备份,因为我对zp数据库备份了两次,两次的备份的数据文件都一样。这里我们选择最近时间的备份  

 

  默认在数据库的设置如下:是追加到备份集里,所以会有两个备份,如下图:

 

 

   同时,在”选项“里设置”不回滚“事务, 

   注意:通过事务日志还原数据库,必须选择"不回滚"事务

   确定后:出现下面情况:

 

  这时发现,数据库一直是”正在还原“,这时还原数据库事务日志,

   1,“常规”里选择时间,(刚删除的时间)

   2,“选项”里将恢复状态设置为”回滚未提交“事务

   

 

  确定后,查询数据库,发现数据回来了。

 

  总结

   1, 这是一般大型网站数据安全的一个办法,因为数据库比较大(可能有几百G)数据,做一次完整备份时间很长,而且影响数据库服务器的性能, 为保证数据安全,大多采用完整备份+事务日志备份来保证数据安全。例如:一天做一次或者2天做一次完整备份,几个小时内做一次日志备份。(当然可以用写一 个job来实现)

   2,如SQL server 2005里的镜像就是采用的这种事务日志同步的方法保证数据的同步。

   3,如果恢复的日志数据出现”LSN“太早和太晚说明了事务日志间的不连续。这时要注意备份的时间和顺序。

 

转载于:https://www.cnblogs.com/chenbg2001/archive/2012/03/09/2388281.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576582.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最优化学习笔记(十一)——对偶问题的例子

某线性规划问题为: mincTxst.Ax≤b\min \boldsymbol{c}^T\boldsymbol{x} \\ st. \boldsymbol{Ax} \le \boldsymbol{b}这个例子和上节中的表2非对称形式的对偶关系比较接近,将上式改写为: maxxT(−c)st.xTAT≤bT\max \boldsymbol{x^T(-c)}\\ …

ElasticSearch查询返回信息根据字段排序(英文检索)

根据年龄降序排序 #排序 GET /lib3/user/_search {"query": {"match_all": {}},"sort":[{"age": {"order" :"desc"}}] } {"took" : 1,"timed_out" : false,"_shards" : {"t…

机器学习笔记(十四)——HMM估计问题和前向后向算法

一、隐马尔科夫链的第一个基本问题 估计问题:给定一个观察序列OO1O2…OT和模型u(A,B,π),如何快速地计算出给定模型u情况下,观察序列O的概率, 即P(O|u)? 二、求解观察序列的概率 其实,求解这个问题就是一个解码问题。 对于任意的状态序列Q…

windows中架设基于Apache的svn服务器

1.安装apache及svn的windows版我安装的版本是:httpd-2.2.22-win32-x86-openssl-0.9.8t.msi 和svn-win32-1.5.0.zipsvn是解压就可以了2. 解svn安装目录下\bin下的mod_authz_svn.so、mod_dav_svn.so拷贝到apache/modules下3.将 svn安装目录下\bin下的libdb44.dll拷贝到apache/bin…

ElasticSearch通配符 * 查询(英文检索)

#如果你要查询的字段信息记得不太清楚, 我们也可以使用通配符 * GET /lib3/user/_search {"from":0, "size": 2,"_source": {"includes": "addr*","excludes": ["name" , "bir*"]},"…

sqlserver agent不能启动

我启动了 event log 服务 ,就好了,不知什么原因转载于:https://www.cnblogs.com/laogao/archive/2012/03/11/2390794.html

机器学习笔记(十五)——HMM序列问题和维特比算法

一、引言 这篇blog主要讲序列问题和其解法——维特比算法。 二、HMM中的第二个基本问题 序列问题:给定一个观察序列OO1O2…OT和模型u(A,B,π),如何快速有效地选择在一定意义下”最优”的状态序列Qq1q2…qT,使得该状态序列“最好地解释”观察序列&#…

ElasticSearch范围查询(英文检索)

#根据日期范围查询 #范围查询 GET /lib3/user/_search {"query": {"range": {"birthday": {"from": "1990-10-10","to": "2020-03-15"}}} }{"took" : 24,"timed_out" : false,&qu…

(转)CDN是如何工作的?

转载自:CDN是如何工作的? CDN是互联网中使用较频繁的一种技术。你也许常听人说:“我们的网站使用了CDN技术”,但可能他们对CDN的了解并不多,也许只局限于--用了以后网站访问速度会变快。 其实,CDN的原理非常…

ElasticSearch前缀匹配查询(英文检索)

#前缀匹配查询 #前缀匹配查询 GET /lib3/user/_search {"query": {"match_phrase_prefix": {"name":{"query":"zhao"}}} }{"took" : 59,"timed_out" : false,"_shards" : {"total&quo…

机器学习笔记(十六)——EM算法概述

一、引言 按照计划,这周应该学习HMM中的第三个基本问题:参数估计问题,但是其中的内容涉及到了EM算法,所以打算先把EM算法搞定之后再去继续HMM的问题。EM算法的推导过程比较复杂,这节我只给出简述和计算公式&#xff0c…

c# 日期函数[string.Format----GetDateTimeFormats] --转载

c# 日期函数[string.Format----GetDateTimeFormats] c# 日期函数 DateTime dt DateTime.Now;Label1.Text dt.ToString();//2005-11-5 13:21:25Label2.Text dt.ToFileTime().ToString();//127756416859912816Label3.Text dt.ToFileTimeUtc().ToString();//12775670485991281…

ElasticSearch wildcard查询(英文检索)

wildcard查询 允许使用通配符*和?来进行查询 *代表0个或多个字符 工代表任意1个字符 GET /ib3/user/ search { "query": { "wildcard":{ "name": *zhao* }}} GET /ib3/user/ search { "query": { "wildcard":{ *name"…

机器学习笔记(十七)——EM算法的推导

一、Jensen 不等式 在EM算法的推导过程中,用到了数学上的Jensen不等式,这里先来介绍一下。 若Ω是有限集合{x1,x2,…,xn}{x1,x2,…,xn},而μ是Ω上的正规计数测度,则不等式的一般形式可以简单地用和式表示: φ(∑i1ng(xi)λi)≤…

CCTextureCache的多线程加载原理和使用

做引擎的时候,遇到一个texture的异步加载,这里将具体的原理和使用方法贴出来,后面根据浏览器的特性做修改移植。 voidCCTextureCache::addImageAsync(constchar *path, CCObject *target, SEL_CallFuncO selector) { CCAssert(path ! NULL, …

ElasticSearch fuzzy模糊查询(英文检索)

fuzzy实现模糊查询 value:查询的关键字 boost:查询的权值,默认值是1.0 min_similarity:设置匹配的最小相似度,默认值为0.5, 对于字符串,取值为0-1(包括0和1);对于数值,取值可能大于1;对于日期型取值为1d,1m等,1d就代表1天 prefix…

机器学习笔记(十八)——HMM的参数估计

一、HMM中的第三个基本问题 参数估计问题:给定一个观察序列OO1O2…OT,如何调节模型μ(A,B,π)的参数,使得P(O|μ)最大化: argmaxμP(Otraining|μ)arg \max_{\mu} P(O_{training}|\mu)模型的参数是指构成μ的πi,aij,bj(k)。本文…

[Pyramid 杂记]Static Routes,静态路由是用来干什么的?

官方文档上介绍说Static Routes(即添加路由时指定static参数为True,config.add_route(page, /page/{action}, staticTrue)),在匹配Request Url时不会被用来匹配,它只用于生成URL. 这哥就很奇怪,只用于生成URL,而不会被匹配,就是说生成的URL不会被匹配到了嘛(有点拗口 …),那要这…

ElasticSearch highlight搜索结果高亮显示(英文检索)

高亮显示搜索结果(使用highlight) #高亮搜索结果 GET /lib3/user/_search {"query":{"match":{"interests": "changge" } }, "highlight": { "fields": {"interests":{}}}}{&qu…

最优化学习笔记(十二)——基本共轭方向算法(续)

目标函数为n维二次型函数时,共轭方向法能够在n步迭代之后得到极小点。接下来会发现,共轭方向法的中间迭代步骤具有一种很有意义的性质。选定x(0)作为迭代初始点, d(0)为初始搜索方向, 有: x(1)x(0)−(g(0)Td(0)d(0)TQd(0))d(0)\…