mysql克隆
- 本地克隆(Local Cloning)
1.1 克隆插件安装
mysql> INSTALL PLUGIN clone SONAME 'mysql_clone.so';
或者
[mysqld]
plugin-load-add=mysql_clone.so
clone=FORCE_PLUS_PERMANENT
# 查看克隆插件加载情况
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'clone';
1.2 创建克隆专用用户
mysql> create user clone_user@'%' identified by 'password';
# backup_admin权限是mysql 8.0才有的备份导出的权限;
mysql> grant backup_admin on *.* to 'clone_user';
1.3 进行本地克隆操作
mkdir -p /clone
chown -R mysql.mysql /clone
mysql -uclone_user -p1
mysql> clone local data directory = '/clone/test';
# 完成本地数据库目录的克隆操作,如果出现异常需要删除克隆目录,在进行重新克隆操作
1.4 查看本地克隆状态
mysql> select stage,state,end_time from performance_schema.clone_progress;
1.5 实现克隆日志观测
mysql> set global log_error_verbosity=3;
# log_warnings 为0, 表示不记录告警信息。
# log_warnings 为1, 表示告警信息写入错误日志。
# log_warnings 大于1, 表示各类告警信息,例如有关网络故障的信息和重新连接信息写入错误日志。
1.6 启动运行克隆实例
mysqld_safe --datadir=/clone/test --port=5555 --socket=/tmp/mysql5555.sock --user=mysql --mysqlx=off &
# 核实查看克隆后数据库信息
- 远程克隆(Remote Cloning)
2.1 克隆插件安装
mysql> INSTALL PLUGIN clone SONAME 'mysql_clone.so';
或者
[mysqld]
plugin-load-add=mysql_clone.so
clone=FORCE_PLUS_PERMANENT
# 克隆插件信息需要在克隆主机的捐赠者和接受者上都进行安装
2.2 查看克隆插件加载情况
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'clone';
2.3 创建克隆专用用户
# 在克隆捐赠者主机上进行授权
mysql> create user test_jz@'%' identified by '1';
mysql> grant backup_admin on *.* to test_jz@'%' ;
# backup_admin权限是mysql 8.0才有的备份导出的权限
# 在克隆接收者主机上进行授权
mysql> create user test_js@'%' identified by '1';
mysql> grant clone_admin on *.* to test_js@'%' ;
# clone_admin权限是mysql 8.0才有的克隆同步数据的权限;
# 说明:可以在克隆捐赠者主机上和接收者主机上均创建两个用户信息,防止克隆同步数据后,接收者主机上不再含有接收用户信息;
2.4 进行远程克隆操作
在克隆接收者主机上进行设置
mysql> set global clone_valid_donor_list='10.0.0.51:3306';
# 设置克隆同步数据的信任列表
# 在克隆接收者主机上进行克隆
mysql -utest_js -p1 -h10.0.0.52 -P3306
mysql> clone instance from test_jz@'10.0.0.51':3306 identified by '1';
# 在接收者主机上实现远程克隆操作
2.5 观测本地克隆状态
mysql> select stage,state,end_time from performance_schema.clone_progress;
# 当克隆数据量比较大的时候,可以使用此SQL语句进行克隆状态查看,在克隆接收者主机上进行查看
mysql> show databases;
# 此时克隆接收者主机上查看到的数据信息,与克隆捐赠者主机上查看到的数据信息一致,即远程克隆操作完成

浙公网安备 33010602011771号