MySQL运维实战之Clone插件(10.1)使用Clone插件

news2024/9/20 8:01:13

作者:俊达

clone插件介绍

mysql 8.0.17版本引入了clone插件。使用clone插件可以对本地l或远程的mysql实例进行clone操作。clone插件会拷贝innodb存储引擎表,clone得到的是原数据库的一个一致性的快照,可以使用该快照数据来启动新的实例。clone插件还会记录数据库的binlog位点,可以将clone得到的实例作为源实例的备库。可以通过clone插件实习MySQL InnoDB存储引擎数据的物理备份。MySQL Group Replication中可以使用clone插件来初始化新节点的数据。

clone插件支持本地clone和远程clone两种模式。本地clone将clone数据存放在实例所在主机。远程clone涉及到两个实例,提供数据的实例称为捐赠者(Donor),接收数据的实例称为接收者(Recipient)。捐赠者将clone的数据,通过MySQL协议发送给接受者,接受者将数据存放到数据目录。

使用clone插件

安装clone插件

可以在配置文件中配置:

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

或者通过install plugin命令安装插件:

mysql> install plugin clone soname 'mysql_clone.so';

通过show plugins命令或查询plugins表查看插件状态:

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

+-------------+---------------+
| PLUGIN_NAME | PLUGIN_STATUS |
+-------------+---------------+
| clone       | ACTIVE        |
+-------------+---------------+

本地clone

本地clone得到的数据文件和原实例(被clone的实例)存放在同一台主机。

请添加图片描述

使用clone local命令发起本地clone,需要指定clone数据的存放路径。执行clone命令的账号需要backup_admin权限。

GRANT BACKUP_ADMIN ON *.* TO 'clone_user';

使用clone local命令:

CLONE LOCAL DATA DIRECTORY  '/data/clone/mysql02_backup';

运行mysql的OS账号需要有相应路径的读写权限,不然clone命令会有以下错误:

ERROR 1006 (HY000): Can't create database '/data/clone/mysql02_backup/' (errno: 13 - Permission denied)

如果指定路径已经存在,clone命令也会报错:

ERROR 1007 (HY000): Can't create database '/data/clone/mysql02_backup'; database exists

查看clone状态

通过 performance_schema中的clone_status表,可以查询当前clone操作的状态:

mysql> select * from performance_schema.clone_status\G
*************************** 1. row ***************************
             ID: 1
            PID: 55
          STATE: Completed
     BEGIN_TIME: 2023-08-22 15:11:26.581
       END_TIME: 2023-08-22 15:11:36.646
         SOURCE: LOCAL INSTANCE
    DESTINATION: /data/clone/mysql02_backup/
       ERROR_NO: 0
  ERROR_MESSAGE:
    BINLOG_FILE:
BINLOG_POSITION: 0
  GTID_EXECUTED:
1 row in set (0.00 sec)

使用clone的数据启动实例

clone得到的文件,是原实例的一个一致性的快照,可以使用这些文件来启动mysql实例。clone只备份了innodb表,不备份mysql的配置文件。可手动创建一个配置文件,将datadir指向clone路径,就可以启动mysql实例:

##/data/clone/my.cnf
[mysqld]
port=3333
datadir=/data/clone/mysql02_backup
...
mysqld_safe --defaults-file=/data/clone/my.cnf &

远程clone

远程clone将数据从捐赠者(Donor)复制到接收者(Recipient)。接收者实例原有的数据会被清理掉。

请添加图片描述

使用clone instance命令发起远程clone:

CLONE INSTANCE FROM 'user'@'host':port
IDENTIFIED BY 'password'
[DATA DIRECTORY [=] 'clone_dir']
[REQUIRE [NO] SSL];

命令参数含义:
user:登陆捐赠者实例的用户名

host:捐赠者实例的主机名或IP

port:捐赠者实例的端口

password:捐赠者实例的密码

clone_dir:不指定clone_dir时,会清空接受者实例的datadir目录,并将数据放到datadir指定路径。如果指定了data directory,则该路径需要不存在,mysql服务需要有目录权限。

REQUIRE [NO] SSL:指定传输数据是是否使用加密协议。

远程clone前置条件

使用远程clone需要满足以下几点前置条件:

账号权限,捐赠者的账号需要有backup_admin权限。接受者的账号需要clone_admin权限。clone_admin权限包含backup_admin权限和shutdown权限。

捐赠者和接受者的版本需要保持一致。不仅大版本要一样,小版本也要一样。可使用show variables命令查看版本。

mysql> SHOW VARIABLES LIKE 'version';
+---------------+--------+
| Variable_name | Value  |
+---------------+--------+
| version       | 8.0.32 |
+---------------+--------+

捐赠者和接受者的运行平台和操作系统需要一致。

捐赠者和接受者都需要安装clone插件。

捐赠者和接受者字符集需要一样(character_set_server,collation_server)。

捐赠者和接受者的参数innodb_page_size,innodb_data_file_path需要一样。

接受者上,参数clone_valid_donor_list需要包含捐赠者的地址。

默认情况下,远程clone会在完成数据clone后,关闭接受者实例。需要有控制进程(如mysqld_safe脚本、systemctl等)来拉起接受者实例。如果缺少控制进程,则接受者实例关闭后,无法自动启动。

ERROR 3707 (HY000): Restart server failed (mysqld is not managed by supervisor process).

远程clone操作步骤

1、在捐赠者实例上创建相关账号并授权

mysql> CREATE USER 'donor'@'%' IDENTIFIED BY 'password';
mysql> GRANT BACKUP_ADMIN on *.* to 'donor'@'%';

2、在接受者实例上创建账号并授权

CREATE USER 'recipient'@'' IDENTIFIED BY 'password';
GRANT CLONE_ADMIN on *.* to 'recipient'@'%';

3、登陆接受者实例,发起clone操作

CLONE INSTANCE FROM 'donor'@'host':port
IDENTIFIED BY 'password';

clone完成后,会自动重启接受者实例。

clone插件的限制

8.0.27版本之前,clone时,捐赠者和接受者都不允许进行DDL。从8.0.27版本开始,捐赠者默认可以进行DDL。可以由参数clone_block_ddl进行控制。clone_block_ddl设置为ON时,clone运行时,DDL会被阻塞。

一次只能clone一个实例。

clone插件不会复制mysql参数。clone时,不会将捐赠者实例的参数复制到接受者实例。

clone插件不会复制binlog。

clone插件只复制存储在innodb存储引擎中的数据。不会复制myisam、csv等其他存储引擎的数据。

不支持通过mysql router连接到捐赠者实例

本地clone操作不支持复制使用绝对路径的通用表空间。

更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1931689.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服务器基础2

服务器基础复习02 1.网络管理 nmcli nmcli是NetworkManager的一个命令行工具,它提供了使用命令行配置由NetworkManager管理网络连接的方法。nmcli命令的基本格式为: nmcli [OPTIONS] OBJECT { COMMAND | help }其中,OBJECT选项可以是genera…

PHP旅游门票预订系统小程序源码

旅游门票预订系统:轻松规划,畅游无忧🌍 🎫【一键预订,说走就走】 还在为排队购票浪费时间而烦恼吗?旅游门票预订系统让你告别长龙,享受说走就走的旅行!只需在手机或电脑上轻轻一点…

通过Dockerfile构建镜像

案例一: 使用Dockerfile构建tomcat镜像 cd /opt mkdir tomcat cd tomcat/ 上传tomcat所需的依赖包 使用tar xf 解压三个压缩包vim Dockerfile FROM centos:7 LABEL function"tomcat image" author"tc" createtime"2024-07-16"ADD j…

橙芯创想:香橙派AIPRO解锁升腾LLM与Stable Diffusion的创意密码

文章目录 引言 一. 香橙派AI PRO配置以及展示优秀的扩展能力实物展示 二、Ascend-LLM模型部署开机xshell连接香橙派实战运行部署运行结果分析开发版表现 三、Stable Diffusion文生图性能表现 四、体验总结性能噪音便捷性 引言 在科技的浪潮中,一场融合智慧与创意的盛…

AI 和平台工程对云原生演进的影响:将云之旅自动化到光速

2024 年和云原生 AI 技术的曙光标志着计算能力的重大飞跃。我们正在经历一个新时代,人工智能 (AI) 和平台工程融合在一起,改变云计算格局。人工智能现在正在与云计算融合,我们正在经历一个人工智能超越传统界限的时代&…

IDEA实现NPM项目的自打包自发布自部署

目录 前言 正文 操作背景 NPM自发布 Package自发布 NPM部署 尾声 🔭 Hi,I’m Pleasure1234🌱 I’m currently learning Vue.js,SpringBoot,Computer Security and so on.👯 I’m studying in University of Nottingham Ningbo China&#x1f…

【软件测试】RobotFramework常见问题如何解决 ?

附加-问题解决 1. 执行robot用例的时候提示WebDriverException: Message: invalid argument: cant kill an exited process 查看驱动的log是否是提示 如果是的话,参照第七步安装图形界面 2. jenkins启动后发现打不开jenkins页面的问题解决 打开jenkins页面提…

变频器CE认证如何办理?

随着国际贸易的蓬勃发展,现在越来越多的企业开始将自己的产品销往欧洲市场。然而,要想在欧洲市场上站稳脚跟,产品必须满足一系列的安全和性能标准。其中,CE认证是进入欧洲市场的“通行证”,对于变频器这类电气产品来说…

Java实验4

实验内容 考试题 要求在一个界面内至少显示5道选择题,每道题4个选项。题目从数据库读取。表结构自定义。 另有2个命令按钮,分别为“重新答题”(全部选项及正确答题数清空)和“提交”(计算),在…

2024最新最全MidJourney新手入门教程 参数设置教程

文章目录 MJ的基本使用提示词基本提示高级提示提示说明提示词分类Vary Region多提示分割 MJ 命令blenddescribeinfosettingshorten MJ 参数Aspect Ratios 横纵比Chaos 混乱程度Character Reference 引用图像no 不包含Quality 质量Repeat 重复Seeds 种子Stop 停止Sytle 风格Styl…

W外链创建抖音私信卡片教程,私信卡片跳转微信工具

W外链地址wai.cn 在数字化时代的浪潮中,私域流量的价值愈发凸显,成为企业获取用户、建立品牌忠诚度、提升转化率的关键手段。抖音,作为当下最热门的短视频社交平台之一,其用户基数庞大、互动性强,为企业私域引流提供了…

自己搭建邮件服务器时如何保障数据安全性?

自己搭建邮件服务器的要求?如何正确配置邮件服务器? 自己搭建邮件服务器成为许多企业和个人用户的选择,以实现更高的自主性和定制化需求。下面,AokSend将从几个方面探讨如何在自己搭建邮件服务器的过程中,有效保障数据…

哈默纳科HarmonicDrive减速机组装注意事项

在机械行业中,精密传动设备HarmonicDrive减速机对于维持机械运作的稳定性和高效性起着至关重要的作用。然而在减速机的组装过程中,任何一个细微的错误都可能导致其运转时出现振动、异响等不良现象,严重时甚至可能影响整机的性能。因此&#x…

内衣裤洗衣机有必要买吗?五样超卓臻品专业推荐!

在当今繁忙的生活中,内衣洗衣机已成为我们日常生活中不可或缺的家电。但是,面对市场上众多品牌的内衣洗衣机,那么,到底内衣洗衣机哪个牌子好?本次我将在这篇文章中探讨内衣洗衣机的选购策略,以帮助大家找到…

软件测试好就业吗?软件测试行业的就业前景分析

一、软件测试的重要性 在当今信息化的时代,软件产品的质量至关重要。随着软件行业的蓬勃发展,软件测试作为保障软件质量的关键环节,其重要性日益凸显。软件测试工程师的角色不再仅仅局限于找出软件的缺陷,他们更是软件质量保障的守…

Adobe XD中文设置指南:专业设计师的现场解答

Adobe XD是世界领先的在线合作UI设计工具。它摆脱了Sketch、Figma等传统设计软件对设备的依赖,使设计师可以随时随地使用任何设备打开网页浏览器,轻松实现跨平台、跨时空的设计合作。然后,为了提高国内设计师的使用体验,Adobe XD如…

Django F()函数

F()函数的作用 F()函数在Django中是一个非常强大的工具,主要用于在查询表达式中引用模型的字段。它允许你在数据库层面执行各种操作,而无需将数据加载到Python内存中。这不仅提高了性能,还允许你利用数据库的优化功能。 字段引用 在查询表达…

《藏语翻译通》App功能升级,支持藏文词典在线查单词!iPhone用户推荐使用的藏语学习工具!

《藏语翻译通》App上线了藏文词典查单词功能,该功能可以帮助你更有效地学习藏语,以及掌握工作中涉及到的专业术语。本次更新提供了藏汉词典、藏汉大词典、新术语在线查单词功能。 打开App Store搜索关键词:藏文词典 下载这个官方软件 点击首…

如何理解Spring事务

1 Spring事务是干什么的,解决了什么 Spring事务其实准备来讲叫Spring事务管理,拿mysql来说,事务已在其默认引擎innodb中实现了,我们是通过它提供的sql指令去开启事务、提交/回滚事务。 那么有的疑问是什么呢? 事务不…

企业资源管理的变革:ERP软件的消失与整合型OA系统的崛起

企业资源管理在现代企业运营中起着至关重要的作用。过去,ERP(Enterprise Resource Planning,企业资源计划)系统因其强大的整合能力和广泛的功能性,被誉为企业管理的中枢。然而,随着技术的迅猛发展和企业需求…