pt-online-schema-change 使用 dsn 方式连接检测从库

2024-07-25 13:35:58 浏览数 (2)

当从库实例与主库实例使用不同端口,或者配置了延迟复制从库(不需要检查延迟时间)时,需要用 dsn 方式手工指定需要检测复制延迟的从库信息。

  • MySQL 版本:8.0.22
  • pt-online-schema-change 版本:3.0.6

1. 主库创建 dsn 表

代码语言:javascript复制
CREATE TABLE test.dsns (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `parent_id` int(11) DEFAULT NULL,
    `dsn` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
  );

2. 插入需要检查的从库信息

代码语言:javascript复制
INSERT INTO test.dsns(dsn) VALUES ("h=172.18.3.221,P=18251");
INSERT INTO test.dsns(dsn) VALUES ("h=172.18.3.46,P=18255");

3. 使用 recursion-method 的 dsn 方法执行 pt-online-schema-change

代码语言:javascript复制
pt-online-schema-change 
--host="172.18.3.162" 
--port=18251 
--user="wxy" 
--password="123456" 
--charset="utf8mb4" 
--chunk-size=10000 
--recursion-method=dsn=t=test.dsns 
--check-interval=10s 
--max-lag=60s 
--nocheck-replication-filters 
--nocheck-unique-key-change 
--no-check-alter 
--critical-load="Threads_running=512" 
--max-load="Threads_running=256" 
D="test",t="t1" 
--alter="add column type smallint default 1 not null comment '类型,1为小视频,2为频道视频';" 
--progress=time,30 
--execute

参考: pt-online-schema-change

0 人点赞