1. 相关准备
mysql升级:https://dev.mysql.com/doc/refman/5.7/en/mysql-upgrade.html
mysql备份/集群间数据同步:https://www.percona.com/doc/percona-xtrabackup/LATEST/index.html
PXC集群:https://www.percona.com/doc/percona-xtradb-cluster/LATEST/index.html
2. 服务器准备
Nodes | Hostname | IP | 标签 |
---|---|---|---|
mysql(5.6) | mysql-old | 172.16.3.10 | 单机Node |
mysql(5.7) | mysql-new | 172.16.3.11 | 单机Node |
HAProxy | haproxy | 172.16.3.30 | ha |
Node1 | mysql01 | 172.16.3.31 | 集群Node |
Node2 | mysql02 | 172.16.3.32 | 集群Node |
Node3 | mysql03 | 172.16.3.33 | 集群Node |
3. 改造方案
4. 改造流程
- 172.16.3.10,在不影响生产环境mysql-old对外服务的情况下,利用xtrabackup备份整个实例,scp至mysql-new(172.16.3.11)
- 172.16.3.11,安装最新mysql(5.7.18),通过xtrabackup还原整个实例(5.6)
在确认启动正常、数据无误的情况下,通过mysql_upgrade将实例升级至5.7
再通过复制技术,形成mysql-old(master)和mysql-new(slave)复制状态
至此,以生产环境mysql-old(5.6)的实时在线数据库mysql-new(5.7),作为PXC集群的数据源
确认!确认!确认!
- 172.16.3.11,通过xtrabackup备份整个实例(5.7),scp至mysql01 (172.16.3.31)
- 172.16.3.31,安装最新PXC集群(5.7.18),通过xtrabackup还原整个实例(5.7),
service mysql bootstrap-pxc
启动节点
重复mysql-old(master)和mysql-new(slave)的工作,形成mysql-new(master)和mysql01(slave)复制状态
形成mysql-old(master, 5.6)==>mysql-new(slave, 5.7, master)==>mysql01(slave, 5.7)链式复制状态
确认!确认!确认!
- 172.16.3.31,通过xtrabackup备份整个实例(5.7),scp至mysql02 (172.16.3.31)、mysql03 (172.16.3.32)
- 172.16.3.32(33),安装最新PXC集群(5.7.18),通过本系列教程第4步xtrabackup+IST添加新Node的方式,加入集群
整体:mysql-old==>mysql-new==>mysql01==>mysql02(mysql03)
确认!确认!确认!
- 172.16.3.30,通过本系列教程第2步HAProxy,作为客户端连接集群的VIP
等待数据同步完成
确认!确认!确认!
变更172.16.3.10:3306==>172.16.3.30:3306,即完成mysql单机==>集群的改造