数据库篇~简单的数据恢复流程

创建模拟数据
CREATE DATABASE test_bk;
USE test_bk;
CREATE TABLE t1 (id int);
INSERT INTO t1 VALUES(1),(2),(3);
COMMIT;
SELECT * FROM t1;
首先进行全备份
 mysqldump -uroot -p123456 -A -E -R --triggers --set-gtid-purged=OFF --master-data=2 --single-transaction|gzip > backup/full_$(date +%F).sql.gz
删除数据
cd test_bk && rm -rf *
创建其他数据
CREATE TABLE t2 (id INT);

INSERT INTO t2 VALUES(111),(222),(333);

SELECT * FROM t2;
解压sql文件,进行查找 master_log_pos号
gunzip full_2018_07_10.sql
大概在行数的第 20~30行
show binlog events in 'mysql-bin.000004';

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=2446;

然后通过 过滤查找出 误操作的命令所在的 start号

mysql -uhailong -p123456 -e "show binlog events in 'mysql-bin.000004'" | tail -100 | grep -i 'drop'

mysql-bin.000004        259    Query   1       2446    DROP DATABASE test_bk
进行 Mysqlbinlog导出数据
mysqlbinlog --skip-gtids --start-position=2339 --stop-position=2446 -d backup_bk ../mysql-bin.000004 > /tmp/bk.sql

最后进行备份恢复

source /tmp/bk.sql;
Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

# 恢复成功
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值