翼度科技»论坛 编程开发 mysql 查看内容

系统变量group_replication_group_seeds为空导致MySQL节点无法启动组复制

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
MySQL InnoDB Cluster集群中一个节点,在服务器重启过后,启动MySQL实例后,发现status为MISSING,另外memberState为OFFLINE状态。如下所示:
  1.  MySQL  mysqldbu02:7306 ssl  JS > cluster.status()
  2. {
  3.     "clusterName": "yssps", 
  4.     "defaultReplicaSet": {
  5.         "name": "default", 
  6.         "primary": "mysqldbu02:7306", 
  7.         "ssl": "REQUIRED", 
  8.         "status": "OK_NO_TOLERANCE_PARTIAL", 
  9.         "statusText": "Cluster is NOT tolerant to any failures. 1 member is not active.", 
  10.         "topology": {
  11.             "mysqldbu01:7306": {
  12.                 "address": "mysqldbu01:7306", 
  13.                 "instanceErrors": [
  14.                     "NOTE: group_replication is stopped."
  15.                 ], 
  16.                 "memberRole": "SECONDARY", 
  17.                 "memberState": "OFFLINE", 
  18.                 "mode": "n/a", 
  19.                 "readReplicas": {}, 
  20.                 "role": "HA", 
  21.                 "status": "(MISSING)", 
  22.                 "version": "8.0.35"
  23.             }, 
  24.             "mysqldbu02:7306": {
  25.                 "address": "mysqldbu02:7306", 
  26.                 "memberRole": "PRIMARY", 
  27.                 "mode": "R/W", 
  28.                 "readReplicas": {}, 
  29.                 "replicationLag": "applier_queue_applied", 
  30.                 "role": "HA", 
  31.                 "status": "ONLINE", 
  32.                 "version": "8.0.35"
  33.             }, 
  34.             "mysqldbu03:7306": {
  35.                 "address": "mysqldbu03:7306", 
  36.                 "memberRole": "SECONDARY", 
  37.                 "mode": "R/O", 
  38.                 "readReplicas": {}, 
  39.                 "replicationLag": "applier_queue_applied", 
  40.                 "role": "HA", 
  41.                 "status": "ONLINE", 
  42.                 "version": "8.0.35"
  43.             }
  44.         }, 
  45.         "topologyMode": "Single-Primary"
  46.     }, 
  47.     "groupInformationSourceMember": "mysqldbu02:7306"
  48. }
  49.  MySQL  mysqldbu02:7306 ssl  JS > 
复制代码
从错误提示信息来看是组复制没有启动(group_replication is stopped)。其实MySQL InnoDB Cluster的节点重启操作在生产环境和测试环境都做过多次,还是第一次遇到这种情况。
另外,在这个节点上查看节点的状态如下:
  1. mysql> select * from performance_schema.replication_group_members order by member_host\G
  2. *************************** 1. row ***************************
  3.               CHANNEL_NAME: group_replication_applier
  4.                  MEMBER_ID: 5ad73846-3fce-11ee-a86c-5254003c1c6e
  5.                MEMBER_HOST: mysqldbu01
  6.                MEMBER_PORT: 7306
  7.               MEMBER_STATE: OFFLINE
  8.                MEMBER_ROLE: 
  9.             MEMBER_VERSION: 
  10. MEMBER_COMMUNICATION_STACK: MySQL
  11. 1 row in set (0.00 sec)

  12. mysql>
复制代码
具体的错误日志如下所示
  1. 2024-11-06T10:03:19.369090+08:00 29 [Warning] [MY-011735] [Repl] Plugin group_replication reported: '[GCS] Automatically adding IPv4
  2.  localhost address to the allowlist. It is mandatory that it is added.'
  3. 2024-11-06T10:03:19.369171+08:00 29 [Warning] [MY-011735] [Repl] Plugin group_replication reported: '[GCS] Automatically adding IPv6
  4.  localhost address to the allowlist. It is mandatory that it is added.'
  5. 2024-11-06T10:03:19.371586+08:00 40 [System] [MY-010597] [Repl] 'CHANGE REPLICATION SOURCE TO FOR CHANNEL 'group_replication_applier
  6. ' executed'. Previous state source_host='<NULL>', source_port= 0, source_log_file='', source_log_pos= 4, source_bind=''. New state s
  7. ource_host='<NULL>', source_port= 0, source_log_file='', source_log_pos= 4, source_bind=''.
  8. 2024-11-06T10:03:19.391449+08:00 29 [ERROR] [MY-011735] [Repl] Plugin group_replication reported: '[GCS] Unable to join the group: peers not configured. '
  9. 2024-11-06T10:03:19.391512+08:00 29 [ERROR] [MY-011639] [Repl] Plugin group_replication reported: 'Error on group communication engine start'
  10. 2024-11-06T10:03:19.391581+08:00 29 [ERROR] [MY-011735] [Repl] Plugin group_replication reported: '[GCS] The member is leaving a group without being on one.'
复制代码
关键信息为:[Repl] Plugin group_replication reported: '[GCS] Unable to join the group: peers not configured.
这个错误信息意味着没有配置系统变量group_replication_group_seeds。另外,手工启动组复制,错误日志依然报同样的错误,执行启动组复制命令的错误信息如下所示:
  1. mysql> start group_replication;
  2. ERROR 3097 (HY000): The START GROUP_REPLICATION command failed as there was an error when joining the communication group.
  3. mysql> 
复制代码
检查发现系统变量group_replication_group_seeds的值为空(my.cnf中没有设置这个系统变量,在mysqld-auto.cnf中系统变量为空值),因为是测试环境,不清楚什么时候动过这个系统变量,,毕竟测试环境经常被折腾来折腾去。
  1. mysql> show variables like 'group_replication_local_address';
  2. +---------------------------------+---------------------+
  3. | Variable_name                   | Value               |
  4. +---------------------------------+---------------------+
  5. | group_replication_local_address | mysqldbu01:7306     |
  6. +---------------------------------+---------------------+
  7. 1 row in set (0.01 sec)

  8. mysql> 
  9. mysql>  show variables like 'group_replication_group_seeds';
  10. +-------------------------------+-------+
  11. | Variable_name                 | Value |
  12. +-------------------------------+-------+
  13. | group_replication_group_seeds |       |
  14. +-------------------------------+-------+
  15. 1 row in set (0.00 sec)

  16. mysql> select * from performance_schema.persisted_variables where variable_name='group_replication_group_seeds';
  17. +-------------------------------+----------------+
  18. | VARIABLE_NAME                 | VARIABLE_VALUE |
  19. +-------------------------------+----------------+
  20. | group_replication_group_seeds |                |
  21. +-------------------------------+----------------+
  22. 1 row in set (0.01 sec)

  23. mysql> 
复制代码
设置系统变量group_replication_group_seeds的值后,重启组复制就正常了。
  1. mysql> set persist group_replication_group_seeds='mysqldbu02:7306';
  2. Query OK, 0 rows affected (0.01 sec)

  3. mysql> start group_replication;
  4. Query OK, 0 rows affected, 1 warning (11.28 sec)

  5. mysql> 
复制代码
扫描上面二维码关注我如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
来源:https://www.cnblogs.com/kerrycode/p/18531222
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具