<span>MySQL8.0.17的数据克隆clone功能</span>

################

MySQL8.0.17推出了一个重量级的功能:Clone Plugin,可以对mysql实例进行本地或远程clone

有两方面作用:快速搭建复制和快速备份。

 

 

安装clone插件:

linux上执行:

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


windows上执行:(需要将so换成dll)

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

 

检查插件是否激活:

mysql>  select plugin_name, plugin_status  from information_schema.plugins where plugin_name = 'clone';
+-------------+---------------+ | plugin_name | plugin_status | +-------------+---------------+ | clone | ACTIVE | +-------------+---------------+ 1 row in set (0.00 sec) mysql>

 

 

本地克隆:

windows上执行:(需要将\换成/)

mysql> clone local data directory ="d:/data/apple";
Query OK, 0 rows affected (3.71 sec)

mysql>


linux上执行:

mysql> clone local data directory ="/home/work/apple";

 

 

路径:directory=/home/work/apple

1)路径必须是绝对路径,其中apple必须是不存在该目录

2)最后生成的数据,类似xtrabackup已经apply-log之后的data目录数据,可直接用于MySQL启动

 

 远程克隆:

 

假设将源实例10.10.10.10:3306的数据克隆到目标实例10.10.10.20:3306上:

1)在源实例10.10.10.10:3306上创建克隆账号:

mysql> create user 'clone_src'@'%' identified by '123456';

mysql> grant backup_admin on *.* to 'clone_src'@'%';

2)在目标实例10.10.10.20:3306上创建克隆账号:

mysql> create user 'clone_dst'@'%' identified by '123456';

mysql> grant clone_admin on *.* to 'clone_dst'@'%';


3)在目标实例10.10.10.20:3306上执行克隆操作:

mysql> set global clone_valid_donor_list = '%:3306';

mysql> clone instance from 'clone_src'@'%':3306  identified by '123456' data directory = '/home/work/mysql_3306/tmp/data';

 

 

 查看克隆进度:

# 在目标实例上执行:

mysql> select 
state,

cast(begin_time as datetime) as "start time",

case when end_time is null then lpad(sys.format_time(power(10,12) * (unix_timestamp(now()) - unix_timestamp(begin_time))), 10, ' ')

else lpad(sys.format_time(power(10,12) * (unix_timestamp(end_time) - unix_timestamp(begin_time))), 10, ' ')

end as duration,
source,destination,
binlog_file,binlog_position,
gtid_executed from
performance_schema.clone_status \G;

 

 要求与约束:

 

1)操作系统版本必须一致;

2)mysql主版本号、发行级别、发行系列版本号都必须一致,mysql8.0.19->mysql8.0.20 这种不支持

3)目前仅支持InnoDB引擎,其他引擎不支持,如果有非InnoDB引擎信息会在日志里面显示

4)支持压缩表clone操作,但文件系统的block size需要保持一致

5  在8.0.27之前不支持DDL操作(因为有backup lock),在8.0.27版本及以后,允许DDL操作,但不允许tablespace的操作(比如import、export)

 

 clone功能与xtrabackup备份工具性能比较:

操作系统 CentOS7.3
CPU类型 Silver4210*2
内存型号与大小 DDR4,16G
磁盘类型 SSD固态硬盘
实例数据量 500G
xtrabackup的xbstream流式备份至同机房其他机器的耗时 20分钟
MySQL的remote clone克隆至同机房其他机器的耗时 7分钟

 

 

 https://developer.aliyun.com/article/714009?spm=a2c6h.13262185.0.0.5ab07667eXfKgs

 

####################

全部评论

相关推荐

10-09 09:19
已编辑
沈阳农业大学 C++
修订
丿南烟丶:个人评价可以删掉 两个项目都是轮子项目,把一个转换成应用型项目,把MySQL和redis用起来 另外项目的时间可以标明一下
最后再改一次简历
点赞 评论 收藏
分享
09-16 14:43
已编辑
华南农业大学 游戏后端
背景&nbsp;双一流本硕&nbsp;双非大圆满&nbsp;只找游戏开发相关的岗位。&nbsp;8&nbsp;月初开始秋招到现在&nbsp;投了四五十家吧,&nbsp;目前两&nbsp;offer,&nbsp;不打算继续投了,把剩下的流程走完就开始沉淀了。目前两&nbsp;offer&nbsp;一个是网易互娱测开&nbsp;base&nbsp;广州,一个是江娱互动客户端开发&nbsp;base&nbsp;北京。应该确定网易这个了,说实话北京这个我挺想去的,这家的产品和工作氛围我了解了也不错,是那种踏实做事的,可惜我是广东人。网易的测开是调剂的二志愿,看了下有内部转岗机会,所以打算后面找个时间提前实习,沉淀下再做一个&nbsp;demo&nbsp;作品,写一些&nbsp;shader,增强下图形学渲染的能力,再学点编辑器开发。看到时候内部转岗或者春招继续投客户端开发这样。后面还能再动摇的话应该就灵犀或者腾子了吧(假如这两家确认的是客户端开发岗的话)。-----------------------补下timeline网易互娱&nbsp;测开&nbsp;8.2笔试&nbsp;&nbsp;8.21&nbsp;技术面&nbsp;&nbsp;8.29&nbsp;leader&amp;HRBP面(终面)&nbsp;9.8&nbsp;录用审核(之前一直显示面试中)9.14&nbsp;oc江娱互动&nbsp;客户端开发&nbsp;8.29主程面&nbsp;9.3&nbsp;制作人面&nbsp;9.5&nbsp;BOSS面&nbsp;9.11&nbsp;口头OC&nbsp;9.15&nbsp;正式offer后面考虑了一下&nbsp;&nbsp;感觉还是能走开发就开发吧,测开不太感兴趣,要内部活水转岗还要满1年才能申请。。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务