知识点 | MySQL克隆插件

2024年 4月 12日 33.6k 0

推选一篇徐老师的文章,正文如下:

克隆有两种方式:

  • 本地克隆:克隆数据至一个其他的路径。

  • 远程克隆:从远程的MySQL服务器实例上克隆数据。

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

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

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

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

      mysql>INSTALL PLUGIN clone SONAME 'mysql_clone.so'

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

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

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

        mysql>GRANT BACKUP_ADMIN ON *.* 'username';

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

        本地克隆

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

          mysql> CLONE LOCAL DATA DIRECTORY = '/path/to_clone_dir';

          远程克隆

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

            mysql>SET GLOBAL clone_valid_donor_list = 'donor_host:3306';

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

              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服务器实例。

              以上内容是关于克隆插件的详细介绍。

              文章至此。

              相关文章

              Oracle如何使用授予和撤销权限的语法和示例
              Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
              下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
              社区版oceanbase安装
              Oracle 导出CSV工具-sqluldr2
              ETL数据集成丨快速将MySQL数据迁移至Doris数据库

              发布评论