[关闭]
@llplmlyd 2023-05-11T11:34:19.000000Z 字数 1345 阅读 169

pt-online-schema-change

数据库-tools


  1. pt-online-schema-change --alter "$sql" D=$DB,t=$table --critical-load="Threads_running=500" --charset=utf8 --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --execute

在线变更的条件/使用限制

  1. ## 原表
  2. CONSTRAINT `fk_foo` FOREIGN KEY (`foo_id`) REFERENCES `bar` (`foo_id`)
  3. ## pt-online-change-schema 语法
  4. --alter "drop foreign key _fk_foo"

在线变更的过程

数据复制过程是在小块数据中执行的,对这些数据进行更改以尝试使它们在特定的时间内执行,
将变更划分成等份的chunk 然后每份chunk执行的时间为chunk-time

在线变更的参数

  1. D=databasename,t=tablename
  2. --no-check-replication-filters
  3. --alter-foreign-keys-method=s How to modify foreign keys so they reference
  4. the new table
  5. #修改外键的方式选择,默认选择auto
  6. --[no]check-replication-filters Abort if any replication filter is set on
  7. any server (default yes)
  8. # 如果设置了复制过滤规则,则停止运行
  9. --[no]check-unique-key-change Avoid pt-online-schema-change to run if the
  10. add an unique index (default yes)
  11. # 如果在线运行添加的是唯一键,则会直接拒绝退出运行
  12. --check-slave-lag=s Pause the data copy until this replica's lag
  13. is less than --max-lag
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注