前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >mysql innodb cluster 集群断电重启

mysql innodb cluster 集群断电重启

原创
作者头像
wangwei-dba
修改于 2021-02-09 08:42:07
修改于 2021-02-09 08:42:07
3.5K00
代码可运行
举报
文章被收录于专栏:mysql-dbamysql-dba
运行总次数:0
代码可运行

mysql 8.018 innodb cluster

集群节点

172.16.2.62

172.16.2.76

172.16.2.77

innodb cluster 集群断电重启

手动启动集群

1.首先启动3个节点的mysql数据用mysqld_safe方式启动

命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/usr/local/mysql8.0.18/bin/mysqld_safe --defaults-file=/data/inndbcluster/mysql3310/my3310.cnf --user=mysql &

启动之后登录mysql一个节点的数据库(GTID最大的节点,也就是最新的节点)

/usr/local/mysql8.0.18/bin/mysql -S /tmp/mysql3310.sock -uroot -p

如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@java-db03 ~]# /usr/local/mysql8.0.18/bin/mysql -S /tmp/mysql3310.sock -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 8.0.18 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
启动第一个节点要开启参数group_replication_bootstrap_group
mysql>SET GLOBAL group_replication_bootstrap_group=ON;
mysql> start group_replication;
启动group_replication后然后关闭参数group_replication_bootstrap_group
mysql>SET GLOBAL group_replication_bootstrap_group=Off;

2.然后登入其他节点启动其他2个节点的group_replication

启动group_replication

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> start group_replication;

启动完毕后查询mgr集群状态(在任何一个节点都可以查询)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
| group_replication_applier | 250a4342-26f3-11ea-9f36-005056a71582 | java-db03   |        3310 | ONLINE       | PRIMARY     | 8.0.18         |
| group_replication_applier | 2732c0d1-26f5-11ea-940a-005056a766be | java-db02   |        3310 | ONLINE       | SECONDARY   | 8.0.18         |
| group_replication_applier | 3bf45f79-26f5-11ea-9429-005056a75a27 | java-db     |        3310 | ONLINE       | SECONDARY   | 8.0.18         |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
3 rows in set (0.00 sec)

节点MEMBER_STATE为online代表正常,为其他状态需要看error排查或者联系dba处理

3.启动router

目前测试的router部署在172.16.2.62

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/usr/local/mysqlrouter/bin/mysqlrouter -c /data/mysqlrouter/mysqlrouter.conf &
测试router链接 
[root@java-db ~]# /usr/local/mysql8.0.18/bin/mysql -h172.16.2.62 -P3306 -uroot -p'Guiji.admin.2019'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 138893
Server version: 8.0.18 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> 

能连上代表正常

4.使用mysqlshell查看集群状态

mysqlshell安装在172.16.2.77

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@java-db03 ~]# /usr/local/mysqlshell/bin/mysqlsh dbauser@172.16.2.77:3310
Please provide the password for 'dbauser@172.16.2.77:3310': **********
MySQL Shell 8.0.18
Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.
Type '\help' or '\?' for help; '\quit' to exit.
Creating a session to 'dbauser@172.16.2.77:3310'
Fetching schema names for autocompletion... Press ^C to stop.
Your MySQL connection id is 139579
Server version: 8.0.18 MySQL Community Server - GPL
No default schema selected; type \use  to set one.
 MySQL  172.16.2.77:3310 ssl  JS > 
 MySQL  172.16.2.77:3310 ssl  JS > var ww=dba.getCluster('wwcluster');
 MySQL  172.16.2.77:3310 ssl  JS > ww.status();
{
    "clusterName": "wwcluster", 
    "defaultReplicaSet": {
        "name": "default", 
        "primary": "java-db03:3310", 
        "ssl": "REQUIRED", 
        "status": "OK", 
        "statusText": "Cluster is ONLINE and can tolerate up to ONE failure.", 
        "topology": {
            "java-db02:3310": {
                "address": "java-db02:3310", 
                "mode": "R/O", 
                "readReplicas": {}, 
                "replicationLag": null, 
                "role": "HA", 
                "status": "ONLINE", 
                "version": "8.0.18"
            }, 
            "java-db03:3310": {
                "address": "java-db03:3310", 
                "mode": "R/W", 
                "readReplicas": {}, 
                "replicationLag": null, 
                "role": "HA", 
                "status": "ONLINE", 
                "version": "8.0.18"
            }, 
            "java-db:3310": {
                "address": "java-db:3310", 
                "mode": "R/O", 
                "readReplicas": {}, 
                "replicationLag": null, 
                "role": "HA", 
                "status": "ONLINE", 
                "version": "8.0.18"
            }
        }, 
        "topologyMode": "Single-Primary"
    }, 
    "groupInformationSourceMember": "java-db03:3310"
}
 MySQL  172.16.2.77:3310 ssl  JS > 

Cluster is ONLINE and can tolerate up to ONE failure 代表正常并且节点status都为online

使用dba.rebootClusterFromCompleteOutage()断电启动集群

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@java-db03 local]#  /usr/local/mysqlshell/bin/mysqlsh dbauser@172.16.2.38:3310
Please provide the password for 'dbauser@172.16.2.38:3310': **********
MySQL Shell 8.0.18

Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.

Type '\help' or '\?' for help; '\quit' to exit.
Creating a session to 'dbauser@172.16.2.38:3310'
Fetching schema names for autocompletion... Press ^C to stop.
Your MySQL connection id is 27
Server version: 8.0.18 MySQL Community Server - GPL
No default schema selected; type \use <schema> to set one.
 MySQL  172.16.2.38:3310 ssl  JS > 
 MySQL  172.16.2.38:3310 ssl  JS > 
 MySQL  172.16.2.38:3310 ssl  JS > 
 MySQL  172.16.2.38:3310 ssl  JS > 
 MySQL  172.16.2.38:3310 ssl  JS > 
 MySQL  172.16.2.38:3310 ssl  JS > var ww=dba.getCluster();
Dba.getCluster: This function is not available through a session to a standalone instance (metadata exists, instance belongs to that metadata, but GR is not active) (RuntimeError)
 MySQL  172.16.2.38:3310 ssl  JS > 
 MySQL  172.16.2.38:3310 ssl  JS > 
 MySQL  172.16.2.38:3310 ssl  JS > var cluster = dba.rebootClusterFromCompleteOutage();
Reconfiguring the default cluster from complete outage...

The instance 'java-db02:3310' was part of the cluster configuration.
Would you like to rejoin it to the cluster? [y/N]: y

The instance 'java-db01:3310' was part of the cluster configuration.
Would you like to rejoin it to the cluster? [y/N]: y

The safest and most convenient way to provision a new instance is through
automatic clone provisioning, which will completely overwrite the state of
'172.16.2.38:3310' with a physical snapshot from an existing cluster member. To
use this method by default, set the 'recoveryMethod' option to 'clone'.

The incremental distributed state recovery may be safely used if you are sure
all updates ever executed in the cluster were done with GTIDs enabled, there
are no purged transactions and the new instance contains the same GTID set as
the cluster or a subset of it. To use this method by default, set the
'recoveryMethod' option to 'incremental'.

Incremental distributed state recovery was selected because it seems to be safely usable.

The cluster was successfully rebooted.

 MySQL  172.16.2.38:3310 ssl  JS > 

集群正常重启:

可以采用滚动方式重启,一个节点一个节点的重启(和启动mysql单机一样)

停止mysql shutdown (不要kill -9)

单个节点登录mysql 不要用集群方式登陆

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@java-db03 ~]# /usr/local/mysql8.0.18/bin/mysql -S /tmp/mysql3310.sock -uroot -p
mysql> shutdown;

然后启动节点:

/usr/local/mysql8.0.18/bin/mysqld_safe --defaults-file=/data/inndbcluster/mysql3310/my3310.cnf --user=mysql &

依次启动其他节点即可

启动完成后查询

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> 
mysql> SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
| group_replication_applier | 250a4342-26f3-11ea-9f36-005056a71582 | java-db03   |        3310 | ONLINE       | PRIMARY     | 8.0.18         |
| group_replication_applier | 2732c0d1-26f5-11ea-940a-005056a766be | java-db02   |        3310 | ONLINE       | SECONDARY   | 8.0.18         |
| group_replication_applier | 3bf45f79-26f5-11ea-9429-005056a75a27 | java-db     |        3310 | ONLINE       | SECONDARY   | 8.0.18         |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
3 rows in set (0.00 sec)

代表启动完成

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
手把手教你安装 MySQL InnoDB Cluster 8.0.34
大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来手把手教你安装 MySQL InnoDB Cluster 8.0.34,欢迎点击上方蓝字“JiekeXu DBA之路”关注我的公众号,标星或置顶,更多干货第一时间到达!
JiekeXu之路
2023/10/25
2.5K3
手把手教你安装 MySQL InnoDB Cluster 8.0.34
GreatSQL从单机到MGR扩展纪实
原有的业务系统跑在MySQL主从架构中,高可用通过脚本完成,但存在切换数据丢失和切换不及时风险,调研了高可用更稳定的MGR后,准备入手一试。本篇文章主要记录GreatSQL从单机扩展到MGR的详细过程,遇到的问题及解决方法。
GreatSQL社区
2023/09/10
2310
GreatSQL从单机到MGR扩展纪实
Centos7.5基于MySQL5.7的 InnoDB Cluster 多节点高可用集群环境部署记录
一. MySQL InnoDB Cluster 介绍 MySQL的高可用架构无论是社区还是官方,一直在技术上进行探索,这么多年提出了多种解决方案,比如MMM, MHA, NDB Cluster, Galera Cluster, InnoDB Cluster, 腾讯的PhxSQL, MySQL Fabric., aliSQL。MySQL官方在2017年4月推出了一套完整的、高可用的Mysql解决方案 - MySQL InnoDB Cluster, 即一组MySQL服务器可以配置为一个MySQL集群。在默认的单主节点模式下,集群服务器具有一个读写主节点和多个只读辅节点。辅助服务器是主服务器的副本。客户端应用程序通过MySQL Router连接到主服务程序。如果主服务连接失败,则次要的节点自动提升为主节点,MySQL Router请求到新的主节点。InnoDB Cluster不提供NDB Cluster支持。
洗尽了浮华
2019/05/25
2.6K0
MySQL+MGR 单主模式和多主模式的集群环境 - 部署手册 (Centos7.5)
MySQL Group Replication(简称MGR)是MySQL官方于2016年12月推出的一个全新的高可用与高扩展的解决方案。MGR是MySQL官方在5.7.17版本引进的一个数据库高可用与高扩展的解决方案,以插件形式提供,实现了分布式下数据的最终一致性, 它是MySQL5.7版本出现的新特性,它提供了高可用、高扩展、高可靠的MySQL集群服务。MySQL组复制分单主模式和多主模式,mysql 的复制技术仅解决了数据同步的问题,如果 master 宕机,意味着数据库管理员需要介入,应用系统可能需要修改数据库连接地址或者重启才能实现。(这里也可以使用数据库中间件产品来避免应用系统数据库连接的问题,例如 mycat 和 atlas 等产品)。组复制在数据库层面上做到了,只要集群中大多数主机可用,则服务可用,也就是说3台服务器的集群,允许其中1台宕机。
洗尽了浮华
2019/05/25
2.8K1
MySQL 8 复制(八)——组复制安装部署
MGR作为MySQL服务器的插件提供,组中的每个服务器都需要配置和安装插件。本文说明配置具有三个服务器的组复制的详细步骤,三个独立的MySQL实例已经安装好。拓扑结构如图1所示。
用户1148526
2019/08/01
1.8K0
5. MGR管理维护 | 深入浅出MGR
今天介绍MGR集群的日常管理维护操作,包括主节点切换,单主&多主模式切换等。手工操作以及利用MySQL Shell两种方式都会分别介绍。
GreatSQL社区
2022/02/23
1.1K0
技术分享 | InnoDB Cluster+GreatSQL快速部署MGR集群,并实现读写分离和故障自动转移(超详细)
MySQL InnoDB Cluster(简称MIC)是MySQL推出的整套解决方案,由几个部分组成:
老叶茶馆
2021/07/09
1.9K0
技术分享  | InnoDB Cluster+GreatSQL快速部署MGR集群,并实现读写分离和故障自动转移(超详细)
10. 选主算法、多版本兼容性及滚动升级 | 深入浅出MGR
本文介绍MGR的选主算法,以及当MGR集群中有多个不同版本混搭时,如何才能正常运行,有什么注意事项。
GreatSQL社区
2022/03/30
5080
【DB宝18】在Docker中安装使用MySQL高可用之MGR
6.2、其他节点加入MGR,在从库(172.72.0.16,172.72.0.17)上执行
AiDBA宝典
2020/08/18
1.8K1
技术分享 | 利用GreatSQL部署MGR集群,并完成添加新节点 、滚动升级、切主(超详细)
本文详细介绍如何在单机环境下,利用GreatSQL构建一个3节点的MGR集群,并用mysqld_multi进行管理。
老叶茶馆
2021/07/09
1.2K0
技术分享   | 利用GreatSQL部署MGR集群,并完成添加新节点 、滚动升级、切主(超详细)
MySQL Group Replication的安装部署
这次给大家介绍下MySQL官方最新版本5.7.17中GA的新功能 Group Replication 。
py3study
2020/02/26
1.4K0
MGR搭建以及性能测试
昨天的文章中简单介绍了MySQL的组复制的概念,今天搭建了一套单机多实例单主节点的MGR环境来进行性能测试。
AsiaYe
2019/11/06
1.1K0
MySQL 5.7 MGR单主确定主节点方法
MySQL 5.7 MGR单主确定主节点是哪个,我们可以通过成员ID来判断,然后结合read_only参数来确认。
星哥玩云
2022/08/18
5900
MGR 主备集群实现异步连接故障转移
MySQL 8.0.22 开始,支持异步连接故障切换机制,在现有主从复制连接失败后,自动建立到新主的异步复制连接。
GreatSQL社区
2023/08/11
4121
MGR 主备集群实现异步连接故障转移
MGR集群搭建(单主模式)
MySQL Group Replication(MGR)是MySQL官方于2016年12月推出的一个全新的高可用与高扩展的解决方案,MGR是基于原生复制及paxos协议的组复制技术,并以插件的方式提供,可以采取多主模式和单主模式,单主模式下,会自动选主,所有更新操作都在主上进行,多主模式下,所有server都可以同时处理更新操作。下面我们就来搭建下MGR集群(单主模式)。
MySQL数据库技术栈
2020/11/03
1.7K0
如何在Ubuntu上配置MySQL组复制
传统MySQL复制备份架构是将数据从一个数据库同步到另一个数据库。主要操作是将主数据库的数据复制到辅助服务器,当主服务器数据出问题时,自动同步辅助服务器的数据到主服务器,以便恢复数据。但是这种架构有不少缺点,比如数据不够安全,同步可能会丢失等问题,可能会影响主服务器性能。
爆栈工程师
2018/08/07
2.6K0
【说站】mysql如何启动组复制
当STARTGROUP_REPLICATION语句返回时,该组已经启动。可检查该组目前是否已创建,并包括一名成员。
很酷的站长
2022/11/24
1.1K0
带你走进MySQL全新高可用解决方案-MGR
相信很多人对MGR这个词比较陌生,其实MGR(全称 MySQL Group Replication 【MySQL 组复制】)是Oracle MySQL于2016年12月发布MySQL 5.7.17推出的一个全新高可用和高扩展的解决方案。具备以下特性:
2020labs小助手
2021/09/01
9990
Innodb Cluster集群部署配置(下)
如何将Multi-Primary改为Single-Primary? 1.解散原来的集群 mysql-js> cluster.dissolve({force: true})
陈不成i
2021/06/15
7740
【DB宝45】MySQL高可用之MGR+Consul架构部署
基于目前存在很多MySQL数据库单点故障,传统的MHA,PXC等方案用VIP或者DNS切换的方式可以实现、基于数据库的数据强一致性考虑,采用MGR集群,采用consul服务注册发现实现应用端通过动态DNS 访问MGR集群,实现数据库高可用,自动化切换的方案。
AiDBA宝典
2021/03/29
1.3K0
【DB宝45】MySQL高可用之MGR+Consul架构部署
推荐阅读
相关推荐
手把手教你安装 MySQL InnoDB Cluster 8.0.34
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文