千家信息网

MySQL的Clone插件怎么用

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,今天小编给大家分享一下MySQL的Clone插件怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一
千家信息网最后更新 2026年11月01日MySQL的Clone插件怎么用

今天小编给大家分享一下MySQL的Clone插件怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

克隆插件简介

MySQL 8.0.17引入了Clone插件,可以进行本地或从远程MySQL服务器实例进行克隆,克隆的数据是存储在InnoDB中的数据的物理快照,包括schemas、tables、tablespaces和数据字典元数据。克隆操作包括本地克隆和远程克隆。

本地克隆操作: 远程克隆操作:

安装克隆插件

使用Clone插件进行克隆操作,必须先进行插件的安装和配置。插件的名称是mysql_clone.so,安装有两种方法。

方法1:

MySQL数据库的插件默认放在系统变量plugin_dir对应的目录中,在MySQL服务器启动时使用--plugin-load-add选项加载该插件即可,但该方法需每次启动服务器都需要指定对应的选项,可以将其配置到my.cnf文件中,即:

[mysqld]plugin-load-add=mysql_clone.so

方法2:

运行时加载该插件,使用INSTALL PLUGIN进行安装,并将插件注册到mysql.plugin系统表中:

install plugin clone soname 'mysql_clone.so';

安装后,可在information_schema.plugins表或通过show plugins查看。

克隆本地数据

本地克隆数据是将MySQL数据目录克隆相同服务器或节点到另一个目录 支持的语法如下,

CLONE LOCAL DATA DIRECTORY [=] '/path/to/clone_dir'

执行上述语句,对应的用户需要有BACKUP_ADMIN权限,而且用户创建的文件或表空间必须在数据目录中,同时,克隆的目的地需指定绝对路径,目录完整路径必须存在,但clone_dir必须不存在。

演示:克隆本地数据

1)创建用户

mysql> select version();+-----------+| version() |+-----------+| 8.0.25 |+-----------+1 row in set (0.00 sec)mysql> create user clone_admin identified by 'Cl0neTest';Query OK, 0 rows affected (0.02 sec)mysql> grant backup_admin on *.* to clone_admin;Query OK, 0 rows affected (0.10 sec)

2)创建目录

[root@node1 ~]# mkdir /mysql/clone/[root@node1 ~]# chown -R mysql:mysql /mysql/clone/

3)克隆操作

mysql> clone local data directory='/mysql/clone/clone_data';Query OK, 0 rows affected (17.09 sec)

4)查看克隆后的文件

[root@node1 ~]# ll /mysql/clone/clone_data/total 6348816drwxr-x---. 2 mysql mysql 89 Nov 28 11:26 #clone-rw-r-----. 1 mysql mysql 9231 Nov 28 11:26 ib_buffer_pool-rw-r-----. 1 mysql mysql 4294967296 Nov 28 11:26 ibdata1-rw-r-----. 1 mysql mysql 1073741824 Nov 28 11:26 ib_logfile0-rw-r-----. 1 mysql mysql 1073741824 Nov 28 11:26 ib_logfile1drwxr-x---. 2 mysql mysql 6 Nov 28 11:26 mysql-rw-r-----. 1 mysql mysql 25165824 Nov 28 11:26 mysql.ibddrwxr-x---. 2 mysql mysql 4096 Nov 28 11:26 sakiladrwxr-x---. 2 mysql mysql 28 Nov 28 11:26 sys-rw-r-----. 1 mysql mysql 16777216 Nov 28 11:26 undo_001-rw-r-----. 1 mysql mysql 16777216 Nov 28 11:26 undo_002

5)验证,使用克隆的目录启动数据库

[root@node1 ~]# service mysql.server stopShutting down MySQL.... SUCCESS![root@node1 ~]# mysqld_safe --datadir=/mysql/clone/clone_data/ --lower-case-table-names=1 --user=mysql2021-11-28T03:47:11.012900Z mysqld_safe Logging to '/mysql/clone/clone_data/node1.com.cn.err'.2021-11-28T03:47:11.036181Z mysqld_safe Starting mysqld daemon with databases from /mysql/clone/clone_data

克隆远程数据

克隆远程MySQL服务器实例(donor)并将其传输至执行克隆操作的MySQL实例(recipient),支持的克隆远程数据的语法如下:

CLONE INSTANCE FROM 'user'@'host':portIDENTIFIED BY 'password'[ DATA DIRECTORY [ = ] 'clone_dir' ][ REQUIRE [ NO ] SSL ]

其中,

  • user 是donor MySQL服务器实例的用户名;

  • password是user的密码;

  • host是donor MySQL服务器实例的hostname地址,目前支持IPv4,不支持IPv6,但可使用别名;

  • port是donor MySQL服务器实例的端口号;

  • DATA DIRECTORY [ = ] 'clone_dir'是可选的子句用于指定接收克隆数据的目录,不指定该选项会覆盖已存在的数据文件,指定该选项可将克隆数据传输至该目录;

  • REQUIRE [ NO ] SSL显式指定是否使用加密连接;

执行克隆操作,克隆插件必须在donor和recipient MySQL服务器实例激活,在donor服务器实例,克隆用户需要BACKUP_ADMIN权限,在recipient服务器实例,克隆用户需要CLONE_ADMIN权限,CLONE_ADMIN权限包括BACKUP_ADMIN和SHUTDOWN权限。

执行CLONE INSTANCE语句需满足下面的先决条件:

  • donor和recipient必须有相同的MySQL服务器版本,克隆插件在8.0.17版本后支持;

  • donor和recipient必须运行在相同的操作系统和平台;

  • 克隆数据,recipient必须有足够的磁盘空间;

  • InnoDB需要在数据目录外面创建表空间,可通过INFORMATION_SCHEMA.FILES查看;

  • 克隆插件必须在donor和recipient激活,可通过SHOW PLUGINS查看;

  • donor和recipient必须有相同的MySQL服务器字符集和排序规则;

  • donor和recipient需要有相同的innodb_page_size和innodb_data_file_path设置;

  • 若克隆加密或页压缩的数据,donor和recipient必须有相同的文件系统块大小;

  • 若克隆加密的数据,需要安全的连接;

  • recipient上的clone_valid_donor_list设置必须包括donor MySQL服务器实例的主机地址;

  • 一次只能有一个克隆操作,克隆期间不能有其他克隆操作,可通过clone_status查看;

  • 克隆插件以1MB数据包和元数据的形式传输数据,在donor和recipient MySQL服务器实例上所需的最小max_allowed_packet是2MB;

  • donor上的Undo表空间文件名必须唯一,当数据克隆到recipient,undo表空间克隆到recipient 上innodb_undo_directory指定的位置或DATA DIRECTORY [ = ] 'clone_dir' 子句指定的目录;

  • 默认,recipient MySQL服务器实例在克隆数据完成后自动重启;

  • 几个变量控制远程克隆操作的各个方面;

演示:克隆远程数据

默认将数据克隆到recipient端的数据目录,并使用donor的数据进行覆盖,然后进行自动重启recipient端的MySQL服务器实例

1)登录到donor MySQL服务器实例,创建用户并安装插件(若安装可忽略)

mysql> create user 'donor_clone_user' identified by 'donor_clone_user';Query OK, 0 rows affected (0.02 sec)mysql> grant backup_admin on *.* to donor_clone_user;Query OK, 0 rows affected (0.01 sec)

2)登录到recipient MySQL服务器实例,创建账户并安装插件,并设置clone_valid_donor_list

mysql> create user recipient_clone_user identified by 'recipient_clone_user';Query OK, 0 rows affected (0.04 sec)mysql> grant clone_admin,backup_admin on *.* to recipient_clone_user;Query OK, 0 rows affected (0.01 sec)mysql> install plugin clone soname 'mysql_clone.so';Query OK, 0 rows affected (0.01 sec)mysql> set global clone_valid_donor_list='192.168.56.53:3306';Query OK, 0 rows affected (0.00 sec)

3)登录到recipient MySQL服务器实例,使用 recipient_clone_user用户或root用户执行克隆操作,操作完成后会自动重启

mysql> clone instance from 'donor_clone_user'@'192.168.56.81':3306 identified by 'donor_clone_user';Query OK, 0 rows affected (51.08 sec)

注:将donor的数据克隆到recipient端默认会覆盖其数据文件,也可以指定一个目录进行克隆,如下:

mysql> clone instance from 'donor_clone_user'@'192.168.56.81':3306 identified by 'donor_clone_user' data directory='/mysql/clone/clone_data';Query OK, 0 rows affected (51.17 sec)

使用新目录启动MySQL服务器实例:

[root@node2 clone]# mysqld --lower-case-table-names=1 --datadir=/mysql/clone/clone_data/ --user=mysql &

以上就是"MySQL的Clone插件怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

数据 服务器 服务 插件 实例 目录 用户 文件 相同 权限 空间 支持 方法 知识 篇文章 系统 可通 传输 加密 登录 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 保险科技 互联网保险 喔噻互联网科技有限公司 伟宏互联网科技 山东特亿宝互联网科技有限公司 中关村互联网 科技集团 左右互联网络科技 云创客互联网科技公司 互联网科技公司需要的职位 互联网之后的科技是什么 成都互联网科技公司工作好不好 南博望互联网科技有限公司 启辰互联网科技 上海创道互联网络科技有限公司 互联网科技包装股 上海同邻互联网科技有限公司规模 普陀区互联网教育科技管理办法 万物互联网智能科技 唐山双旺合互联网科技产业园 数字科技和互联网金融哪个好 广东猫王互联网科技有限公司电话 互联网科技活动banner 猪兼强互联网科技 佳云科技和互联网广告 乌鲁木齐新华智原互联网科技学校 高科技互联网发展前景如何 威龙国际互联网科技公司 35岁以上互联网科技行业 银川新华互联网科技学校是国营吗 北京天晋互联网科技有限公司 利用互联网等科技手段
0