广告
返回顶部
首页 > 资讯 > 数据库 >MySQL的Clone插件怎么用
  • 426
分享到

MySQL的Clone插件怎么用

2024-04-02 19:04:59 426人浏览 独家记忆
摘要

今天小编给大家分享一下Mysql的Clone插件怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了

今天小编给大家分享一下Mysql的Clone插件怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

MySQL的Clone插件怎么用

克隆插件简介

mysql 8.0.17引入了Clone插件,可以进行本地或从远程Mysql服务器实例进行克隆,克隆的数据是存储在InnoDB中的数据的物理快照,包括schemas、tables、tablespaces和数据字典元数据。克隆操作包括本地克隆和远程克隆。

本地克隆操作:                                                                   远程克隆操作:

MySQL的Clone插件怎么用

安装克隆插件

使用Clone插件进行克隆操作,必须先进行插件的安装和配置。插件的名称是mysql_clone.so,安装有两种方法。

方法1:

MySQL数据库的插件默认放在系统变量plugin_dir对应的目录中,在MySQL服务器启动时使用--plugin-load-add选项加载该插件即可,但该方法需每次启动服务器都需要指定对应的选项,可以将其配置到my.cnf文件中,即:

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

方法2:

运行时加载该插件,使用INSTALL PLUGIN进行安装,并将插件注册到mysql.plugin系统表中:

install plugin clone soname 'mysql_clone.so';

安装后,可在infORMation_schema.plugins表或通过show plugins查看。

克隆本地数据

本地克隆数据是将MySQL数据目录克隆相同服务器或节点到另一个目录 支持的语法如下,

CLONE LOCAL DATA DIRECTORY [=] '/path/to/clone_dir'

执行上述语句,对应的用户需要有BACKUP_ADMIN权限,而且用户创建的文件或表空间必须在数据目录中,同时,克隆的目的地需指定绝对路径,目录完整路径必须存在,但clone_dir必须不存在。

演示:克隆本地数据

1)创建用户

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.25 |
+-----------+
1 row in set (0.00 sec)
mysql> create user clone_admin identified by 'Cl0neTest';
Query OK, 0 rows affected (0.02 sec)
mysql> grant backup_admin on *.* to clone_admin;
Query OK, 0 rows affected (0.10 sec)

2)创建目录

[root@node1 ~]# mkdir /mysql/clone/
[root@node1 ~]# chown -R mysql:mysql /mysql/clone/

3)克隆操作

mysql> clone local data directory='/mysql/clone/clone_data';
Query OK, 0 rows affected (17.09 sec)

4)查看克隆后的文件

[root@node1 ~]# ll /mysql/clone/clone_data/
total 6348816
drwxr-x---. 2 mysql mysql 89 Nov 28 11:26 #clone
-rw-r-----. 1 mysql mysql 9231 Nov 28 11:26 ib_buffer_pool
-rw-r-----. 1 mysql mysql 4294967296 Nov 28 11:26 ibdata1
-rw-r-----. 1 mysql mysql 1073741824 Nov 28 11:26 ib_logfile0
-rw-r-----. 1 mysql mysql 1073741824 Nov 28 11:26 ib_logfile1
drwxr-x---. 2 mysql mysql 6 Nov 28 11:26 mysql
-rw-r-----. 1 mysql mysql 25165824 Nov 28 11:26 mysql.ibd
drwxr-x---. 2 mysql mysql 4096 Nov 28 11:26 sakila
drwxr-x---. 2 mysql mysql 28 Nov 28 11:26 sys
-rw-r-----. 1 mysql mysql 16777216 Nov 28 11:26 undo_001
-rw-r-----. 1 mysql mysql 16777216 Nov 28 11:26 undo_002

5)验证,使用克隆的目录启动数据库

[root@node1 ~]# service mysql.server stop
Shutting down MySQL.... SUCCESS!
[root@node1 ~]# mysqld_safe --datadir=/mysql/clone/clone_data/ --lower-case-table-names=1 --user=mysql
2021-11-28T03:47:11.012900Z mysqld_safe Logging to '/mysql/clone/clone_data/node1.com.cn.err'.
2021-11-28T03:47:11.036181Z mysqld_safe Starting mysqld daemon with databases from /mysql/clone/clone_data

克隆远程数据

克隆远程MySQL服务器实例(donor)并将其传输至执行克隆操作的MySQL实例(recipient),支持的克隆远程数据的语法如下:

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

其中,

  • user 是donor MySQL服务器实例的用户名;

  • password是user的密码;

  • host是donor MySQL服务器实例的hostname地址,目前支持IPv4,不支持IPv6,但可使用别名;

  • port是donor MySQL服务器实例的端口号;

  • DATA DIRECTORY [ = ] 'clone_dir'是可选的子句用于指定接收克隆数据的目录,不指定该选项会覆盖已存在的数据文件,指定该选项可将克隆数据传输至该目录;

  • REQUIRE [ NO ] SSL显式指定是否使用加密连接;

执行克隆操作,克隆插件必须在donor和recipient MySQL服务器实例激活,在donor服务器实例,克隆用户需要BACKUP_ADMIN权限,在recipient服务器实例,克隆用户需要CLONE_ADMIN权限,CLONE_ADMIN权限包括BACKUP_ADMIN和SHUTDOWN权限。

执行CLONE INSTANCE语句需满足下面的先决条件:

  • donor和recipient必须有相同的MySQL服务器版本,克隆插件在8.0.17版本后支持;

  • donor和recipient必须运行在相同的操作系统和平台;

  • 克隆数据,recipient必须有足够的磁盘空间;

  • InnoDB需要在数据目录外面创建表空间,可通过INFORMATION_SCHEMA.FILES查看;

  • 克隆插件必须在donor和recipient激活,可通过SHOW PLUGINS查看;

  • donor和recipient必须有相同的MySQL服务器字符集和排序规则;

  • donor和recipient需要有相同的innodb_page_size和innodb_data_file_path设置;

  • 若克隆加密或页压缩的数据,donor和recipient必须有相同的文件系统块大小;

  • 若克隆加密的数据,需要安全的连接;

  • recipient上的clone_valid_donor_list设置必须包括donor MySQL服务器实例的主机地址;

  • 一次只能有一个克隆操作,克隆期间不能有其他克隆操作,可通过clone_status查看;

  • 克隆插件以1MB数据包和元数据的形式传输数据,在donor和recipient MySQL服务器实例上所需的最小max_allowed_packet是2MB;

  • donor上的Undo表空间文件名必须唯一,当数据克隆到recipient,undo表空间克隆到recipient 上innodb_undo_directory指定的位置或DATA DIRECTORY [ = ] 'clone_dir' 子句指定的目录;

  • 默认,recipient MySQL服务器实例在克隆数据完成后自动重启;

  • 几个变量控制远程克隆操作的各个方面;

演示:克隆远程数据

默认将数据克隆到recipient端的数据目录,并使用donor的数据进行覆盖,然后进行自动重启recipient端的MySQL服务器实例

1)登录到donor MySQL服务器实例,创建用户并安装插件(若安装可忽略)

mysql> create user 'donor_clone_user' identified by 'donor_clone_user';
Query OK, 0 rows affected (0.02 sec)
mysql> grant backup_admin on *.* to donor_clone_user;
Query OK, 0 rows affected (0.01 sec)

2)登录到recipient MySQL服务器实例,创建账户并安装插件,并设置clone_valid_donor_list

mysql> create user recipient_clone_user identified by 'recipient_clone_user';
Query OK, 0 rows affected (0.04 sec)
mysql> grant clone_admin,backup_admin on *.* to recipient_clone_user;
Query OK, 0 rows affected (0.01 sec)
mysql> install plugin clone soname 'mysql_clone.so';
Query OK, 0 rows affected (0.01 sec)
mysql> set global clone_valid_donor_list='192.168.56.53:3306';
Query OK, 0 rows affected (0.00 sec)

3)登录到recipient MySQL服务器实例,使用 recipient_clone_user用户或root用户执行克隆操作,操作完成后会自动重启

mysql> clone instance from 'donor_clone_user'@'192.168.56.81':3306 identified by 'donor_clone_user';
Query OK, 0 rows affected (51.08 sec)

注:将donor的数据克隆到recipient端默认会覆盖其数据文件,也可以指定一个目录进行克隆,如下:

mysql> clone instance from 'donor_clone_user'@'192.168.56.81':3306 identified by 'donor_clone_user' data directory='/mysql/clone/clone_data';
Query OK, 0 rows affected (51.17 sec)

使用新目录启动MySQL服务器实例:

[root@node2 clone]# mysqld --lower-case-table-names=1 --datadir=/mysql/clone/clone_data/ --user=mysql &

以上就是“MySQL的Clone插件怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL的Clone插件怎么用

本文链接: https://www.lsjlt.com/news/72482.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL的Clone插件怎么用
    今天小编给大家分享一下MySQL的Clone插件怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2022-10-19
  • MySQL Clone Plugin(克隆插件,适用8.0.17+)
    MySQL Clone Plugin(克隆插件,8.0.17+) 一. 克隆插件是什么? 允许从本地或远程MySQL服务器实例拷贝数据 可对InnoDB的schemas,tables,tablespaces,数据字典元数据进...
    99+
    2018-06-07
    MySQL Clone Plugin(克隆插件,适用8.0.17+)
  • linux的apt-clone怎么用
    这篇文章将为大家详细讲解有关linux的apt-clone怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用 apt-clone 能帮你备份安装的软件包,并在全新安装的 Ubuntu 系统中恢复它们...
    99+
    2023-06-28
  • git中的clone怎么使用
    这篇文章主要介绍“git中的clone怎么使用”,在日常操作中,相信很多人在git中的clone怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”git中的clone怎么使用”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-26
  • git clone命令怎么用
    本篇内容介绍了“git clone命令怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!git clone我们使用 git cl...
    99+
    2023-06-17
  • jquery中的clone()方法怎么用
    这篇文章主要介绍了jquery中的clone()方法怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 在jq...
    99+
    2022-10-19
  • java的clone方法怎么使用
    在Java中,clone方法是Object类的一个方法,用于创建并返回一个对象的副本。要使用clone方法,必须实现Cloneabl...
    99+
    2023-08-24
    java clone
  • Clone X for Mac软件有什么用
    这篇文章给大家分享的是有关Clone X for Mac软件有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Clone X forMac软件介绍克隆X专门用于复制硬盘。您可...
    99+
    2022-10-19
  • mysql中怎么安装innodb插件
    今天就跟大家聊聊有关mysql中怎么安装innodb插件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 可以用 show engines;或者sh...
    99+
    2022-10-18
  • Java中的clone方法怎么使用
    在Java中,`clone()`方法是用来创建对象的一个浅拷贝副本。要使用`clone()`方法,需要遵循以下步骤:1. 首先,在要...
    99+
    2023-09-15
    Java
  • MySQL插件调用
    简单记录以备学习,如果有误请指出。 一、核心类 Observer_info:观察者 rpl_handler.h class Observer_info {&nb...
    99+
    2022-10-18
  • Java中clone方法怎么使用
    在Java中,clone方法是Object类的一个原生方法,用于创建并返回对象的一个副本。要使用clone方法,需要满足以下两个条件...
    99+
    2023-08-17
    Java clone
  • Netdata Mysql运行情况监控插件怎么用
    这篇文章给大家分享的是有关Netdata Mysql运行情况监控插件怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一:mysql文件配置/usr/local/netdata/etc/netdata &nbs...
    99+
    2023-06-04
  • vue的插件怎么使用
    本篇内容主要讲解“vue的插件怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue的插件怎么使用”吧! vue的插件是为应用...
    99+
    2022-10-19
  • pycharm插件怎么用
    pycharm插件使用方法:1、在PyCharm的菜单栏中选择“Tools”或“插件名称”菜单项;2、在弹出的子菜单中选择所需的功能或操作;3、或者,可以通过在代码编辑器中右键单击并选择相应的菜单项来使用插件。本教程操作系统:windows...
    99+
    2023-12-09
    pycharm python
  • jquery.lazyload插件怎么用
    这篇文章主要介绍jquery.lazyload插件怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!图片动态加载不算什么新东西了,很多大站都在用,优势很明显,主要是节省流量(包括服务器和客户端),给用户的体验也要好...
    99+
    2023-06-08
  • golang插件怎么用
    随着Go语言的不断发展,其生态系统也不断壮大。其中,插件系统是一个非常有用的功能,它使得开发人员能够构建可扩展的应用程序,而无需修改应用程序的核心代码。本文将介绍如何使用Go语言的插件系统,以便您能更好地了解和利用这一功能。概述Go语言中的...
    99+
    2023-05-15
  • MySQL 8.0.18使用clone plugin重建MGR的实现
    假设三节点MGR某个节点异常,需要重新把这个节点加入到MGR集群中,具体操作过程如下: 贡献者端执行(192.168.1.11) DROP USER 'donor_clone_user'@'192.1...
    99+
    2022-10-18
  • MySQL审计插件使用
    下载MySQL审计插件https://github.com/mcafee/mysql-audit/releasesor本文使用mcafee官网下载链接的软件:https://dl.bintray.com/m...
    99+
    2022-10-18
  • 即插即用的Vue Loading插件怎么实现
    这篇文章主要讲解了“即插即用的Vue Loading插件怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“即插即用的Vue Loading插件怎么实现”吧!无论最终要实现怎样的网站,Lo...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作