
给千万行大表加字段不锁表:pt-online-schema-change 与 gh-ost 实战
一张 5000 万行的订单表要加个索引,直接 ALTER 一跑,写入全卡、连接堆成山、从库延迟飙到几分钟——这是每个 DBA 都挨过的打。MySQL 8.0 的 ALGORITHM=INSTANT 覆盖不了所有场景,真要大表变更得靠 pt-online-schema-change 和 gh-ost 这类影子表工具。一个用触发器、一个靠 binlog,把两条路都跑通,连同坑点一起摊开。
专注 Linux 系统运维与数据库运维技术分享,记录踩坑经验,沉淀最佳实践。

一张 5000 万行的订单表要加个索引,直接 ALTER 一跑,写入全卡、连接堆成山、从库延迟飙到几分钟——这是每个 DBA 都挨过的打。MySQL 8.0 的 ALGORITHM=INSTANT 覆盖不了所有场景,真要大表变更得靠 pt-online-schema-change 和 gh-ost 这类影子表工具。一个用触发器、一个靠 binlog,把两条路都跑通,连同坑点一起摊开。

服务半夜开始报错 accept4() failed (24: Too many open files),或者 Nginx 频繁 502。这种故障十次有八次是文件句柄(fd)耗尽,但光改 ulimit -n 往往没用——因为 systemd 起的服务根本不吃 limits.conf 那套。从内核 file-max 到进程 LimitNOFILE,到定位到底是哪个进程在漏 fd,把每一层都讲透,并给出不停机临时救急和永久修复两条路。

pg_dump 是逻辑备份,做不了时间点恢复,库一大还慢得离谱。真要扛误删表、误更新全表这种事故,得靠物理备份加 WAL 归档的 PITR。从建备份账号、开归档、跑 pg_basebackup,到真的把库恢复到「出事前一秒」,把每一步命令和每个坑都摊开讲。



完全免费的会员管理系统,开箱即用。 支持会员信息管理、积分体系、消费记录等核心功能。 接受定制化开发 —— 无论你需要接入微信支付、定制报表、还是对接现有ERP系统,都可以按需开发,交付源码。