MySQL Online Schema Change Lab
MySQL online schema change lab 的核心責任是讓讀者看到 schema change 的 metadata lock、algorithm、copy / cutover 與 validation evidence。這篇承接 Online Schema Change Tools 與 Metadata Lock Deep Dive。
本文的驗收標準是:你能跑一個低風險 ALTER、觀察 metadata lock、記錄 validation query,並理解 gh-ost / pt-osc 的 cutover evidence。
Direct ALTER Baseline
Direct ALTER baseline 的核心責任是先看 MySQL 原生 DDL 的行為。
1mysql -h 127.0.0.1 -P 33069 -u app_user -papp_pw appdb <<'SQL'
2ALTER TABLE accounts ADD COLUMN email VARCHAR(255) NULL;
3SHOW CREATE TABLE accounts\G
4SQL記錄 ALTER duration、algorithm、lock impact 與 table size。不同 MySQL 版本與 DDL 類型會有不同行為,production 要在 staging dry run。
Metadata Lock Observation
Metadata lock observation 的核心責任是看到 blocker。
開 Session A:
1START TRANSACTION;
2SELECT * FROM accounts WHERE id = 1;保持 transaction 開啟。Session B 執行:
1ALTER TABLE accounts ADD COLUMN note VARCHAR(255) NULL;Session C 查:
1SELECT OBJECT_SCHEMA, OBJECT_NAME, LOCK_TYPE, LOCK_STATUS, OWNER_THREAD_ID
2FROM performance_schema.metadata_locks
3WHERE OBJECT_SCHEMA = 'appdb';完成觀察後,Session A COMMIT。這段 lab 展示 long transaction 如何讓 DDL 等待。
OSC Frame
OSC frame 的核心責任是理解 gh-ost / pt-online-schema-change 的證據,而非要求每個 lab 都安裝工具。
OSC runbook 要記錄:
- Source table、ghost table、migration statement。
- Copy progress、chunk size、throttle condition。
- Replication lag / load threshold。
- Cutover pre-check:long transaction、metadata lock、traffic。
- Cutover duration 與 validation query。
- Rollback / drop ghost table policy。
Cutover 前最重要的是 metadata lock pre-check。工具能降低大部分 copy 風險,但最後 rename / swap 仍需要短暫鎖。
Validation
Validation 的核心責任是證明 schema change 後資料與 query 仍正確。
1mysql -h 127.0.0.1 -P 33069 -u app_user -papp_pw appdb <<'SQL'
2SELECT COUNT(*) FROM accounts;
3SELECT COUNT(*) FROM ledger_entries;
4EXPLAIN SELECT * FROM accounts WHERE tenant_id = 'tenant-a';
5SQL正式 migration 要補 row checksum、null rate、index usage、replication lag 與 application smoke test。
Release Gate
Release gate 的核心責任是形成交付 artifact。
1Migration:
2DDL / OSC command:
3Table size:
4MDL pre-check:
5Duration:
6Validation:
7Rollback:
8Owner:完成本篇後,MDL 事故讀 Metadata Lock Deep Dive;工具選型讀 Online Schema Change Tools。