美文网首页
MySQL系列 Pt-osc

MySQL系列 Pt-osc

作者: 开心的蛋黄派 | 来源:发表于2024-01-11 20:49 被阅读0次

1. 组合使用参数:

当使用 pt-online-schema-change 时,以下参数组合可能是一个常见的选择:

pt-online-schema-change  --user=USERNAME  --password=PASSWORD --host=HOSTNAME D=DATABASE,t=TABLE  --sock=/tmp/mysql.sock  --alter 'YOUR_ALTER_STATEMENT'  --charset=utf8  --alter-foreign-keys-method=auto --maxload='Threads_running=35,Threads_connected=10000' --critical-load='Threads_running=200,Threads_connected=10000'  --no-check-replication-filters   --recursion-method=none   --print --execute

其中:

--no-check-replication-filters:此参数表示不考虑复制过滤规则。

--recursion-method=none:此参数指定不使用默认方法来发现从库,必须显式指定。

--max-load:默认 Threads_running=25。一旦超过此值,pt-online-schema-change 可能会暂缓任务执行。根据实际情况,可以调整此参数。

2. 无法生效的情况:

1、表没有任何唯一性索引。

2、表本身拥有触发器。

3、表本身拥有外键(尽量避免使用 pt-online-schema-change)。

4、捕捉到 warning 级别的 MySQL 错误,例如 1264 错误。

3. 风险情况:

1、在给表增加唯一性索引时,务必确保该列没有重复数据,否则可能会导致数据丢失。可以通过 count(distinct(column_name)) 的值来判断。

2、有几率触发死锁情况。

3、消费 binlog 可能有异常,务必及时通知消费端。

4、在高负载情况下,使用 pt-online-schema-change 应特别谨慎。

4. pt-online-schema-change 强制终止清理流程:

1、终止与 pt-online-schema-change 相关的进程。

2、删除触发器(如果存在)。如果遇到 MDL 锁,需要进行 MDL 锁定位(通常是由慢查询导致的)。

3、在确认触发器已被删除后,执行 drop _table_new 操作。

    请注意,在使用 pt-online-schema-change 或进行任何数据库操作时,务必先备份数据,以防万一。

相关文章

网友评论

      本文标题:MySQL系列 Pt-osc

      本文链接:https://www.haomeiwen.com/subject/zbotodtx.html