前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 8.0的新特性-克隆插件

MySQL 8.0的新特性-克隆插件

作者头像
jeanron100
发布2019-08-12 15:38:14
1.1K0
发布2019-08-12 15:38:14
举报
文章被收录于专栏:杨建荣的学习笔记

这是学习笔记的第 2064 篇文章

今天在睡觉前想起了MySQL 8.0里面的一个很好的特性,克隆插件。这篇文章介绍的很细致,可以参考。

技术分享 | 实战 MySQL 8.0.17 Clone Plugin

当然我算是比较懒的,喜欢追求性价比,即最少的时间做最多的事情。今天也算是用一个小时完整的挑战下自己,来测试一个特性。

从我冒出想法要测试这个特性,发现8.0的软件还没有安装,要整个部署下来,那个时间是很漫长的。我打开MySQL官网,开始下载软件。

结果一看网速才20多K,按照这个速度,500多M的文件需要几个小时,所以果断放弃了。但是爱偷懒的我有另外一个好方法,那就是合理利用资源优势,比如我可以使用云服务器,比如这里使用的是腾讯的服务器,如果配置了腾讯云的软件站点,那速度是杠杠的,所以我从下载到初始化完成,整个过程不到15分钟。

我们来简单说下克隆插件,这个插件从我的理解中和Oracle的热备,Data Guard的文件复制传输很类似,所以试了下这个特性都几乎没有花费太多的功夫就直接上手了。

首先直接安装插件。

mysql> INSTALL PLUGIN clone SONAME 'mysql_clone.so';

Query OK, 0 rows affected (0.48 sec)

同时需要创建一个账户

CREATE USER clone_user@'%' IDENTIFIED by 'password';

GRANT BACKUP_ADMIN ON *.* TO 'clone_user';

使用如下的方式开始克隆,这个是本地克隆的操作方法:

/usr/local/mysql-8.0.17-linux-glibc2.12-x86_64/bin/mysql -uclone_user -ppassword --port=33081 -h127.0.0.1

> CLONE LOCAL DATA DIRECTORY = '/data/mysql_clone/clone_dir';

其中目录clone_dir是不存在的,在克隆的时候会创建。

可以通过如下的方式查看克隆的进度。

mysql> SELECT STAGE, STATE, END_TIME FROM performance_schema.clone_progress;

+-----------+-------------+----------------------------+

| STAGE | STATE | END_TIME |

+-----------+-------------+----------------------------+

| DROP DATA | Completed | 2019-08-08 23:22:05.878982 |

| FILE COPY | Completed | 2019-08-08 23:22:06.548661 |

| PAGE COPY | Completed | 2019-08-08 23:22:06.627186 |

| REDO COPY | Completed | 2019-08-08 23:22:06.627476 |

| FILE SYNC | Completed | 2019-08-08 23:22:07.531942 |

| RESTART | Not Started | NULL |

| RECOVERY | Not Started | NULL |

+-----------+-------------+----------------------------+

7 rows in set (0.03 sec)

我们可以直接启动这个克隆后的实例,假设端口是33083

/usr/local/mysql-8.0.17-linux-glibc2.12-x86_64/bin/mysqld_safe --defaults-file=/data/mysql_clone/clone_dir/my.cnf &

会得到如下的列表。

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

4 rows in set (0.00 sec)

远程克隆的效果就更明显了,不过需要配置两类账户,一个是源端,一个是目标端。

源端的配置:

CREATE USER clone_user2 IDENTIFIED by 'password1';

GRANT BACKUP_ADMIN ON *.* TO 'clone_user2'@'%';

目标端的配置:

CREATE USER clone_user2@'%' IDENTIFIED by 'password2';

GRANT CLONE_ADMIN ON *.* TO 'clone_user2'@'%';

SET GLOBAL clone_valid_donor_list = '127.0.0.1:33081';

远程克隆在目标端操作:

CLONE INSTANCE FROM clone_user2@'127.0.0.1':33081

IDENTIFIED BY 'password1';

可用通过如下的方式查看进度:

mysql> SELECT STAGE, STATE, END_TIME FROM performance_schema.clone_progress;

+-----------+-----------+----------------------------+

| STAGE | STATE | END_TIME |

+-----------+-----------+----------------------------+

| DROP DATA | Completed | 2019-08-08 23:41:44.591132 |

| FILE COPY | Completed | 2019-08-08 23:41:45.248866 |

| PAGE COPY | Completed | 2019-08-08 23:41:45.539937 |

| REDO COPY | Completed | 2019-08-08 23:41:45.646024 |

| FILE SYNC | Completed | 2019-08-08 23:41:46.637973 |

| RESTART | Completed | 2019-08-08 23:41:51.332175 |

| RECOVERY | Completed | 2019-08-08 23:41:53.916695 |

+-----------+-----------+----------------------------+

7 rows in set (0.01 sec)

这个特性对于已有的xtracbackup和分布式复制是一种很好的补充,也使得热备的方式可以更加灵活便捷。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档