基本上每个跟
数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,
MySQL误
操作后如何快速
回滚?比如,
delete一张表,忘加限制条件,整张表没了。假如这还是线上环境核心业务
数据,那这事闹大了。误
操作后,能快速
回滚数据是非常重要的。
用全量备份重搭实例,再利用增量
binlog备份,
恢复到误
操作之前的状态。然后跳过误
操作的
SQL,再继续应用
binlog。此法费时费力,不值得再推荐。
利用
binlog2
sql快速闪回
首先,确认你的
MySQL server开启了
binlog,设置了以下参数:
[
mysqld]
server-id = 1
基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了。假如这还是线上环境核心业务数据,那这事就闹大了。误操作后,能快速回滚数据是非常重要的。
binlog2sql快速回滚
首先,确认你的MySQL server开启了binlog,设置了以下参数:
[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
max_binlog_size = 1000M
binlog-format = row
如果没有开启binlog,也没有预先生
public class Main {
public static String encoding = "GBK";
public static void readTxtFile(String filePath) {
try {
File file = new File(filePath);
if (file.isFile() && file.exists()) {
一:根据时间来恢复:
1、查询数据库当前时间(目的是为了检查数据库时间是否与你电脑时间相近,避免时间不同而将数据恢复到错误时间点)
select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) from dual;
2、查询删除数据时间点之前的数据
select * from 表名 as of timestamp to_timestamp(‘2016-08-11 16:12:11’,‘yyyy-mm-dd hh24:mi:ss’);
(若没有数据 ,将时间继续提前)