概念介绍说明:

利用clone plugin方式可以实现数据迁移备份恢复操作,同样也可以利用克隆技术实现主从数据同步操作,即完成快速构建从库;

主要应用于运行一段时间的数据库,需要进行主从架构环境的构建时,可以实现主库数据信息的快速迁移;

利用克隆复制备份恢复迁移数据信息,可以使备份恢复数据的效率提升;

功能应用实践:

① 主从复制克隆功能实现环境:

为了实现克隆机制的主从复制,需要准备好主从架构环境:

主机角色 主机名称 地址信息
主库服务器 db-01 192.168.10.101
从库服务器 db-03 192.168.10.103

对原有数据库服务环境清理:

# 清理原有从库配置应用(db03
db03 [(none)]>stop slave;
db03 [(none)]>reset slave all;

# 准备数据库空白的节点
[root@master-03 ~]# pkill mysqld
[root@master-03 ~]# rm -rf /data/3306/*
[root@master-03 ~]# rm -rf /data/binlog/*
[root@master-03 ~]# mv /etc/my.cnf /tmp
[root@master-03 ~]# mkdir -p /data/3306/data /data/binlog
[root@master-03 ~]# chown -R mysql.mysql /data/*
-- 在新的数据库节点进行以上清理操作;

cat >/etc/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
server_id=53
port=3306
secure-file-priv=/tmp
autocommit=0
log_bin=/data/binlog/mysql-bin
binlog_format=row
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1
[mysql]
prompt=db03 [\\d]>
EOF
-- 从库db03配置文件编写

[root@master-03 ~]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data
-- 进行数据库所有节点初始化操作

[root@master-03 ~]# /etc/init.d/mysqld start
-- 启动数据库相应节点服务

② 主从复制克隆环境功能配置:

# 实现免交互方式安装插件和创建用户(主库操作)
[root@master ~]# mysql -e "INSTALL PLUGIN clone SONAME 'mysql_clone.so';create user test@'%' identified by '123456';grant backup_admin on *.* to 'test'@'%';"

# 实现免交互方式安装插件和创建用户(从库操作)
[root@master-03 ~]# mysql -e "INSTALL PLUGIN clone SONAME 'mysql_clone.so';create user test@'%' identified by '123456';grant clone_admin on *.* to 'test'@'%';set global clone_valid_donor_list='192.168.30.101:3306';"

③ 主从复制克隆功能应用启动:

# 从库上启用克隆功能
[root@master-03 ~]# mysql -utest -p123456 -h192.168.30.103 -P3306 -e "clone instance from test@'192.168.30.101':3306 identified by '123456';"

# 实现克隆状态情况监控(可以实现每秒监控)
[root@master-03 ~]# mysql -e "select stage,state,end_time from performance_schema.clone_progress;"
+-----------+-----------+----------------------------+
| stage     | state     | end_time                   |
+-----------+-----------+----------------------------+
| DROP DATA | Completed | 2022-12-11 23:58:04.373236 |
| FILE COPY | Completed | 2022-12-11 23:58:05.772489 |
| PAGE COPY | Completed | 2022-12-11 23:58:05.781343 |
| REDO COPY | Completed | 2022-12-11 23:58:05.784746 |
| FILE SYNC | Completed | 2022-12-11 23:58:06.123775 |
| RESTART   | Completed | 2022-12-11 23:58:07.796073 |
| RECOVERY  | Completed | 2022-12-11 23:58:08.819861 |
+-----------+-----------+----------------------------+
-- 可以实现每秒关注监控输出的结果信息,最后看到RECOVERY,并且状态为Completed,表示克隆完毕

④ 主从复制克隆完毕实现主从:

# 主从方式构建一:利用position
[root@master-03 ~]# mysql -e "select binlog_file,binlog_position from performance_schema.clone_status;"
+------------------+-----------------+
| binlog_file      | binlog_position |
+------------------+-----------------+
| mysql-bin.000002 |            1210 |
+------------------+-----------------+

# 主从方式构建二:利用gtid
[root@master-03 ~]# mysql -e "change master to master_host='192.168.30.101',master_user='repl',master_password='123456',master_auto_position=1;start slave"

# 核实展示最后主从状态结果
[root@master-03 ~]# mysql -e "show slave status\G"|grep "Running:"
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

说明:利用clone功能实现主从,可以利用脚本自动化完成,并且可以实现主从的自愈能力,为实现主从功能上云提供方便;