MySQL 5.7: 把現有的複製組遷移到InnoDB Cluster

MySQL 5.7: 使用組複製(MySQL Group Replication)
MySQL 5.7: 使用MySQL Router實現應用程序的高可用
MySQL 5.7: 把現有的複製組遷移到InnoDB Cluster
MySQL 5.7: 使用PMM監視和管理數據庫php

MySQL InnoDB 集羣是一堆集合到一塊兒工做的產品, 用於提供一個完整的高可用方案. html

複製組不是一個完整的高可用方案, 它只是實現了數據庫端的故障轉移, 可是並無爲應用程序提供一個單一的入口, 本文可結合MySQL 5.7: 使用MySQL Router實現應用程序的高可用 建立一個InnoDB集羣建立一個完整的HA方案.mysql

  • 能夠使用MySQL Shell來配置MySQL服務器組以建立一個MySQL InnoDB數據庫集羣.linux

  • 默認爲單主模式, 集羣中的服務器只有一個能寫.sql

  • 餘下的服務器做爲主服務器的備用.數據庫

  • 建立集羣至少須要三臺機器.ubuntu

  • 客戶端應用程序經過MySQL Router鏈接到主服務器.segmentfault

  • 若是主服務器失敗, 集羣自動選主, 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.deb
dpkg -i mysql-apt-config_0.8.9-1_all.deb

查看版本信息

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

使用 MySQL Shell 配置集羣

登陸

root:~# mysqlsh --uri root@172.18.149.213:3306
Creating a Session to 'root@172.18.149.213:3306'
Enter password:
Your MySQL connection id is 80
Server version: 5.7.20-log MySQL Community Server (GPL)
No default schema selected; type \use <schema> to set one.
MySQL Shell 1.0.10

Copyright (c) 2016, 2017, 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.

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 --version
mysqlsh   Ver 1.0.10 for Linux on x86_64 - for MySQL 5.7.19 (MySQL Community Server (GPL))

從現有的複製組建立 InnoDB 集羣的問題: https://bugs.mysql.com/bug.ph... MySQL Shell 的一個BUG, 降級到 1.0.9 正常.

相關文章
相關標籤/搜索