1# 第一步:先 dry-run 看看会做什么(不会真的执行)
2pt-online-schema-change \
3 --alter "ADD COLUMN remark VARCHAR(500) DEFAULT '' COMMENT '备注'" \
4 D=order_db,t=orders \
5 --user=root --password='YourPassword' \
6 --host=127.0.0.1 --port=3306 \
7 --dry-run
8
9# dry-run 输出:
10# Operation, tries, wait:
11# analyze_table, 10, 1
12# copy_rows, 10, 0.25
13# create_triggers, 10, 1
14# drop_triggers, 10, 1
15# swap_tables, 10, 1
16# update_foreign_keys, 10, 1
17# Starting a dry run. `order_db`.`orders` will not be altered.
18# Creating new table...
19# Created new table order_db._orders_new OK.
20# Altering new table...
21# Altered `order_db`.`_orders_new` OK.
22# Not creating triggers because this is a dry run.
23# Not copying rows because this is a dry run.
24# Not swapping tables because this is a dry run.
25# Not dropping old table because this is a dry run.
26# Not dropping triggers because this is a dry run.
27# dry-run 看到没有报错,可以安心执行了
28
29# 第二步:真正执行
30pt-online-schema-change \
31 --alter "ADD COLUMN remark VARCHAR(500) DEFAULT '' COMMENT '备注'" \
32 D=order_db,t=orders \
33 --user=root --password='YourPassword' \
34 --host=127.0.0.1 --port=3306 \
35 --chunk-size=1000 \
36 --max-lag=1s \
37 --check-interval=1 \
38 --progress time,30 \
39 --execute
40
41# 执行过程输出:
42# Altering `order_db`.`orders`...
43# Creating new table...
44# Created new table order_db._orders_new OK.
45# Altering new table...
46# Altered `order_db`.`_orders_new` OK.
47# 2026-05-06T10:20:35 Creating triggers...
48# 2026-05-06T10:20:35 Created triggers OK.
49# 2026-05-06T10:20:35 Copying approximately 48523167 rows...
50# Copying `order_db`.`orders`: 2% 02:15:00 remain
51# Copying `order_db`.`orders`: 5% 02:05:30 remain
52# ...
53# Copying `order_db`.`orders`: 98% 00:01:20 remain
54# 2026-05-06T12:35:22 Copied rows OK.
55# 2026-05-06T12:35:22 Swapping tables...
56# 2026-05-06T12:35:22 Swapped original and new tables OK.
57# 2026-05-06T12:35:22 Dropping old table...
58# 2026-05-06T12:35:22 Dropped old table `order_db`.`_orders_old` OK.
59# 2026-05-06T12:35:22 Dropping triggers...
60# 2026-05-06T12:35:22 Dropped triggers OK.
61# Successfully altered `order_db`.`orders`.