浅谈mysqlbinlog恢复数据

说起数据库管理问题,那真是一把鼻涕一把泪啊!
遥想当年,从删库到跑路的忐忑心态,到现在删库结束,面色不改的心态转变,还真是应了那句话:你看过了大海,还会怕见小溪么?
当然,技术支持肯定是避免不了的,来上代码!

1.查看是否开启 binlog

进入mysql ,mysql -uroot -proot ;

mysql> show variables like ‘log_%’;
±---------------------------------------±--------------------------------------+
| Variable_name | Value |
±---------------------------------------±--------------------------------------+
| log_bin | ON | ------> ON表示已经开启binlog日志
| log_bin_basename | /usr/local/mysql/data/mysql-bin |
| log_bin_index | /usr/local/mysql/data/mysql-bin.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| log_error | /usr/local/mysql/data/martin.err |
| log_output | FILE |
| log_queries_not_using_indexes | OFF |
| log_slave_updates | OFF |
| log_slow_admin_statements | OFF |
| log_slow_slave_statements | OFF |
| log_throttle_queries_not_using_indexes | 0 |
| log_warnings | 1 |
±---------------------------------------±--------------------------------------+
2,查看master状态,即最后(最新)一个binlog日志的编号名称,及其最后一个操作事件pos结束点(Position)值
mysql> show master status;
±-----------------±---------±-------------±-----------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
±-----------------±---------±-------------±-----------------+
| mysql-bin.000002 | 4102 | | |
±-----------------±---------±-------------±-----------------+
1 row in set (0.00 sec)

3 flush刷新log日志,自此刻开始产生一个新编号的binlog日志文件
mysql> flush logs;
Query OK, 0 rows affected (0.13 sec)

mysql> show master logs;
±-----------------±----------+
| Log_name | File_size |
±-----------------±----------+
| mysql-bin.000001 | 149 |
| mysql-bin.000002 | 4145 |
| mysql-bin.000003 | 106 |

4 ,推出mysql ;
进入系统mysql位置,
find / -name ‘mysql-bin.00002’

进入位置,执行 mysqlbinlog mysql-bin.000002 查看日志,
如果报错的话,找到mysqlbinlog 安装目录,在里面执行
按时间点查询日志
./mysqlbinlog (或者/usr/local/mysql/bin/mysqlbinlog) --start-datetime=‘2019-01-14 17:00:00’ --stop-datetime=‘2019-03-11 17:50:01’ (-d hadoop加不加都行) /usr/local/mysql/var/mysql-bin.000022

把查询的日志导成sql文件:
./mysqlbinlog(或者/usr/local/mysql/bin/mysqlbinlog) /usr/local/mysql/var/mysql-bin.000021 -d insurance --skip-gtids --start-datetime=“2019-01-15 00:30:53” (–stop-datetime=‘2019-03-11 17:50:01’) > /home/mytestdbdier.sql
5,进入mysql
选择一个数据库:use dbname;

设置字符集:set names utf8;
导入:source /home/mytestdbdier.sql

6 mysqlbinlog命令参数说明:

-d -database
-h -host
-p -password
-P -port
–start-datetime
–start-position
–stop-datetime
–stop-position

csdn其实很早就注册了,但是一直没时间更新,现在终于有时间了,上一个博客,看看朋友们的需求度咋样,以后会持续更新,谢谢支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值