MySQL 5.7: 使用組複製(MySQL Group Replication)
MySQL 5.7: 使用MySQL Router實現應用程序的高可用
MySQL 5.7: 把現有的複製組遷移到InnoDB Cluster
MySQL 5.7: 使用PMM監視和管理數據庫phpMySQL 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)
登陸
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用到, 以實現高可用性.
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 正常.