Mysql Clone Plugin(克隆插件,8.0.17+) 一. 克隆插件是什么? 允许从本地或远程mysql服务器实例拷贝数据 可对InnoDB的schemas,tables,tablespaces,数据字典元数据进
Mysql Clone Plugin(克隆插件,8.0.17+)
# 方式一:配置文件加载插件
[mysqld]
plugin-load-add=mysql_clone.so
# 方式二:使用install plugin语句,会在mysql.plugins表中注册
install plugin clone SONAME "mysql_clone.so";
如果安装报错ERROR 1123 (HY000): Can"t initialize function "clone"; Plugin initialization function failed.
,检查explicit_defaults_for_timestamp
是否开启(1):参考Bug #96281
将本地MySQL数据目录克隆到另一个目录,用户需要BACKUP_ADMIN
权限
# 创建用户和授权
create user "clone_backup"@"localhost" identified by "xxx";
grant backup_admin on *.* to "clone_backup"@"localhost";
# 将数据目录克隆到/backup/clone-local-1823,目录需为绝对路径,且目录需不存在,且路径需要MySQL服务可写
# 不支持克隆数据目录之外的表空间和表
# 可以使用克隆的目录启动MySQL服务
mkdir /backup
chown mysql.mysql /backup
clone local data directory "/backup/clone-local-1823";
# 使用克隆目录启动服务
./bin/mysqld_safe
--datadir=/backup/clone-local-1823/
--port=3309
--user=mysql
--log-error=error.log
--Socket=/tmp/mysql3309.sock
--lower_case_table_names=1
--mysqlx_port=33069
--mysqlx_socket=/tmp/mysqlx3309.sock
--pid-file=mysqld.pid
克隆期间锁占用,会阻塞DDL操作(Waiting for backup lock),DML在clone完成最后阶段会遭遇waiting for handler commit
,克隆数据是执行clone这个时间点的数据快照。
可以克隆到远程机器的当前运行实例的数据目录,会删除当前数据,然后会自动重启服务,也可以通过DATA DIRECTORY
指定一个不存在的绝对路径,将数据克隆到该目录;支持克隆数据目录外的表空间;
克隆准备步骤:
innodb_page_size
和innodb_data_file_path
配置需一致clone_valid_donor_list
参数配置中;max_allowed_packet
最小值需为2MBSELECT TABLESPACE_NAME, FILE_NAME FROM INFORMATION_SCHEMA.FILES WHERE FILE_TYPE LIKE "UNDO LOG";
可检查源端(10.82.30.102:3308):
# 创建用户
create user "clone_server"@"10.82.30.101" identified by "xxx";
grant backup_admin on *.* to "clone_server"@"10.82.30.101";
# 安装插件
install plugin clone SONAME "mysql_clone.so";
目的端(10.82.30.101:3308):
# 创建用户
create user "clone_client"@"localhost" identified by "xxx";
grant clone_admin on *.* to "clone_client"@"localhost";
# 安装插件
install plugin clone SONAME "mysql_clone.so";
# 添加源端IP到白名单
set global clone_valid_donor_list="10.82.30.102:3308";
# 使用clone用户登录
./bin/mysql -S /tmp/mysql3308.sock -uclone_client -p
# 一. 执行clone命令,将数据复制到实例数据目录
clone instance from "clone_server"@"10.82.30.102":3308 identified by "xxx";
# 查看克隆状态
select id,pid,state,source,destination,error_no,error_message,binlog_file,binlog_position from performance_schema.clone_status;
# 二. 执行clone命令,将数据复制到指定目录(目录需不存在,同时MySQL服务有写权限)
mkdir /backup
chown mysql.mysql /backup
# 操作用户还需要BACKUP_ADMIN权限,文档没提及
grant backup_admin on *.* to "clone_client"@"localhost";
clone instance from "clone_server"@"10.82.30.102":3308 identified by "xxx" data directory="/backup/clone-102";
--结束END--
本文标题: MySQL Clone Plugin(克隆插件,适用8.0.17+)
本文链接: https://lsjlt.com/news/6593.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0