拯救你的数据 通过日志恢复MSSQL数据_MsSql

这段时间看了关于在SQL server 中通过日志和时间点来恢复数据。也看了一些网上的例子,看如何通过日志来恢复数据。
前提条件:
数据库的故障恢复改为非简单模式,去掉自动关闭和自动收缩两个选项    
如果是简单模式:类似下面的语句操作数据就不会记录到日志中:  select * into t from [表名]
这时为保证数据的完整要将数据库的恢复模式改成“完整”
测试环境:   

1、建立数据库和测试表        

create database zp

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

2、插入测试数据

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的可视化操作,下面是生成的代码:
[code]BACKUP DATABASE [zp] TO  DISK = N'C:\k.bak' WITH NOFORMAT, NOINIT, 
NAME = N'zp-完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO[code]

查看数据:

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

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

deletefrom[zping.com]where(id=1orid=2)

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

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

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

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

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

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

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

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

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

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

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

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

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

确定后,出现下面情况:

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

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

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

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

总结:

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

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索日志恢复MSSQL数据
, 日志恢复数据
日志恢复
mssql 日志恢复、mssql 数据库日志、mssql 数据恢复、mssql数据表误删恢复、mssql数据库恢复,以便于您获取更多的相关知识。

时间: 2024-11-05 18:47:00

拯救你的数据 通过日志恢复MSSQL数据_MsSql的相关文章

拯救你的数据 通过日志恢复MSSQL数据

这段时间看了关于在SQL server 中通过日志和时间点来恢复数据.也看了一些网上的例子,看如何通过日志来恢复数据. 前提条件: 数据库的故障恢复改为非简单模式,去掉自动关闭和自动收缩两个选项     如果是简单模式:类似下面的语句操作数据就不会记录到日志中:  select * into t from [表名] 这时为保证数据的完整要将数据库的恢复模式改成"完整" 测试环境: 1.建立数据库和测试表 create database zp create table [zping.co

SQL Server无日志恢复数据库(2种方法)_MsSql

SQL Server是一个关系数据库管理系统,应用很广泛,在进行SQL Server数据库操作的过程中难免会出现误删或者别的原因引起的日志损坏,又由于SQL Server数据库中数据的重要性,出现了以上的故障之后就必须对数据库中数据进行恢复.下文就为大家介绍一种恢复数据库日志文件的方法. 解决方法一 1.新建一个同名的数据库 2.再停掉sql server(注意不要分离数据库) 3.用原数据库的数据文件覆盖掉这个新建的数据库 4.再重启sql server 5.此时打开企业管理器时会出现置疑,先

Linux下数据如何高效恢复?extundelete帮您忙,extundelete应用

一.如何使用"rm -rf"命令 在Linux系统下,通过命令"rm -rf"可以将任何数据直接从硬盘删除,并且没有任何提示,同时Linux下也没有与Windows下回收站类似的功能,也就意味着,数据在删除后通过常规的手段是无法恢复的,因此使用这个命令要非常慎重.在使用rm命令的时候,比较稳妥的方法是把命令参数放到后面,这样有一个提醒的作用.其实还有一个方法,那就是将要删除的东西通过mv命令移动到系统下的/tmp目录下,然后写个脚本定期执行清除操作,这样做可以在一定

mysql5.6 bin-log日志恢复数据

项目第一期上线后,后期的升级需要升级脚本,不能直接导入整个sql.所以这里开启mysql的bin-log,将所有执行的sql都记录到bin-log中. 我的系统是windows,mysql是社区版5.6 . 1. bin-log所在目录 mysql5.6安装完成后,其数据文件和log都保存在C:\Documentsand Settings\All Users\Application Data\MySQL\MySQL Server 5.6\data 这个目录下. 2. 确认bin-log日志是否开

通过sqlserver日志恢复误删除的数据

原文:通过sqlserver日志恢复误删除的数据       如果你已经急的焦头烂额,看到这篇文章的时候,请你换个坐姿,深呼吸几次,静下心来将这篇文章读完,也许你的问题迎刃而解.     我遇到的情况是这样的,网站被植入木马,盗取了我的web.config文件,web.config文件里面的数据库连接字符串没有加密,而我的数据库远程连接又没有做IP限制,黑客通过数据库客户端连上我的数据库后,将所有的表都Delete掉了,所以大家一定要有一个好习惯将数据库连接字符串加密或者对远程访问数据库的IP作

mysql日志恢复数据方法介绍

mysql日志备份优缺点 优点:是想恢复到某个时间点,或某个操作sql语句 缺点:就产生庞大的日志文件 window中mysql日志恢复方法 1.开启mysql日志 在my.ini 文件里找到[mysqld],在其下面增加一行log-bin  代码如下 复制代码 [mysqld]  # The TCP/IP Port the MySQL Server will listen on  port=3306  log-bin  默认日志文件名字是以主机命名名字,如果想改为自己定义的名字  代码如下 复

mssql 收缩数据库与收缩数据和日志 sql语句

mssql 收缩数据库教程与收缩数据和日志 sql语句本教程只讲取关于mssql server 数据库的收缩语句,索引重建的sql语,以及mssql server 收缩数据和日志的sql语句哦. 收缩数据库 --重建索引 dbcc reindex dbcc indexdefrag --收缩数据和日志 dbcc shrinkdb dbcc shrinkfile

MySQL数据库的数据备份和恢复详解

本文讨论 MySQL 的备份和恢复机制,以及如何维护数据表,包括最主要的两种表类型:MyISAM 和 Innodb,文中设计的 MySQL 版本为 5.0.22. 目前 MySQL 支持的免费备份工具有:mysqldump.mysqlhotcopy,还可以用 SQL 语法进行备份:BACKUP TABLE 或者 SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件.MyISAM 表是保存成文件的形式,因此相对比较容易备份,上面提到

InnoDB 中文参考手册 --- 5 添加与移除 InnoDB 数据和日志文件

参考|参考手册|数据|中文 InnoDB 中文参考手册 --- 犬犬(心帆)翻译 5 添加与移除 InnoDB 数据和日志文件为了添加一个数据文件到表空间中,首先要关闭 MySQL 数据库,编辑 my.cnf 文件,在 innodb_data_file_path 中添加一个新文件,然后再重新启动服务. 如果,最后一个文件以关键字 autoextend 来描述,那么编辑 my.cnf 的过程如下所示.必须检查最后一个文件的尺寸,并使它向下接近于 1024 * 1024 bytes (= 1 MB)