Carry の Blog Carry の Blog
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • Python
  • Shell
  • MySQL8-SOP手册
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carry の Blog

好记性不如烂键盘
首页
  • Nginx
  • Prometheus
  • Iptables
  • Systemd
  • Firewalld
  • Docker
  • Sshd
  • DBA工作笔记
  • MySQL
  • Redis
  • TiDB
  • Elasticsearch
  • Python
  • Shell
  • MySQL8-SOP手册
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • MySQL

    • MySQL8一键安装配置优化
    • MySQL导出CSV格式解决乱码
    • MySQL 角色管理
    • MySQL网络抓包审计
    • MySQL性能压测
    • MySQL配合Consul读写分离
    • Gh-ost重建表,清除表碎片率
    • MySQL MGR配合MySQL-router实现innodb-cluster
    • MySQL 快速分析binlog定位问题
    • MySQL执行计划分析
    • DBA常用SQL和命令整理备查
    • mysqldump实时同步数据
    • MySQL的事务隔离级别
    • MySQL存储过程批量生成数据
    • MySQL insert on duplicate key update,replace into , insert ignore的理解
    • MySQL不同字符集之间的区别和选择
    • MySQL为什么有时候会选错索引
    • MySQL死锁问题
    • MySQL使用SQL语句查重去重
    • MySQLdump逻辑备份
    • MySQL主从跳过异常GITD
    • MySQL8设置slowlog记录所有语句
    • MySQL8快速克隆插件使用指南
      • 环境准备
      • 1. 安装 clone 插件
        • 在主库执行
        • 在从库执行
      • 2. 创建用户并授权
        • 在主库执行
        • 在从库执行
      • 3. 执行克隆任务
        • 在从库执行
      • 4. 启动复制
        • 在从库执行(重启后)
      • 5. 克隆过程中的状态监控
        • 在从库执行
      • 6. 跨机房传输限速设置
        • 在主库执行
      • 7. 使用限制
    • MySQL8双1设置保障安全
    • MySQL锁
    • innodb cluster安装
    • MySQL里的left join 和right join以及inner join
    • optimize table和 analyze table的区别
    • MySQL 字段的区分度计算公式
    • MySQLReplicaSet 安装
    • 脚本实现MySQL ReplicaSet 高可用
    • MySQL 的Left join,Right join和Inner join 的区别
    • MySQL45讲学习笔记
  • Redis

  • Keydb

  • TiDB

  • MongoDB

  • Elasticsearch

  • Kafka

  • victoriametrics

  • BigData

  • Sqlserver

  • 数据库
  • MySQL
Carry の Blog
2022-09-03
目录

MySQL8快速克隆插件使用指南

# 使用 MySQL 8.0 克隆插件快速搭建主从复制

MySQL 8.0 的 clone 插件提供了一种高效的方式来克隆数据实例,便于快速创建 MySQL 实例,并支持主从复制和组复制的搭建。本文将介绍如何使用 MySQL 8.0 clone 插件来快速搭建主从复制。

# 环境准备

在开始之前,请确保您的环境符合以下要求:

  • MySQL 版本:8.0.19 或更高(MySQL 8.0.17 版本后才引入 clone 插件)
  • 主库 IP 地址:192.168.56.201
  • 从库 IP 地址:192.168.56.202

本文将通过实例操作,演示如何从主库克隆数据到从库,并在克隆完成后搭建主从复制。

# 1. 安装 clone 插件

# 在主库执行

-- 安装克隆插件
INSTALL PLUGIN clone SONAME 'mysql_clone.so';

-- 验证插件安装
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME='clone';
1
2
3
4
5

# 在从库执行

-- 安装克隆插件
INSTALL PLUGIN clone SONAME 'mysql_clone.so';

-- 验证插件安装
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME='clone';
1
2
3
4
5

# 2. 创建用户并授权

# 在主库执行

-- 创建复制账号
CREATE USER 'repl'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

-- 创建克隆用户并授权
CREATE USER 'clone_user'@'%' IDENTIFIED BY 'clone123456';
GRANT BACKUP_ADMIN ON *.* TO 'clone_user'@'%';
GRANT CLONE_ADMIN ON *.* TO 'clone_user'@'%';
1
2
3
4
5
6
7
8

# 在从库执行

-- 只需创建克隆用户并授权
CREATE USER 'clone_user'@'%' IDENTIFIED BY 'clone123456';
GRANT BACKUP_ADMIN ON *.* TO 'clone_user'@'%';
GRANT CLONE_ADMIN ON *.* TO 'clone_user'@'%';
1
2
3
4

# 3. 执行克隆任务

# 在从库执行

-- 设置克隆源(主库地址)
SET GLOBAL clone_valid_donor_list = '192.168.56.201:3306';

-- 开始克隆(从主库克隆数据到从库)
CLONE INSTANCE FROM 'clone_user'@'192.168.56.201':3306 IDENTIFIED BY 'clone123456';
1
2
3
4
5

注意:克隆过程中,从库的数据目录将被清空,请确保没有重要数据。执行克隆命令后,从库会自动重启。

# 4. 启动复制

# 在从库执行(重启后)

-- 查看克隆后的 Binlog 文件和位置
SELECT BINLOG_FILE, BINLOG_POSITION FROM performance_schema.clone_status;

-- 查看 GTID 信息
SELECT @@GLOBAL.GTID_EXECUTED;

-- 配置并启动复制
CHANGE MASTER TO 
    MASTER_HOST='192.168.56.201', 
    MASTER_PORT=3306, 
    MASTER_USER='repl', 
    MASTER_PASSWORD='123456', 
    MASTER_AUTO_POSITION=1;

-- 启动从库复制线程
START SLAVE;

-- 查看从库状态
SHOW SLAVE STATUS\G
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 5. 克隆过程中的状态监控

# 在从库执行

-- 监控克隆状态
SELECT STATE, ERROR_NO, ERROR_MESSAGE FROM performance_schema.clone_status;

-- 监控克隆进度
SELECT STAGE, STATE, END_TIME FROM performance_schema.clone_progress;
1
2
3
4
5

# 6. 跨机房传输限速设置

# 在主库执行

-- 限制克隆过程的网络带宽(单位:MB/s)
SET GLOBAL clone_max_network_bandwidth = 20;  -- 设置为 20MB/s,相当于 160Mbit/s
1
2

# 7. 使用限制

克隆功能的限制包括:

  • 克隆期间不允许在主库执行 DDL 操作(如 truncate table)
  • 克隆的 MySQL 实例版本必须一致
  • 每次只能克隆一个实例
  • 不支持克隆 MySQL 配置信息和 Binlog 日志
  • 仅支持克隆 Innodb 存储引擎的数据
#克隆#主从复制
上次更新: 4/24/2025

← MySQL8设置slowlog记录所有语句 MySQL8双1设置保障安全→

最近更新
01
tidb fast ddl
04-04
02
TiDB配置文件调优 原创
04-03
03
如何移除TiDB中的表分区 原创
04-03
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式