m
墨墨导读:本文是作者用MySQL数据库手动注册binlog文件造成主从同步异常后,详述整个分析与解决的过程。
云和恩墨大讲堂线上分享:《weblogic 优化》
时间:2019年7月30日(星期二)20:30-21:30
立即报名:https://cs.enmotech.com/event/57
一、问题来源
因为某些需求,想将备份的binlog文件恢复到主库并且进行注册,在不关闭主从同步的情况下,他做了如下操作:
将备份的一些binlog文件加入到了binlog日志目录文件中。
修改index文件,加入了这些binlog文件。
flush binary logs注册文件。
做完这些操作后,主库确实binlog注册回来了, 但是整个主从环境大量延迟。
二、初次测试
测试操作如下:
1. 主库操作,拷贝并且清理binlog
(root:db1@xucl:10:30:22)[(none)]> show binary logs;+---------------------+-----------+| Log_name | File_size |+---------------------+-----------+| mysql-binlog.000035 | 2134 || mysql-binlog.000036 | 845915 || mysql-binlog.000037 | 11735 || mysql-binlog.000038 | 284 || mysql-binlog.000039 | 284 || mysql-binlog.000040 | 284 || mysql-binlog.000041 | 284 || mysql-binlog.000042 | 234 |+---------------------+-----------+12 rows in set (0.00 sec)
+---------------------+-----------+
| Log_name | File_size |
+---------------------+-----------+
| mysql-binlog.000035 | 2134 |
| mysql-binlog.000036 | 845915 |
| mysql-binlog.000037 | 11735 |
| mysql-binlog.000038 | 284 |
| mysql-binlog.000039 | 284 |
| mysql-binlog.000040 | 284 |
| mysql-binlog.000041 | 284 |
| mysql-binlog.000042 | 234 |
+---------------------+-----------+
12 rows in set (0.00 sec)
拷贝需要清理的binlog到备份目录,即binlog 35、36、37、38。
(root:db1@xucl:10:30:34)[(none)]> purge binary logs to 'mysql-binlog.000039';Query OK, 0 rows affected (0.00 sec)(root:db1@xucl:10:30:49)[(none)]> show binary logs;+---------------------+-----------+| Log_name | File_size |+---------------------+-----------+| mysql-binlog.000039 | 284 || mysql-binlog.000040 | 284 || mysql-binlog.000041 | 284 || mysql-binlog.000042 | 234 |+---------------------+-----------+4 rows in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
(root:db1@xucl:10:30:49)[(none)]> show binary logs;
+---------------------+-----------+
| Log_name | File_size |
+---------------------+-----------+
| mysql-binlog.000039 | 284 |
| mysql-binlog.000040 | 284 |
| mysql-binlog.000041 | 284 |
| mysql-binlog.000042 | 234 |
+---------------------+-----------+
4 rows in set (0.00 sec)
2. 主库操作,将备份的binlog拷贝回原先的目录并修改index文件进行注册
[root@izbp12nspj47ypto9t6vyez logs]# ll-rw-r----- 1 mysql mysql 2134 5月 20 22:03 mysql-binlog.000035-rw-r----- 1 mysql mysql 845915 5月 20 22:03 mysql-binlog.000036-rw-r----- 1 mysql mysql 11735 5月 20 22:05 mysql-binlog.000037-rw-r----- 1 mysql mysql 284 5月 20 22:06 mysql-binlog.000038-rw-r----- 1 mysql mysql 284 5月 21 10:28 mysql-binlog.000039-rw-r----- 1 mysql mysql 284 5月 21 10:28 mysql-binlog.000040-rw-r----- 1 mysql mysql 284 5月 21 10:28 mysql-binlog.000041-rw-r----- 1 mysql mysql 491 5月 21 10:31 mysql-binlog.000042-rw-r----- 1 mysql mysql 204 5月 21 10:30 mysql-binlog.index
-rw-r----- 1 mysql mysql 2134 5月 20 22:03 mysql-binlog.000035
-rw-r----- 1 mysql mysql 845915 5月 20 22:03 mysql-binlog.000036
-rw-r----- 1 mysql