【最佳实践】MySQL数据库迁移到PXC集群

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 借本次数据库迁移实践,再次总结一下MySQL数据库迁移到PXC的最佳操作路径。

借本次数据库迁移实践,再次总结一下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配置文件是本次实践的重点内容

需确保源数据库的配置参数与新集群的配置参数合理组合。

node1

[root@node1:1 /u01]# cat /etc/my.cnf

[client]
socket = /u01/mysql/mysql.sock

[mysqld]
datadir = /u01/mysql/data/
tmpdir = /u01/mysql/tmp/
binlog_expire_logs_seconds=604800
socket = /u01/mysql/mysql.sock
log-error=/var/log/mysqld.log
gtid_mode = on
enforce_gtid_consistency = on
log-bin = mysql-bin
binlog_format = row
lower_case_table_names=1
innodb_file_per_table=1
innodb_strict_mode=0
user=mysql
default-storage-engine=INNODB
symbolic-links=0
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 50G
innodb_thread_concurrency = 8
innodb_log_file_size = 512M
innodb_log_files_in_group=8
secure_file_priv=''
local_infile = 1
max_connections=2000
max_connect_errors=100
default-time-zone='+08:00'
log_timestamps=SYSTEM
innodb_thread_concurrency=128
innodb_read_io_threads=16
innodb_write_io_threads=16
transaction-isolation=READ-COMMITTED
general-log=1
general-log-file=/u01/mysql/mysqllog.log
long_query_time = 10
slow_query_log = 1
slow_query_log_file=/u01/mysql/myslow.log

wsrep_provider=/usr/lib64/galera4/libgalera_smm.so
wsrep_slave_threads=8
wsrep_log_conflicts
innodb_autoinc_lock_mode=2

server_id = 86
wsrep_cluster_address=gcomm://[2409:8002:5a06:120:10:0:2:c056]:4567,[2409:8002:5a06:120:10:0:2:c057]:4567,[2409:8002:5a06:120:10:0:2:c058]:4567
wsrep_node_address=[2409:8002:5a06:120:10:0:2:c056]:4567
wsrep_node_incoming_address=[2409:8002:5a06:120:10:0:2:c056]:3306
wsrep_sst_receive_address=[2409:8002:5a06:120:10:0:2:c056]:4444
wsrep_cluster_name=pxc-cluster-tjyd-zqzc
pxc_strict_mode=ENFORCING
wsrep_sst_method=xtrabackup-v2
pxc_encrypt_cluster_traffic=OFF
wsrep_provider_options="gmcast.listen_addr=tcp://[2409:8002:5a06:120:10:0:2:c056]:4567;ist.recv_addr=tcp://[2409:8002:5a06:120:10:0:2:c056]:4568"

node2

[root@node2:1 /u01]# cat /etc/my.cnf

前面部分同node1

server_id = 87
wsrep_cluster_address=gcomm://[2409:8002:5a06:120:10:0:2:c056]:4567,[2409:8002:5a06:120:10:0:2:c057]:4567,[2409:8002:5a06:120:10:0:2:c058]:4567
wsrep_node_address=[2409:8002:5a06:120:10:0:2:c057]:4567
wsrep_node_incoming_address=[2409:8002:5a06:120:10:0:2:c057]:3306
wsrep_sst_receive_address=[2409:8002:5a06:120:10:0:2:c057]:4444
wsrep_cluster_name=pxc-cluster-tjyd-zqzc
pxc_strict_mode=ENFORCING
wsrep_sst_method=xtrabackup-v2
pxc_encrypt_cluster_traffic=OFF
wsrep_provider_options="gmcast.listen_addr=tcp://[2409:8002:5a06:120:10:0:2:c057]:4567;ist.recv_addr=tcp://[2409:8002:5a06:120:10:0:2:c057]:4568"

node3

类似 node2,此处略过

IPv6支持

以上配置文件可见,PXC集群已配置了集群内外部的IPv6支持。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
2月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
3月前
|
存储 运维 关系型数据库
从MySQL到云数据库,数据库迁移真的有必要吗?
本文探讨了企业在业务增长背景下,是否应从 MySQL 迁移至云数据库的决策问题。分析了 MySQL 的优势与瓶颈,对比了云数据库在存储计算分离、自动化运维、多负载支持等方面的优势,并提出判断迁移必要性的五个关键问题及实施路径,帮助企业理性决策并落地迁移方案。
|
5月前
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
987 1
|
6月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
1月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
314 5
|
5月前
|
关系型数据库 MySQL 数据库
MySQL数据库上云迁移
本文介绍了将数据库迁移到RDS for Mysql的两种主要方法:停服迁移和不停服迁移。停服迁移适合可短暂中断服务的场景,通过mysqldump或DTS完成;不停服迁移适用于需保持业务连续性的场景,推荐使用DTS实现结构、全量及增量数据迁移。文中详细列出了每种方法的具体操作步骤,帮助企业根据需求选择合适的迁移方案。
166 1
MySQL数据库上云迁移
|
2月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
122 3
|
2月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。

推荐镜像

更多