暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

MySQL8.0使用CLONE插件搭建主从实战

原创 飞天 2024-12-11
468

一、clone plugin说明

The clone plugin, introduced in MySQL 8.0.17, permits cloning data locally or from a remote MySQL server instance. Cloned data is a physical snapshot of data stored in InnoDB that includes schemas, tables, tablespaces, and data dictionary metadata. The cloned data comprises a fully functional data directory, which permits using the clone plugin for MySQL server provisioning.
MySQL 8.0.17 引入的克隆插件允许在本地或从远程 MySQL 服务器实例克隆数据。克隆的数据是 InnoDB 中存储的数据的物理快照,包括schemas、tables、tablespaces和数据字典元数据。克隆的数据包含一个完全功能正常的数据目录,允许使用克隆插件为 MySQL 服务器提供支持。

本文将演示使用clone plugin搭建主从高可用架构的整个过程。

二、clone plugin使用限制

  • 数据库版本必须是8.0.17及以上。
  • 克隆操作仅支持InnoDB表,对于其他存储引擎的表,只会克隆其表结构而不会复制数据。
  • 源端和目标端必须是同一系列的MySQL服务器,例如8.0.37和8.0.41。在8.0.37之前的版本中,它们也必须是同一版本的发布版本。
  • 从MySQL 8.0.27开始,克隆操作不再阻塞源端的DDL操作。

三、环境说明

主机名 ip地址 OS版本 内存、CPU 机器用途
node2 192.*.*.20 Centos7.9 4G 、 1个双核 主节点(源端)
node3 192.*.*.30 Centos7.9 4G 、 1个双核 从节点(目标端)

四、实验过程

4.1 检查数据库版本

select version();

image.png

4.2 查非innodb的表

select TABLE_SCHEMA,TABLE_NAME from information_schema.tables where ENGINE!='innodb'and TABLE_SCHEMA not in ('information_schema','mysql','performance_schema','sys');

4.3 安装克隆插件

INSTALL PLUGIN clone SONAME 'mysql_clone.so';

image.png

4.4 检查克隆插件是否安装成功

SELECT PLUGIN_NAME,PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME='clone';

image.png

4.5 从节点检查 donor 名单

show global variables like 'clone_valid_donor_list';

image.png

4.6 从节点设置 donor 名单

#将主节点(源库)的实例 ip、 port 添加到从节点(目标库)的 `clone_valid_donor_list` 变量中: SET GLOBAL clone_valid_donor_list = '192.*.*.20:3306';

image.png
image.png

4.7 从节点开始clone操作

后台执行:

#注意替换ip地址、端口和密码 nohup mysql -uroot -p'pass' -e "CLONE INSTANCE FROM 'root'@'192.*.*.20':port IDENTIFIED BY 'pass';" &

image.png

4.8 监控克隆状态和进度

select * from performance_schema.clone_status\G; select * from performance_schema.clone_progress;

image.png
image.png

4.9 配置主从(从库上执行)

CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.*.*.20', SOURCE_PORT = 3306, SOURCE_USER='repl', SOURCE_PASSWORD='******', SOURCE_AUTO_POSITION=1, GET_SOURCE_PUBLIC_KEY=1;

image.png

4.10 开启主从复制(从库上执行)

start replica; show replica status\G;

image.png
image.png

五、官方文档

https://dev.mysql.com/doc/refman/8.0/en/clone-plugin.html

六、总结

MySQL Clone Plugin适用于需要快速搭建主从高可用、快速搭建测试环境等场景,有需求的朋友们快试一试吧!

关于作者:
专注于Oracle、MySQL、PG、OpenGauss和国产数据库的研究,热爱生活,热衷于分享数据库技术。
微信公众号:飞天online
墨天轮:https://www.modb.pro/u/15197
如有任何疑问,欢迎大家留言,共同进步~~~

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论