• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 深度理解MySQL Group Replication的RECOVERING状态

深度理解MySQL Group Replication的RECOVERING状态

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了MySQL ,Replication,RECOVERING等相关知识,希望本文的分享对您有所帮助


接收到报警通知,db3这台组复制成员故障down机了,等修复好,启动服务器,然后再启动mysql实例,进去查看状态,变成了RECOVERING,如下所示;

mysql> SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+----------------------+-------------+--------------+
| CHANNEL_NAME  | MEMBER_ID  | MEMBER_HOST          | MEMBER_PORT | MEMBER_STATE |
+---------------------------+--------------------------------------+----------------------+-------------+--------------+
| group_replication_applier | 3381d155-d7d1-11e6-94f7-b8ca3af6e36c | hch_test_dbm2_121_71 |   3317 | ONLINE       |
| group_replication_applier | 664b9ce9-d7de-11e6-9e8c-18a99b763071 | hch_test_web_1_24  |        3317 | ONLINE     |
| group_replication_applier | 84dba8ff-d7d2-11e6-aa9a-18a99b76310d | bpe_service      |     3317 | RECOVERING   |
+---------------------------+--------------------------------------+----------------------+-------------+--------------+
3 rows in set (0.00 sec)


mysql>

这种状态有点类似mongodb的sendary的RECOVERING状态,对于刚刚出现的MySQL Group Replication新技术,遇到这种情况,这种情况怎么办?


在mongodb的这种模式下,一般是secondary从primary库上不停复制数据,所以我们遵循这种思路,去看下db2的数据目录,看到有很多relay-bin的recovery日志在应用执行,如下所示relay日志包记录

-rw-r----- 1 mysql mysql  383 1月  17 16:08 bpe_service-relay-bin-group_replication_applier.000019
-rw-r----- 1 mysql mysql  502 1月  17 16:11 bpe_service-relay-bin-group_replication_applier.000020
-rw-r----- 1 mysql mysql  502 1月  17 16:23 bpe_service-relay-bin-group_replication_applier.000021
-rw-r----- 1 mysql mysql  421 1月  17 16:23 bpe_service-relay-bin-group_replication_applier.000022
-rw-r----- 1 mysql mysql  228 1月  17 16:23 bpe_service-relay-bin-group_replication_applier.index
-rw-r----- 1 mysql mysql  312 1月  17 16:24 bpe_service-relay-bin-group_replication_recovery.000007
-rw-r----- 1 mysql mysql 1.1G 1月  17 16:24 bpe_service-relay-bin-group_replication_recovery.000008
-rw-r----- 1 mysql mysql  391 1月  17 16:24 bpe_service-relay-bin-group_replication_recovery.000009
-rw-r----- 1 mysql mysql  312 1月  17 16:24 bpe_service-relay-bin-group_replication_recovery.000010
-rw-r----- 1 mysql mysql 1.1G 1月  17 16:24 bpe_service-relay-bin-group_replication_recovery.000011
-rw-r----- 1 mysql mysql  391 1月  17 16:24 bpe_service-relay-bin-group_replication_recovery.000012
-rw-r----- 1 mysql mysql  312 1月  17 16:24 bpe_service-relay-bin-group_replication_recovery.000013
-rw-r----- 1 mysql mysql 1.1G 1月  17 16:25 bpe_service-relay-bin-group_replication_recovery.000014
-rw-r----- 1 mysql mysql  391 1月  17 16:25 bpe_service-relay-bin-group_replication_recovery.000015
-rw-r----- 1 mysql mysql  312 1月  17 16:25 bpe_service-relay-bin-group_replication_recovery.000016
-rw-r----- 1 mysql mysql 1.1G 1月  17 16:25 bpe_service-relay-bin-group_replication_recovery.000017
-rw-r----- 1 mysql mysql  391 1月  17 16:25 bpe_service-relay-bin-group_replication_recovery.000018
-rw-r----- 1 mysql mysql  312 1月  17 16:25 bpe_service-relay-bin-group_replication_recovery.000019
-rw-r----- 1 mysql mysql 1.1G 1月  17 16:25 bpe_service-relay-bin-group_replication_recovery.000020
-rw-r----- 1 mysql mysql  391 1月  17 16:25 bpe_service-relay-bin-group_replication_recovery.000021
-rw-r----- 1 mysql mysql  312 1月  17 16:25 bpe_service-relay-bin-group_replication_recovery.000022
-rw-r----- 1 mysql mysql 1.1G 1月  17 16:25 bpe_service-relay-bin-group_replication_recovery.000023
-rw-r----- 1 mysql mysql  391 1月  17 16:25 bpe_service-relay-bin-group_replication_recovery.000024
-rw-r----- 1 mysql mysql  312 1月  17 16:25 bpe_service-relay-bin-group_replication_recovery.000025
-rw-r----- 1 mysql mysql 181M 1月  17 16:26 bpe_service-relay-bin-group_replication_recovery.000026
-rw-r----- 1 mysql mysql 1.2K 1月  17 16:25 bpe_service-relay-bin-group_replication_recovery.index
drwxr-x--- 2 mysql mysql 4.0K 1月  17 14:11 business_db

然后在mysql窗口,可以看到几个线程,其中有一个就是Reading event from the relay log线程,就是表示正在应用relay日志:

mysql> show full processlist;
+----+-------------+-----------+------+---------+------+--------------------------------------------------------+-----------------------+
| Id | User        | Host      | db   | Command | Time | State    | Info                 |
+----+-------------+-----------+------+---------+------+--------------------------------------------------------+-----------------------+
| 28 | system user |           | NULL | Connect |  701 | Suspending    | NULL                  |
| 31 | system user |           | NULL | Connect |  701 | Slave has read all relay log; waiting for more updates | NULL  |
| 35 | system user |           | NULL | Connect |  699 | Waiting for master to send event  | NULL    |
| 36 | system user |           | NULL | Connect | 4519 | Reading event from the relay log   | NULL  |
| 38 | root        | localhost | NULL | Query   |    0 | starting   | show full processlist |
+----+-------------+-----------+------+---------+------+--------------------------------------------------------+-----------------------+
5 rows in set (0.00 sec)


mysql>

再过一会儿,数据同步完成之后,bpe_service就会从RECOVERING变成ONLINE状态。这个更加证实了,数据已经同步完成。

mysql> SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+----------------------+-------------+--------------+
| CHANNEL_NAME              | MEMBER_ID   | MEMBER_HOST          | MEMBER_PORT | MEMBER_STATE |
+---------------------------+--------------------------------------+----------------------+-------------+--------------+
| group_replication_applier | 3381d155-d7d1-11e6-94f7-b8ca3af6e36c | hch_test_dbm2_121_71 |        3317 | ONLINE       |
| group_replication_applier | 664b9ce9-d7de-11e6-9e8c-18a99b763071 | hch_test_web_1_24    |        3317 | ONLINE       |
| group_replication_applier | 84dba8ff-d7d2-11e6-aa9a-18a99b76310d | bpe_service          |        3317 | ONLINE       |
+---------------------------+--------------------------------------+----------------------+-------------+--------------+
3 rows in set (0.00 sec)


mysql>

去查看后台error log日志显示,刚开始启动,在做CHANGE MASTER TO FOR CHANNEL ‘group_replication_applier’ executed’的时候,没有取到值,然后看后面同步完后,就会执行加入组复制成员的命令

“CHANGE MASTER TO FOR CHANNEL 'group_replication_recovery' executed'.
 Previous state master_host='hch_test_web_1_24', master_port= 3317, master_log_file='', 
 master_log_pos= 4, master_bind=''. New state master_host='<NULL>', master_port= 0, master_log_file='', master_log_pos= 4, master_bind=''”,

在执行结束后,最后告诉我们“’This server was declared online within the replication group’”已经加入到了组成员,而且变成了实时的ONLINE状态:

2017-01-17T08:23:15.710146Z 4 [Note] Plugin group_replication reported: 'auto_increment_increment is reset to 1'
2017-01-17T08:23:15.710200Z 4 [Note] Plugin group_replication reported: 'auto_increment_offset is reset to 1'
2017-01-17T08:23:15.710401Z 20 [Note] Error reading relay log event for channel 'group_replication_applier': slave SQL thread was killed
2017-01-17T08:23:15.711212Z 17 [Note] Plugin group_replication reported: 'The group replication applier thread was killed'
2017-01-17T08:23:42.141239Z 4 [Note] Plugin group_replication re
  


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MySQL essential版本和普通版本有什么区别?
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 解析远程连接管理其他机器上的MYSQL数据库
  • MySQL timestamp自动更新时间分享
  • MySQL Order by 语句用法与优化详解
  • 深入解析mysql中order by与group by的顺序问题
  • 解析mysql不重复字段值求和
  • MySql实现跨表查询的方法详解

相关文章

  • 2018-12-05oracle常用sql语句
  • 2018-12-05分享网站群发站内信数据库表设计
  • 2018-12-05连接mysql时提示10038怎么处理
  • 2018-12-05MySQL 及 SQL 注入与防范方法的详细介绍
  • 2018-12-05mysql数据库插入速度和读取速度的调整记录
  • 2018-12-05MySQL无法创建外键的原因及解决方法
  • 2018-12-05使如何使项目的并发性更高?利用ID自增保证排队顺序
  • 2018-12-05Oracle常用命令大全集
  • 2017-05-11在MySQL中删除表的操作教程
  • 2018-12-05MySQL数据库输入密码后闪退怎么办

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MMC提示不能打开文件SQLServerEnterpriseManager.MSC的解决方法
    • MySQL Slave 触发 oom-killer解决方法_MySQL
    • MySQL实现差集(Minus)和交集(Intersect)测试报告
    • MySQL IN 用法
    • 什么是MongoDB?MongoDB简介
    • 【MySQL 02】数据库总结
    • mysql中对表的操作教程
    • MySQL中关于唯一性的约束与NULL详解
    • MySQL中的运算符使用实例展示
    • 一段压缩MS SQLServer日志的语句

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有