利用sqlserver日志恢复数据

如果你已经急的焦头烂额,看到这篇文章的时候,请你换个坐姿,深呼吸几次,静下心来将这篇文章读完,也许你的问题迎刃而解。

我遇 到的情况是这样的,网站被植入木马,盗取了我的web.config文件,web.config文件里面的数据库连接字符串没有加密,而我的数据库远程连 接又没有做IP限制,黑客通过数据库客户端连上我的数据库后,将所有的表都Delete掉了,所以大家一定要有一个好习惯将数据库连接字符串加密或者对远程访问数据库的IP作限制

因被黑客Delete掉所有数据的具体时间点我不清楚,所以我就用了一个工具Log Explorer来查看分析数据库日志,看具体是什么时候被Delete掉的(若你已经知道想要还原的时间点,就不用使用此工具啦),至于Log Explorer如何安装使用的,这里就不赘述了,去百度一搜一大堆,安装的时候Client和Server都选,然后安装中会有一步让你输入数据库的用户名和密码,其他不懂的就疯狂下一步吧。

通过Log Explorer工具我查看到被删除的时间点是:07-10 09:46:29.880,那我一会把数据还原到07-10 09:46:29.879就好咧

下面开始言归正传的进行恢复操作了

1、将数据库日志备份一下,用T-Sql语句


1

BACKUP LOG shua TO DISK=‘c:\shua_log.bak‘ WITH FORMAT

2、因我的数据库每天都有自动完整备份,找一个最近时间的完整备份,来还原一下,这里我不往旧库覆盖了,直接还原成一个新的数据库shua2

用SQL Server Management Studio工具进行界面操作吧,写sql语句还原太复杂了,不会啊。

对着数据库->右击->还原数据库,下图是我在[还原数据库]界面->[常规]选项卡页的填写情况

然后点【选项】选项卡页,注意这一步非常重要哦

点击【不对数据库执行任何操作,不回滚来提交的事务】,然后确定。如果数据库比较大,这个还原要等很长时间,出去吸几口新鲜空气吧,大功就要告成了。

3、待数据库还原成功后,是这个状态

显示(正在还原...),对着shua2这个数据库右击->任务->还原->还原事务日志。

如上图所填, 先填刚开始备份的日志c:\shua_log.bak,然后勾选[还原],最重要的是选择时间点,可惜这个时间点不能选毫秒,所以我就选了29秒,这个时 候会还原29.0秒以前的数据,而我的数据是从29.880秒被删除的,所以选29秒妥妥的;为什么我没有选择28秒呢?因为我的数据库每一秒的改变都很 大,所以我尽可能的缩小这个时间范围。

填好后,点【确定】吧,大功告成了。现在数据库已恢复成2014-07-10 09:46:29.0时的状态,自然的我那些表数据都回来了。

时间: 2024-10-10 09:37:40

利用sqlserver日志恢复数据的相关文章

Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废话不多说,下面是梳理的binlog日志操作解说: 一.初步了解binlogMySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的. DDL-

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

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

MySQL binlog日志恢复数据

我们了解了MySQL 的 binlog 日志的开启方式以及 binlog 日志的一些原理和常用操作,我们知道,binlog 有两大作用,一个是使用 binlog 恢复数据,另一个就是用来做主从复制.本篇笔记就是来记录如何使用 binlog 日志来做数据恢复.当然了,使用 binlog 日志所恢复的数据只能是部分数据,并不能够使用 binlog 日志来做数据库的备份,如果想要做数据库备份,依然要使用我们传统的备份方法,而 binlog 可以作为增量备份. 视频链接:http://www.ronco

mysql数据库通过bin-log日志恢复数据

binlog日志用于记录所有更新数据,当我们的数据库出现故障时,我们可以利用binlog日志来挽回. 如果mysql数据库出现问题需要重新创建binlog二进制文件. # 关闭当前的binlog日志并创建一个新日志文件,编号加1. flush logs # 查看日志,查出需要恢复的时间点 mysqlbinlog --no-defaults fangx-bin.000001 |more #恢复具体时间导成SQL语句 mysqlbinlog fangx-bin.000001 --database=f

mysql二进制日志恢复数据

1.开启mysql的二进制日志 在mysql的配置文件my.ini中添加: log-bin=mysql-bin(这个名称可以随便取,英文,不知道中文可不可以,没试过) 2.重启mysql 重启后,假如在mysql的存储数据的目录中出现一下文件,则已经二进制日志已经开启 mysql-bin.000001是mysql的二进制日志文件,不可以直接查看,可以通过导出数据查看,导出数据的语句为 解释一下:红色下划线的是mysql二进制mysql-bin.000001文件所在的目录,要进入这里执行后面的语句

mysql使用二进制日志恢复数据

一.恢复到某个二进制文件 1.开启二进制日志 在mysqld的配置节点下添加如下配置 log-bin="E:/Mysql57BinLog/binlog"(windows下的路径,linux下自行修改路径)  expire_logs_days=10 max_binlog_size=100M 2.重启mysql服务 使用命令show VARIABLES like '%log_bin%';查看 3.创建库和表 create database mytest; use mytest; creat

通过二进制日志恢复数据

二进制日志会记录所有更改数据库状态的sql操作,比如create drop update...... 二进制日志文件存放在我们的数据目录里,格式如mysql-bin.000001 准备: 进入mysql命令行做如下操作: create database a1; #创建一个a1库 create database a2; #创建一个a2库 drop database a1; #删掉a1库 use a2; create table aaa (name char(40)); #在a2库里创建一个叫aaa

mysql 二进制日志恢复数据实验

一:binlog基础知识 1.mysqlbinlog常见选项: --start-datetime:从二进制日志中读取指定等于时间戳或者晚于本地计算机的时间 --stop--datetime:从二进制日志中读取指定小于时间戳或者等于本地计算机的时间  取值和上述一样 --start-position:从二进制日志中读取指定position事件位置作为起始 --stop-position:从二进制日志中读取指定position事件位置作为事件截止 2.binlog最重要的使用场景 mysql主从复制

mysql 选取操作日志(mysql-bin.0000恢复数据)

my.ini 配置log-bin=mysql-bin 启用日志 用  mysql-bin.0000 mysqlbinlog -d keyboard ../data/mysql-bin.000024 –start-datetime="2017-05-29 12:17:56″ –stop-datetime=" 2017-05-29 12:57:56″ > D:k.sql 说明: mysqlbinlog -d 数据库  日志文件路径  –start-datetime="开始时