博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL 5.7: 把现有的复制组迁移到InnoDB Cluster
阅读量:5746 次
发布时间:2019-06-18

本文共 2508 字,大约阅读时间需要 8 分钟。

MySQL InnoDB 集群是一堆集合到一起工作的产品, 用于提供一个完整的高可用方案.

复制组不是一个完整的高可用方案, 它只是实现了数据库端的故障转移, 但是并没有为应用程序提供一个单一的入口, 本文可结合 创建一个InnoDB集群创建一个完整的HA方案.

  • 可以使用MySQL Shell来配置MySQL服务器组以创建一个MySQL InnoDB数据库集群.

  • 默认为单主模式, 集群中的服务器只有一个能写.

  • 余下的服务器作为主服务器的备用.

  • 创建集群至少需要三台机器.

  • 客户端应用程序通过MySQL Router连接到主服务器.

  • 如果主服务器失败, 集群自动选主, MySQL Router自动把连接路由到新主

  • 高级用于可以配置集群有多主

由于前面我们已经创建了一个复制组.

mysql> SELECT * FROM performance_schema.replication_group_members;+---------------------------+--------------------------------------+----------------+-------------+--------------+| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST    | MEMBER_PORT | MEMBER_STATE |+---------------------------+--------------------------------------+----------------+-------------+--------------+| group_replication_applier | 255a577c-c68f-11e7-a0a7-00163e0c0288 | 172.18.149.215 |        3306 | ONLINE       || group_replication_applier | 77befd8c-c68e-11e7-9623-00163e0af475 | 172.18.149.213 |        3306 | ONLINE       || group_replication_applier | a44c7ec7-c68e-11e7-9cf8-00163e0afda9 | 172.18.149.214 |        3306 | ONLINE       |+---------------------------+--------------------------------------+----------------+-------------+--------------+3 rows in set (0.00 sec)

现在我们只需要安装MySQL Router和MySQL Shell

wget https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.debdpkg -i mysql-apt-config_0.8.9-1_all.deb

查看版本信息

root:~# mysqlrouter --versionMySQL Router v2.1.4 on Linux (64-bit) (GPL community edition)

使用 MySQL Shell 配置集群

登录

root:~# mysqlsh --uri root@172.18.149.213:3306Creating a Session to 'root@172.18.149.213:3306'Enter password:Your MySQL connection id is 80Server version: 5.7.20-log MySQL Community Server (GPL)No default schema selected; type \use 
to set one.MySQL Shell 1.0.10Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type '\help' or '\?' for help; '\quit' to exit.Currently in JavaScript mode. Use \sql to switch to SQL mode and execute queries.mysql-js>

创建集群

mysql-js> var cluster = dba.createCluster('dc', {adoptFromGR: true});

执行成功后会自动创建一个新的数据库: mysql_innodb_cluster_metadata, 用于存放集群的元数据, 该元数据会被MySQL Router用到, 以实现高可用性.

参考资料

dba.createCluster('dc', {adoptFromGR: true}) 的BUG

root:~# mysqlsh --versionmysqlsh   Ver 1.0.10 for Linux on x86_64 - for MySQL 5.7.19 (MySQL Community Server (GPL))

从现有的复制组创建 InnoDB 集群的问题: MySQL Shell 的一个BUG, 降级到 1.0.9 正常.

转载地址:http://gvazx.baihongyu.com/

你可能感兴趣的文章
深入理解自定义Annotation,实现ButterKnif小原理
查看>>
排序高级之交换排序_冒泡排序
查看>>
Cocos2d-x3.2 Ease加速度
查看>>
[EntLib]关于SR.Strings的使用办法[加了下载地址]
查看>>
中小型网站架构分析及优化
查看>>
写shell的事情
查看>>
负载均衡之Haproxy配置详解(及httpd配置)
查看>>
linux虚拟机拷贝之后联网出错
查看>>
Linux文件系统探索
查看>>
标准与扩展ACL 、 命名ACL 、 总结和答疑
查看>>
查找恶意的TOR中继节点
查看>>
MAVEN 属性定义与使用
查看>>
hadoop2.7.2 HA搭建
查看>>
shell高级视频答学生while循环问题
查看>>
无法SSH到Ubuntu
查看>>
使用@media实现IE hack的方法
查看>>
《11招玩转网络安全》之第一招:Docker For Docker
查看>>
hive_0.11中文用户手册
查看>>
hiveserver2修改线程数
查看>>
XML教程
查看>>