MySQL回闪_MySQL进行BINLOG回闪

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语句进行回闪,保证了数据的安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

163邮箱有传真服务器,网易企业邮箱邮件传真功能使用说明

网易企业邮箱邮件传真功能是网易在用户购买网易企业邮箱时附赠的增值服务&#xff0c;管理员通过在企业邮箱管理后台给员工邮箱设置邮件传真号码&#xff0c;员工便可在WebMail直接收发电子传真&#xff0c;无需通过传真机。此功能需要联系经销商协助开通。一、管理员端如何开通…

ajax 折叠,ASP.NET AJAX可折叠面板Accordion应用实例

通常来讲&#xff0c;将一个无比长的列表直接显示给用户是一种极不礼貌的行为。对此&#xff0c;解决方案有很多&#xff0c;归类显示就是其中之一。类似我们常见的QQ或MSNMessage的联系人归类等&#xff0c;系统将用户管理中心的操作菜单归类显示&#xff0c;并应用背景图片&a…

navicat mysql 建表语句_Navicat for MySQL怎么/如何创建数据表?Navicat for MySQL创建数据表教程_斗蟹游戏网...

【斗蟹攻略】Navicat for MySQL是针对MySQL数据库管理而研发的管理工具&#xff0c;创建数据表是其最基本操作&#xff0c;下面就由斗蟹小编介绍Navicat for MySQL创建数据表的方法。Navicat for MySQL创建数据表教程步骤一&#xff1a;新建连接运行Navicat数据库管理工具&…

华为服务器显示003,设置BIOS - RH2288H V3 服务器 V100R003 用户指南 41 - 华为

在服务器的远程虚拟控制台的菜单栏中&#xff0c;单击。关于登录远程虚拟控制台的详细操作步骤&#xff0c;请参见登录远程虚拟控制台。选择“重启”。弹出“你确认要执行这个操作吗&#xff1f;”提示框。单击“是”。服务器进行重启。服务器重启时&#xff0c;当出现如下界面…

mysql隔离级别和mvcc_数据库MVCC和隔离级别的关系是什么?

谢邀。首先我要指出问题中提出的各种概念非常混乱。简单梳理下&#xff1a;早期数据库不论读取还是写入&#xff0c;都用锁来实现。但是锁会带来性能的问题。人们尝试各种优化方案。写入和读取的优化方式不同。对于数据库写入操作&#xff0c;没有特别好的办法&#xff0c;因为…

java 模拟平台_用Java程序模拟登陆网站平台

由于想测试性能&#xff0c;想模拟多个用户同时登陆系统进行访问&#xff0c;于是写了一个例子。代码如下&#xff1a;URL url null;HttpURLConnection httpurlconnection null;try {url new URL("http://www.****.com");httpurlconnection (HttpURLConnection) …

服务器raid1重装系统,做软RAID1 重装系统后数据会丢失吗

匿名用户1级2017-04-04 回答如何使用windows 2003做软RAID (0,1,5) | 浏览&#xff1a;3388 | 更新&#xff1a;2014-01-03 19:17 | 标签&#xff1a;windowsRAID是一种磁盘容错技术,由两块以上的硬盘构成冗余&#xff0c;当某一块硬盘出现物理损坏时&#xff0c;换一块同型号的…

java前端开发_Java前端开发学习什么内容

Java是一门高级编程语言&#xff0c;现在java工程师需求很大&#xff0c;所以java的前景很好&#xff0c;有些朋友往java前端开发方向发展&#xff0c;那么&#xff0c;Java前端开发学习什么内容呢?动力节点java学院小编来告诉你。就目前市场行情来看&#xff0c;Java最流行的…

用友t3显示无法解析服务器名称,用友T3软件进入用友通提示不能解析端口,不能登录服务器...

用友软件增加明细科目时提示新增会计科目是&#xff0c;提示上级科目已经使用&#xff0c;新增科目将自动改为上级科目的设置已经使用的科目如何增加明细科目在软件操作过程中&#xff0c;经常会遇到对已经使用的科目&#xff0c;要求增加其明细科目的问题。科目已经使用&#…

java idle 机制_HotSpot VM重量级锁降级机制的实现原理

HotSpot VM内置锁的同步机制简述&#xff1a;HotSpot VM采用三中不同的方式实现了对象监视器——Object Monitor&#xff0c;并且可以在这三种实现方式中自动切换。偏向锁通过在Java对象的对象头markOop中install一个JavaThread指针的方式实现了这个Java对象对此Java线程的偏向…

java 类 解析_Java集合类解析 ***

collection集合Map集合Hashtable和HashMap的区别&#xff1a;Hashtable的方法是同步的&#xff0c;而HashMap的方法不是。HashMap可以将空值作为一个表的条目的key或value。Collection接口Collection接口是List、Set和Queue接口的父接口&#xff0c;该接口里定义的方法既可用于…

JVM的生命周期

1.加载&#xff08;Loading&#xff09;&#xff1a; 在加载阶段&#xff0c;JVM会找到并加载Java字节码文件。加载阶段分为三个步骤&#xff1a;通过类的全限定名找到对应的字节码文件&#xff0c;创建一个与该类相关的Class对象&#xff0c;将类的静态数据结构存储在方法区中…

java数组数据结构_Java数据结构之数组

自定义数组(面向对象编程)&#xff1a;直接上代码&#xff1a;package com.xingej.algorithm.datastructure.array;/*** 面向对象编程** 自定义类数组** 你一定要明白&#xff0c;这是在JDK基础之上的封装&#xff0c;要学会这种思路&#xff0c;其他框架如netty 也是在前者的基…

java项目如何单元测试_大家java web项目开发做单元测试吗?

java web项目测试用Web的测试工具&#xff0c;如HtmlUnit&#xff0c;JWebUnit等。main()方法就可以测试&#xff0c;在main方法中获得connection对象将他输出就可以了。如果正常输出一大串就是对了。例子&#xff1a;public class DBConnection {private static String url &…

python双素数_python双素数_用Python打印100以下的所有双素数对

^{bq}$这是一种基于筛分的方法&#xff0c;它有点短&#xff0c;速度快得多&#xff1a;def find_prime_pairs(n):sieve [True] * nif n > 0:sieve[0] Falseif n > 1:sieve[1] Falsefor number in range(2, int(n ** 0.5) 1):if sieve[number]:for index in range(nu…

python无所不能_python-列表

列表创建&#xff1a;# 方式一&#xff1a;(常用)s [1, 2, 小超银]print(s) # [1, 2, 小超银]# 方式二&#xff1a;(不常用)s1 list() # 空列表l1 list(123)print(l1) # [1, 2, 3]# 方式三&#xff1a;列表推导式l1 [i for i in range(1,5)]print(l1) # [1, 2, 3, 4]增&…

lvds接口屏线安装图解_五分钟让你学会液晶拼接屏安装方法

液晶拼接屏成为目前比较热门的大屏显示系统&#xff0c;技术比较成熟&#xff0c;清晰度高、维护方便&#xff0c;性价比也还不错&#xff0c;市场需求量较大。但是液晶拼接屏安装方法很多人并不了解&#xff0c;下面小编就来简单介绍一下。以46寸液晶拼接屏指导安装为例&#…

cmd255command.executereader()打印连接错误_打印经常遇到的几个问题,轻松解决

在平常的工作中&#xff0c;我们经常会遇到一些打印问题&#xff0c;今天就分享下几个常见的故障问题解决。wps/office文档一点击打印就卡死这种一般默认打印机设置的是其它电脑共享的情况下出现的&#xff0c;当与主机的连接出现异常或者主机的打印设置有问题时&#xff0c;就…

如何制定客户留存策略_商客通:办理石家庄400电话如何留存客户

【办理石家庄400电话如何留存客户】在如今理性消费的市场&#xff0c;400电话能够为在消费者心中为企业营造一份信任感&#xff0c;彰显企业关怀及企业责任感&#xff1b;为消费者提供畅达的通信渠道、完善的企业服务保障。石家庄400电话搬家不换号石家庄企业在公司搬迁或者员工…

普中51控制火焰传感器_汽车爆震传感器的工作原理及的检测方法、处理

汽车爆震传感器的工作原理及的检测方法、处理黄永刚1 爆震传感器的工作原理按照结构的不同&#xff0c;可以将汽车爆震传感器分为压电式非共振型爆震传感器、压电式共振型爆震传感器和压电式火花塞座金属垫型爆震传感器&#xff0c;又可以分为压电式爆震传感器和电感式爆震传感…