MySQL数据恢复

前段时间因为要保证数据恢复的质量,写了一个进行回滚的脚本。

binglog2sql工具介绍

binglog2sql是一款用于解析binlog的工具,纯Python开发,安装需要有Python环境;

安装

git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql

pip install -r requirements.txt

MySQL配置

[mysqld]

server_id = 1

log_bin = /var/log/mysql/mysql-bin.log

max_binlog_size = 1G

binlog_format = row

binlog_row_image = full

脚本内容

#!/bin/bash

user="root"

password="hao_123"

host="xxxx"

port="3306"

binglog=`mysql -u${user} -p${password} -h${host} -e "show master logs;"|grep -v ^Log`

echo -e "最新的的binglog:\n${binglog}"

cd /root/binlog2sql/binlog2sql

read -p "库名:" db

read -p "表名:" table

read -p "binglog文件:" bin

echo -e "格式:年-月-日 时:分:秒"

read -p "删除的大概时间:" time

read -p "结束的大概时间:" datatime

python ./binlog2sql.py -h${host} -u${user} -p${password} -P${port} -d ${db} -t ${table} --start-file="${bin}" --start-datetime="${time}" --stop-datetime="${datatime}" > /tmp/rollback.sql

echo -e "这个时间点执行的SQL是:"

cat /tmp/rollback.sql

read -p "开始位置:" sp

read -p "结束位置:" ep

read -p "输入Yes生成回滚文件:" yes

if [[ "${yes}" == "yes" ]];then

python ./binlog2sql.py -h${host} -u${user} -p${password} -P${port} -d ${db} -t ${table} --start-file="${bin}" --start-position="${sp}" --stop-position="${ep}" -B > /tmp/rollback.sql

fi

if [ $? -eq 0 ];then

echo "rollback file success!"

fi

echo -e "回滚的SQL语句是:"

cat /tmp/rollback.sql

read -p "输入Yes开始回滚到数据库:" yes

if [[ "${yes}" == "yes" ]];then

mysql -u${user} -p${password} -h${host} < /tmp/rollback.sql

fi

if [ $? -eq 0 ];then

echo "rollback MySQL success!"

fi

这时候对于一些误操作,可以通过过滤大概的时间,和指定的SQL语句进行回闪,保证了数据的安全性。

MySQL回闪_MySQL进行BINLOG回闪相关推荐

  1. MySQL回闪查询_MySQL进行BINLOG回闪

    MySQL数据恢复 前段时间因为要保证数据恢复的质量,写了一个进行回滚的脚本. binglog2sql工具介绍 binglog2sql是一款用于解析binlog的工具,纯Python开发,安装需要有P ...

  2. mysql语句事务回滚_mysql语句,事务处理回滚的问题。

    mysql_query("BEGIN"); $ck_id = M('ods')->add($public); foreach ($datas as $k => $val ...

  3. mysql 安全删除_mysql的binlog安全删除的一种方法

    指定过期天数(expire_logs_days) ---适用于单机版mysql! 该参数为全局可动态调整参数,默认值为0,即关闭,取值范围0-99. 1.3.1 参数的查看: mysql> sh ...

  4. mysql dml回滚_mysql binlog回滚/闪回,前滚, 分析各表DML情况, 找出长事务与大事务...

    简介 binlog_inspector通过解释mysql/mariadb binlog/relaylog实现以下三大功能: 1)flashback/闪回/回滚, 实现DML的回滚到任意时间或者位置. ...

  5. mysql 传统数据恢复_MySQL误操作后如何快速恢复数据 传统解法 利用binlog2sql快速闪回 常见问题 参考资料...

    MySQL误操作后如何快速恢复数据 摘要: 利用binlog闪回误操作数据. 基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,不小心upda ...

  6. mysql有闪回吗_MySQL的闪回策略

    闪回原理 既然binlog以event形式记录了所有的变更信息,那么我们把需要回滚的event,从后往前回滚回去即可. 对于单个event的回滚,我们以表test.user来演示原理 mysql> ...

  7. binlog回滚mysql误操作数据

    记录mysql误操作 删除或者修改数据后如何回滚 线上数据库中的数据不像测试数据库那样,需要严谨的使用,如果因为误操作导致数据失真,是比较严重的线上事件 以下举例如何通过mysql binlog日志回 ...

  8. oracle11g闪回默认路径,ORACLE11G开启数据库闪回

    准备: 首先必须按照完毕Oracle11g数据库产品及数据库:其次当前数据库的闪回是关闭的. 开始实验: 检查数据库的闪回状态(我这是关闭的) SQL> select FLASHBACK_ON ...

  9. oracle闪回区满了,一次快速闪回区满导致数据库不能启动的解决过程

    一.事件背景描述:一个测试系统的数据库由于磁盘空间满了,清理了磁盘空间的,等待很久系统没有相应,因此通过shutdown immediate命令重新启动数据库,但是数据库一直关闭不了,所以通过shut ...

最新文章

  1. 奥特linux系统监控,奥特曼知识大挑战答案
  2. elk系列7之通过grok分析apache日志
  3. Java Web整合开发(85)
  4. String、StringBuffer、StringBuilder区别
  5. HashMap如何在Java中工作
  6. phpcms v9输出内容过滤html代码 - 代码篇
  7. Git使用六:版本对比
  8. (转)Hibernate框架基础——一对多关联关系映射
  9. android 约束 布局_Android约束布局动画
  10. 9.微服务设计 --- 安全
  11. 32岁了,我有机会转行做程序员吗?——Leo网上答疑(1)
  12. 干货来袭!java从入门到精通第五版pdf
  13. python鼠标自动点击脚本_用Python实现鼠标自动点击
  14. 关于卸载迈克菲全方位实时保护的时候出现已取消网页导航的一下观点
  15. java crc8_CRC8校验的java实现 | 学步园
  16. 2021年高压电工模拟考试题及高压电工操作证考试
  17. 基于PHP+MySQL企业工资管理系统的设计与实现(含论文
  18. 计算机桌面文件能单独设密码吗,win7文件夹设置密码_给单独一个文件夹设密码...
  19. 爬虫:Python爬取煎蛋网图片
  20. Canceling statement due to conflict with reco

热门文章

  1. 九年级数学解方程50道_【初中数学】北师大版九年级上册数学知识点总结
  2. mysql基础测试_MySQL基础知识测试
  3. android 手写签批_Android手写签批功能实现(适配Android6
  4. 计算机专业论文要交源代码吗,计算机毕业论文源代码.doc
  5. 腾讯视频真实下载地址_腾讯视频如何多倍速播放视频
  6. php aes 3des区别,AES和3DES之间的区别
  7. java httpcomponents_java – 如何使用Apache httpcomponents从NHttpRequ...
  8. mysql备份去掉一个库_MySQL备份与恢复(3)mysqldump备份多个库
  9. python中sorted函数的用法_Python3 中sorted() 函数的用法
  10. BOM -- browser object model