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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 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支持。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
消息中间件 分布式计算 关系型数据库
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
66 0
|
16天前
|
弹性计算 关系型数据库 数据库
自建数据库迁移到云数据库实操
本课程详细介绍了自建数据库迁移到阿里云RDS的实操步骤。主要内容包括:创建实例资源、安全设置、配置自建的MySQL数据库、数据库的迁移、从自建数据库切换到RDS以及清理资源。通过这些步骤,学员可以掌握如何将自建数据库安全、高效地迁移到云端,并确保应用的正常运行。
93 26
|
9天前
|
弹性计算 关系型数据库 数据库
从自建到云端,数据库迁移全攻略
本文详细介绍了将自建数据库迁移至阿里云RDS的全过程,涵盖WordPress网站安装、数据库迁移配置及验证等步骤。通过DTS数据传输服务,实现库表结构、全量和增量数据的无缝迁移,确保业务连续性和数据一致性。方案具备零成本维护、高可用性(最高99.99%)、性能优化及全面的数据安全保障等核心优势。此外,提供了详细的图文教程,帮助用户快速上手并完成迁移操作,确保业务稳定运行。点击文末“阅读原文”了解更多详情及参与活动赢取精美礼品。
|
1月前
|
弹性计算 安全 关系型数据库
活动实践 | 自建数据库迁移到云数据库
通过阿里云RDS,用户可获得稳定、安全的企业级数据库服务,无需担心数据库管理与维护。该方案使用RDS确保数据库的可靠性、可用性和安全性,结合ECS和DTS服务,实现自建数据库平滑迁移到云端,支持WordPress等应用的快速部署与运行。通过一键部署模板,用户能迅速搭建ECS和RDS实例,完成数据迁移及应用上线,显著提升业务灵活性和效率。
|
17天前
|
运维 关系型数据库 MySQL
自建数据库迁移到云数据库RDS
本次课程由阿里云数据库团队的凡珂分享,主题为自建数据库迁移至云数据库RDS MySQL版。课程分为四部分:1) 传统数据库部署方案及痛点;2) 选择云数据库RDS MySQL的原因;3) 数据库迁移方案和产品选型;4) 线上活动与权益。通过对比自建数据库的局限性,介绍了RDS MySQL在可靠性、安全性、性价比等方面的优势,并详细讲解了使用DTS(数据传输服务)进行平滑迁移的步骤。此外,还提供了多种优惠活动信息,帮助用户降低成本并享受云数据库带来的便利。
|
1月前
|
安全 关系型数据库 MySQL
体验自建数据库迁移到云数据库RDS,领取桌面置物架!
「技术解决方案【Cloud Up 挑战赛】」正式开启!本方案旨在帮助用户将自建数据库平滑迁移至阿里云RDS MySQL,享受稳定、高效、安全的数据库服务,助力业务快速发展。完成指定任务即可赢取桌面置物架等奖励,限量供应,先到先得。活动时间:2024年12月3日至12月31日16点。
|
3月前
|
算法 大数据 数据库
云计算与大数据平台的数据库迁移与同步
本文详细介绍了云计算与大数据平台的数据库迁移与同步的核心概念、算法原理、具体操作步骤、数学模型公式、代码实例及未来发展趋势与挑战。涵盖全量与增量迁移、一致性与异步复制等内容,旨在帮助读者全面了解并应对相关技术挑战。
62 3
|
3月前
|
运维 关系型数据库 Java
DataKit6.0将MySQL8.0迁移至openGauss6.0
DataKit6.0将MySQL8.0迁移至openGauss6.0
|
13天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
39 3
|
13天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
42 3

推荐镜像

更多