• MySQL 8.0 克隆(clone)插件快速搭建主从复制


    MySQL 8.0 克隆(clone)插件快速搭建主从复制

    MySQL 8.0 clone插件提供从一个实例克隆数据的功能,克隆功能提供了更有效的方式来快速创建MySQL实例,搭建主从复制和组复制。本文介绍使用 MySQL 8.0 clone 插件快速搭建主从复制的方法。

    环境:

    mysql 8.0.19
    主库:192.168.56.201
    从库:192.168.56.202
    

    本文将通过实例操作,实现从库由主库克隆,克隆完成后,搭建主从复制。

    1、安装clone插件

    主、从节点都需要安装。

    安装克隆插件

    INSTALL PLUGIN clone SONAME 'mysql_clone.so';
    

    检查插件是否安装成功

    mysql> SELECT PLUGIN_NAME,PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME='clone';
    +-------------+---------------+
    | PLUGIN_NAME | PLUGIN_STATUS |
    +-------------+---------------+
    | clone       | ACTIVE        |
    +-------------+---------------+
    

    2、创建用户并授权

    创建复制账号,只需要在主库创建,在克隆完成后,搭建主从复制使用。

    在主库上创建复制账号

    create user repl@'%' identified by '123456';
    grant  replication slave on *.* to 'repl'@'%';
    

    克隆源,也就是主库,需要有【BACKUP_ADMIN】权限,克隆受体,也就是从库,需要【CLONE_ADMIN】权限,为了方便,我们在两个机器上把这两个权限都加上。

    主、从库都需要创建克隆用户并授权

    create user 'clone_user'@'%' identified by '123456';
    grant BACKUP_ADMIN on *.* to 'clone_user'@'%';
    grant CLONE_ADMIN on *.* to 'clone_user'@'%';
    

    3、执行克隆任务:

    在从库上执行克隆命令,如下:

    设置克隆源,将clone_valid_donor_list设置为主库

    SET GLOBAL clone_valid_donor_list = '192.168.56.201:3306';
    

    开始克隆

    CLONE INSTANCE FROM 'clone_user'@'192.168.56.201':3306 IDENTIFIED BY '123456';
    

    在执行克隆时,会先将从库本地的数据目录清空,请确保本地数据目录没有重要数据,可以清空,否则将导致本地数据丢失。

    克隆完成后,从库MySQL实例自动重启。

    4、启动复制

    从库重启完成后,查看Binlog文件、位置和已经执行的GTID。

    SELECT BINLOG_FILE, BINLOG_POSITION FROM performance_schema.clone_status;
    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 statusG
    

    5、克隆过程中的状态监控

    MySQL performance_schema库中提供了clone_status和clone_progress来查询克隆的状态与进度,以便对克隆过程进行监控。

    SELECT STATE, ERROR_NO, ERROR_MESSAGE FROM performance_schema.clone_status;
    SELECT STAGE, STATE, END_TIME FROM performance_schema.clone_progress;
    

    6、使用限制

    clone功能使用限制:
    克隆操作期间,不允许DDL,包括truncate table
    克隆的两个MySQL实例版本必须一致
    一次只能克隆一个实例
    不支持克隆MySQL配置信息
    不支持克隆Binlog日志
    只支持克隆Innodb存储引擎的数据,其他存储引擎的数据不会被克隆

  • 相关阅读:
    python字符串的常用方法
    python基础之数据类型
    python自定义带参数和不带参数的装饰器
    python中logging结合pytest打印日志
    本地的项目上传到gitee仓库步骤--适合小白上手
    Python中的分数运算
    2018年6月23日开通我的Python学习博客
    python多版本兼容性问题:当同时安装Python2和Python3后,如何兼容并切换
    github之关联远程仓库
    SHH验证
  • 原文地址:https://www.cnblogs.com/carry00/p/14100645.html
Copyright © 2020-2023  润新知