概述目标:在生产环境进行表结构变更而不阻塞写入,通过影子表与触发器/行迁移实现零停机。工具:GitHub gh-ost、Percona pt-online-schema-change。核心与实战gh-ost示例(添加列):gh-ost \ --host=primary \ --user=migrator --password=secret \ --database=app --table=orders \ --alter="ADD COLUMN currency VARCHAR(3) NOT NULL DEFAULT 'USD'" \ --allow-on-master \ --cut-over=default \ --switch-to-rbr \ --execute pt-online-schema-change示例(索引变更):pt-online-schema-change \ --user=migrator --password=secret --host=primary \ --alter "ADD INDEX idx_orders_user_created (user_id, created_at)" \ D=app,t=orders --alter-foreign-keys-method=auto --execute 安全参数要点:--max-lag=1 --critical-load Threads_running=100 --chunk-time=0.5 示例变更前检查:pt-table-checksum --user=audit --password=secret --host=primary --databases app 一致性校验:pt-table-sync --user=audit --password=secret --host=primary --databases app --print 回滚策略:-- 在cut-over前保留影子表,失败时可切换回原表;保留DDL审计与快照 验证与监控复制与延迟:观察`Seconds_Behind_Master`或`Replica lag`,在延迟高时暂停迁移。负载与错误:监控`Threads_running`与锁等待;设置`critical-load`阈值。业务无感:灰度窗口内进行变更,回归测试关键查询与写入。常见误区忽视外键与触发器导致变更失败;需选择合适`alter-foreign-keys-method`。在高峰时段执行迁移引发延迟尖峰;应选择低峰且设定chunk策略。未进行校验与回滚预案;需在演练环境完成全流程验证。结语借助gh-ost与pt-osc的影子表与安全参数治理,可在生产实现零停机的表结构变更,并以监控与回滚策略保障安全。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部