如何将最佳实践MySQL数据库成功迁移至PXC集群?
摘要:借本次数据库迁移实践,再次总结一下MySQL数据库迁移到PXC的最佳操作路径。 1、源数据库配置 xtrabackup 工具,快速备份源数据到nfs; 2、目的数据库集群配置最新版本的 MySQL PXC 集群软件; 3、目的数据库集群节点
借本次数据库迁移实践,再次总结一下MySQL数据库迁移到PXC的最佳操作路径。
1、源数据库配置 xtrabackup 工具,快速备份源数据到nfs;
2、目的数据库集群配置最新版本的 MySQL PXC 集群软件;
3、目的数据库集群节点 node1 采用 xtrabackup 导入备份数据;
4、使用合适的配置文件在 node1 拉起数据库;
5、node2 加入集群,node3 加入集群。
以上1、2步比较简单,在此略过,以下强调后面的步骤,请项目参考使用。
三、node1 导入备份数据
■ 准备数据路径
mkdir -p /u01/mysql/data
mkdir -p /u01/mysql/tmp
chown -R mysql.mysql /u01/mysql
■ 删除datadir所有文件
DATADIR=/u01/mysql/data
cd ${DATADIR}
rm -rf *
■ 设置环境变量
USER=root
PASSWORD='passwd'
FULL_DIR=/u01/mysqlbak/2023-10-18/
PARALLEL=10
■ 准备全量备份的日志
LOG_FILE=/tmp/prepareAll_`date +"%Y%m%d-%H%M"`.log
xtrabackup --prepare --apply-log-only --parallel=${PARALLEL} --target-dir=${FULL_DIR} > ${LOG_FILE} 2>&1 &
【耗时】8分钟,573G
■ 全备份准备
LOG_FILE=/tmp/prepareLast_`date +"%Y%m%d-%H%M"`.log
xtrabackup --prepare --parallel=${PARALLEL} --target-dir=${FULL_DIR} > ${LOG_FILE} 2>&1 &
【耗时】4分钟,573G
■ 拷回数据
LOG_FILE=/tmp/copyback_`date +"%Y%m%d-%H%M"`.log
xtrabackup --user=${USER} --password=${PASSWORD} --copy-back --parallel=${PARALLEL} --target-dir=${FULL_DIR} > ${LOG_FILE} 2>&1 &
【耗时】34分钟,573G
四、node1 拉起数据库
■ 修改数据目录权限和属性
chown -R mysql:mysql ${DATADIR}
■ 启动
注意,此时需事先配置数据库参数文件
systemctl start mysql@bootstrap
五、node2 加入集群
只要配置好合适的配置文件,node2 加入集群非常简单,只需执行启动命令:
systemctl start mysql
此时查看 node1、node2 的数据库日志,可以看到双方角色的变换,node1 作为 DONOR 通过 SST 将数据全量同步给了 node2,之后 node2 成功加入集群。
六、node3 加入集群
七、PXC配置文件是本次实践的重点内容
需确保源数据库的配置参数与新集群的配置参数合理组合。
