Heim > Datenbank > MySQL-Tutorial > 如何通过日志恢复SQL Server数据

如何通过日志恢复SQL Server数据

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-07 16:17:16
Original
1588 Leute haben es durchsucht

这段时间看了关于在SQL server 中通过日志和时间点来恢复数据。也看了一些网上的例子,看如何通过日志来恢复数据。 前提条件: 数据库的故障恢复改为非简单模式,去掉自动关闭和自动收缩两个选项 如果是简单模式: 类似下面的语句操作数据就不会记录到日志中

  这段时间看了关于在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 = NC:k.bak WITH NOFORMAT, NOINIT,

  NAME = Nzp-完整 数据库 备份, SKIP, NOREWIND, NOUNLOAD, STATS = 10

  GO

  查看数据:

如何通过日志恢复SQL Server数据

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

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

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

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

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

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

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

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

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

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

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

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

如何通过日志恢复SQL Server数据

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

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

如何通过日志恢复SQL Server数据

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

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

  确定后:出现下面情况:

如何通过日志恢复SQL Server数据

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

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

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

如何通过日志恢复SQL Server数据

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

  总结:

  1, 这是一般大型网站数据安全的一个办法,因为数据库比较大(可能有几百G)数据,为保证数据安全,大多采用完整备份+事务日志备份来保证数据安全。

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

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage