MySQL 8.0.17 中引入的克隆插件允许在本地或从远程 MySQL 服务器实例克隆数据。
克隆数据是存储在其中的数据的物理快照InnoDB
,包括模式、表、表空间和数据字典元数据。克隆的数据包含一个功能齐全的数据目录,允许使用克隆插件进行 MySQL 服务器配置。
本地克隆操作将数据从启动克隆操作的 MySQL 服务器实例克隆到运行 MySQL 服务器实例的同一服务器或节点上的目录。
远程克隆操作涉及启动克隆操作的本地 MySQL 服务器实例(“接收者”)和远程 MySQL 服务器实例( “捐赠者”) 源数据所在的位置。
当在接受者上启动远程克隆操作时,克隆的数据通过网络从捐赠者传输到接受者。默认情况下,远程克隆操作会在从捐赠者克隆数据之前从接收者数据目录中删除现有的用户创建的数据(模式、表、表空间)和二进制日志。
或者,您可以将数据克隆到收件人上的不同目录,以避免从当前收件人数据目录中删除数据。
与远程克隆操作相比,本地克隆操作克隆的数据没有区别。这两个操作都克隆了同一组数据。
配置文件配置:
[mysqld] plugin-load-add=mysql_clone.so clone=FORCE_PLUS_PERMANENT # 如果克隆插件没加载好,则无法启动 mysql 服务
如果要防止服务器在没有克隆插件的情况下运行,请使用 --clone=
FORCE
或 FORCE_PLUS_PERMANENT
在插件未成功初始化的情况下强制服务器启动失败。
在线启用:
INSTALL PLUGIN clone SONAME 'mysql_clone.so'; SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'clone';