#! /usr/bin/bash
#日志位置和日志名前额
#echo 'log_bin=/data/binlog/mysql-bin' >> /etc/my.cnf
#binlog日志刷盘策略,每次事务提交立刻刷写到磁盘
#echo 'sync_binlog=1' >> /etc/my.cnf
#
#echo 'binlog_format=row' >> /etc/my.cnf
#
#echo 'gtid-mode=on' >> /etc/my.cnf
#
#echo 'enforce-gtid-consistency=ture' >> /etc/my.cnf
#重启生效
#/etc/init.d/mysqld restart
#以上配置文件里有就不需要重复操作了
#gitd总范围
a=$(mysql -uroot -e "show master status"|awk 'END{print $NF}')
#找出有删库命令drop的gtid是第几行
b=$(mysql -uroot -e"show binlog events in 'mysql-bin.000001';"|grep -n "drop"|awk -F":" '{print $1-1}')
#打印有drop的gitd行
c=$(mysql -uroot -e"show binlog events in 'mysql-bin.000001';"|awk 'NR=='$b' {print $NF}'|awk -F"'" '{print $2}')
/usr/local/mysql/bin/mysqlbinlog --skip-gtids --include-gtids="$a" /data/mysqldata/mysql-bin.000001 --exclude-gtids="$c" > /data/mysql-bin01-bak.sql
mysql -uroot -e"source /data/mysql-bin01-bak.sql"
mysql-bin.000001脚本(恢复到误删库前状态)
最新推荐文章于 2023-09-18 21:44:17 发布