千家信息网

pt-online-schema-change 在线修改表结构

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,1. 参数参数默认值说明--host=xxx --user=xxx --password=xxx连接实例信息,缩写-h xxx -u xxx -p xxx,密码可以使用参数--ask-pass 手动输
千家信息网最后更新 2026年10月31日pt-online-schema-change 在线修改表结构

1. 参数

参数默认值说明
--host=xxx --user=xxx --password=xxx连接实例信息,缩写-h xxx -u xxx -p xxx,密码可以使用参数--ask-pass 手动输入。
--alter结构变更语句,不需要 ALTER TABLE关键字。与原始ddl一样可以指定多个更改,用逗号分隔。
D=db_name,t=table_name指定要ddl的数据库名和表名
--max-load默认为Threads_running=25。每个chunk拷贝完后,会检查 SHOW GLOBAL STATUS 的内容,检查指标是否超过了指定的阈值。如果超过,则先暂停。这里可以用逗号分隔,指定多个条件,每个条件格式: status指标=MAX_VALUE或者status指标:MAX_VALUE。如果不指定MAX_VALUE,那么工具会这只其为当前值的120%。
--max-lag默认1s。每个chunk拷贝完成后,会查看所有复制Slave的延迟情况(Seconds_Behind_Master)。要是延迟大于该值,则暂停复制数据,直到所有从的滞后小于这个值。--check-interval配合使用,指定出现从库滞后超过 max-lag,则该工具将睡眠多长时间,默认1s,再检查。如--max-lag=5 --check-interval=2。
--chunk-time默认0.5s,即拷贝数据行的时候,为了尽量保证0.5s内拷完一个chunk,动态调整chunk-size的大小,以适应服务器性能的变化。
--set-vars使用pt-osc进行ddl要开一个session去操作,set-vars可以在执行alter之前设定这些变量,比如默认会设置--set-vars "wait_timeout=10000,innodb_lock_wait_timeout=1,lock_wait_timeout=60"。
--dry-run创建和修改新表,但不会创建触发器、复制数据、和替换原表。并不真正执行,可以看到生成的执行语句,了解其执行步骤与细节,和--print配合最佳。。
--execute确定修改表,则指定该参数。真正执行alter。-dry-run与-execute必须指定一个,二者相互排斥

1. --alter说明

1.绝大部分情况下表上需要有主键或唯一索引,因为工具在运行当中为了保证新表也是最新的,需要旧表上创建 DELETE和UPDATE 触发器,同步到新表的时候有主键会更快。个别情况是,当alter操作就是在c1列上建立主键时,DELETE触发器将基于c1列。

  1. 子句不支持 rename 去给表重命名。
  2. alter命令原表就不支持给索引重命名,需要先drop再add,在pt-osc也一样。(mysql 5.7 支持 RENAME INDEX old_index_name TO new_index_name)。但给字段重命名,千万不要drop-add,整列数据会丢失,使用change col1 col1_new type constraint(保持类型和约束一致,否则相当于修改 column type,不能online)
  3. 子句如果是add column并且定义了not null,那么必须指定default值,否则会失败。
  4. 如果要删除外键(名 fk_foo),使用工具的时候外键名要加下划线,比如--alter "DROP FOREIGN KEY _fk_foo"

2. 使用限制

  1. 原表上不能有触发器存在
  2. 在使用之前需要对磁盘容量进行评估。因为数据量会多一倍

3. 使用示例

1. 添加字段

pt-online-schema-change --user=user --password=password --host=10.0.201.34  --alter "ADD COLUMN f_id int default 0" D=confluence,t=sbtest3 --print --execute

数据 参数 工具 触发器 情况 拷贝 指标 时候 支持 检查 多个 子句 字段 条件 索引 语句 逗号 保证 延迟 原始 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 重生之互联网科技帝国 易通互联网络科技有限公司 米客互联网科技 融贸通互联网科技 济南和联互联网科技有限公司 语蝶互联网科技有限公司 杭州壁岐互联网科技有限公司 广州新华互联网科技学校电竞方面 烟台灵鸽互联网科技有限公司 每天都有哪些好的互联网科技 伍佰万互联网科技怎么赚钱 电子商务与互联网科技的关系 互联网科技实习生岗位 云南省自由互联网科技有限公司 卡尔迅互联网科技有限公司 张家口科技产业互联网平台 马化腾互联网科技教学 互联网科技大佬云集 互联网科技企业文化 株洲百竞科技的互联网营销顾问 百单网互联网科技有限公司怎么样 互联网巨头科技公司 互联网科技汛 联恩商钥互联网科技有限公司 消费医药和互联网科技 互联网科技和信息 厦门江牛科技互联网 互联网科技手机排行榜 亚光科技低轨卫星互联网 黑龙江互联网科技公司
0