前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL克隆插件

MySQL克隆插件

作者头像
MySQLSE
发布2024-04-02 16:25:12
790
发布2024-04-02 16:25:12
举报

MySQL的克隆插件是在MySQL8.0.17推出的功能,利用MySQL的克隆插件,可以将MySQL服务器实例的数据进行克隆。克隆后的数据包含存储在InnoDB中的模式、表、表空间及数据路径下的元数据。

克隆有两种方式:

  • 本地克隆:克隆数据至一个其他的路径。
  • 远程克隆:从远程的MySQL服务器实例上克隆数据。

使用克隆功能时,需要在作为捐献者和接收者的MySQL服务器上都必须安装克隆插件。安装克隆插件可以通过“plugin-load”或“plugin-load-add”两个启动选项加载“mysql_clone.so”,例如,

代码语言:javascript
复制
[mysqld]
plugin-load-add=mysql_clone.so

利用该启动选项可以确保在每次服务器重启时自动加载克隆插件。

也可以在MySQL服务器正在运行的时候,利用“INSTALL PLUGIN”语句安装克隆插件,例如,

代码语言:javascript
复制
mysql>INSTALL PLUGIN clone SONAME 'mysql_clone.so'

安装后的插件将注册到“mysql.plugins”系统表中,将在后续的每次服务器重启时进行加载。

用户如果需要验证插件是否成功安装,可以从“INFORMATION_SCHEMA.PLUGINS”中查询,或者使用“SHOW PLUGINS”语句查看。

用户执行本地克隆操作时,需要具备“BACKUP_ADMIN”权限。

代码语言:javascript
复制
mysql>GRANT BACKUP_ADMIN ON *.* 'username';

执行远程克隆操作时,用户在接收服务器上需要具有“CLONE_AMDIN”权限,该权限具有置换数据、克隆期间阻挡DDL操作,及自动重启服务器的能力。在捐献服务器上需要“BACKUP_ADMIN”权限用于访问和传输数据、阻挡DDL操作。

本地克隆

本地克隆是指在同一台主机上克隆MySQL数据至其他路径,需要在运行克隆语句时,指定“LOCAL DATA DIRECTORY”选项、端口及连接信息。

代码语言:javascript
复制
mysql> CLONE LOCAL DATA DIRECTORY = '/path/to_clone_dir';

远程克隆

数据需要从一台远程MySQL服务器实例(捐献者),克隆至本地MySQL服务器实例(接收者)。需要在全局变量“clone_valid_donor_list”中配置捐献者的主机和端口。

代码语言:javascript
复制
mysql>SET GLOBAL clone_valid_donor_list = 'donor_host:3306';

之后在接收者服务器上运行“CLONE”语句:

代码语言:javascript
复制
mysql>CLONE INSTANCE FORM 'donor_user'@'donor_host:3306' IDENTIFIED BY 'password';

注意事项:

运行远程克隆时,需要满足下列条件:

  • 捐献者和接收者必须运行相同的操作系统和平台。
  • 接收者必须具有足够的磁盘容量。
  • 如果捐献者的表空间文件在数据路径之外,克隆操作必须能够写入这些路径。
  • 如果捐献者上面有激活的插件,接收者的插件也必须激活。
  • 捐献者和接收者必须具有相同的字符串和排序。
  • 捐献者和接收者的“innodb_page_size”和“innodb_data_file_path”的配置必须相同。
  • 如果克隆加密或者压缩的数据,要求捐献者和接收者具有一致的文件系统块大小。
  • 克隆加密数据时,要求使用安全连接。
  • “clone_valid_donor_list”中必须包含捐献者的主机地址。
  • 克隆时,不允许其他的克隆操作。
  • “max_allowed_packet”值至少为2MB。

克隆插件的限制

  • 克隆操作中,全部的DDL被阻挡,DML允许执行。
  • 克隆操作仅支持InnoDB表,其他引擎表会被克隆为空表。
  • 无法克隆服务器的配置和二进制日志。
  • 本地克隆无法克隆使用绝对路径创建的通用表空间。
  • 远程克隆不支持X协议端口。
  • 无法通过MySQL Router连接捐献者MySQL服务器实例。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL解决方案工程师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档