SQL 误操作恢复实验

直接通过SQL语句恢复有两个必需的条件:

一、数据库在创建之后做过一次完整的备份;

二、数据库的恢复模式(Recovery mode)是“完整(Full)”。

恢复步骤:

1、BACKUP LOG [DataBase] TO disk= N‘D:\testlog‘ WITH NORECOVERY

备份当前日志,在出现误操作时一定要先备份当前日志

2、RESTORE DATABASE  [DataBase] FROM DISK = ‘d:\test‘ WITH NORECOVERY,  REPLACE

恢复数据库到之前完整备份的那一次记录,如怕出问题,可以新建一个数据库来恢复

3、RESTORE LOG  [DataBase] FROM DISK =‘d:\testlog‘ WITH STOPAT=‘04 28 2015 2:12AM‘, NOUNLOAD, STATS = 10

恢复当前日志到数据库

备注:

(1)、如在第一步操作时提示无法独占数据库,可以先将数据库分离,再附加就OK了;

(2)、可通过print GetDate() 来获取时间格式,这个问题搞了我N久。。。。

(3)、如恢复后数据库一直处于还原状态,可执行以下命令

RESTORE DATABASE [数据库名]  WITH RECOVERY

下回再试试通过软件来恢复,多找点免费方法,有备无患!

时间: 2024-08-29 19:39:46

SQL 误操作恢复实验的相关文章

SCPPO:SQL误操作如何恢复?

[前言] 今天研究项目中自己有疑惑的一块儿内容应该是这个系统的核心-数据从上传的Access中解析出来(ETL的贡献)经过一系列的存储过程将数据放到数据库表中(每天凌晨都会定时的执行这一系列操作)这只是今天的引子,不具体深入的讲解下去,小编会在接下来的博文中更加深入的为大家分享: 在分析这块儿的时候无意在服务器上发现一款软件-ApexSQL Log:之前没接触过出于好奇就去网上查了一下它是干嘛用的,这一查不要紧,又燃起了自己新的兴趣,仿佛一切的一切上天冥冥之中自有安排!为何这么说?小编下面为大家

Oracle数据库常见的误操作恢复方法(上)

实验环境:Linux6.4 + Oracle 11g 面向读者:Oracle开发维护人员 本文以Oracle自带的scott用户进行演示: 首先逻辑备份导出scott的对象数据 $ exp scott/tiger file='/u01/app/backup/scott.dmp' log='/u01/app/backup/scott.log' owner=scott; 1.误操作drop了emp表 利用表级闪回恢复,只要回收站中有就可以恢复. SQL> drop table emp; Table

Mysql误操作恢复流程

一.开启binlog. show variables like 'log_bin'; #vim  /etc/my.cnf 在[mysqld]中加入 log-bin                 = mysql-binlog-bin                 = /usr/local/mysql/log/mysql-bin.log 重启mysql服务 #service mysqld stop#service mysqld start 二.数据写入 建库 create database ba

delete、update忘加where条件误操作恢复过程演示

update.delete没有带where条件,误操作,如何恢复呢? 我现在有一张学生表,我要把小于60更新成不及格. 1 mysql> select * from student; 2 3 +----+------+-------+-------+ 4 5 | id | name | class | score | 6 7 +----+------+-------+-------+ 8 9 | 1 | a | 1 | 56 | 10 11 | 2 | b | 1 | 61 | 12 13 |

简单误操作恢复

MySQL误操作后的恢复 场景:1.数据库每天都有全备份.2.数据库开启bin-log3.准确定位误操作语句 一. 创建全备份,建议带有 --master-data=2参数mysqldump -uroot -ppassword123 -S /data/mysqldata/3306/mysql.sock -F -R --triggers --lock-tables --master-data=2 -B test > /data/mysqldata/backup/test.$(date "+%

SQL 数据操作(实验六)

SQL 数据操作 emp.dept 目标表结构及数据 INSERT 命令的使用与结果验证 2.1把一名新来雇员信息插入到EMP表中:雇员号:1011 姓名: 王晓明 入职日期:今天 insert into emp (empno,ename,hiedate) values('1011','王晓明',to_date(sysdate,'yyyy-mm-dd')); 2.2把一名雇员信息插入到EMP表中:雇员号:1012 姓名:孙宇 岗位:教辅 入职日期:2017-10-12 薪水:5400 部门:04

SQL误操作使用log Explorer撤销

1,下载安装log Explorer 2.打开log explorer file=>attach log file->选择服务器和登陆方式->connect->选择数据库->attach->左面对话框中browse->view log->就可以看到log记录了想恢复的话: 右键log记录 undo transation->选择保存文件名和路径->然后打开该文件到查询分析器里执行T-sql代码就可以... 例如 如果log是delete table

MySQL 误操作后数据恢复(update,delete忘加where条件)

在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句写的有问题导致服务器出问题,导致资源耗尽.最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者DBA的我们改如何处理呢?下面我分别针对update和delete操作忘加where条件导致全表更新的处理方法. 一. update 忘加where条件误操作恢复数据(binglog格式必须是ROW) 1.创建测试用的数据表 mysql> create table t1 ( -> id int un

binlog-rollback.pl 在线恢复update 和delete不加条件误操作sql

一.binlog-rollback.pl工具介绍 是perl开发的脚本工具,此工具主要是生成反向的DML sql语句: #基于row模式的binlog,生成DML(insert/update/delete)的rollback语句 #通过mysqlbinlog -v 解析binlog生成可读的sql文件 #提取需要处理的有效sql #"### "开头的行.如果输入的start-position位于某个event group中间,则会导致"无法识别event"错误 #将