好久没有更新文章了,发现还是偶尔有粉丝关注。所以还是坚持给大家分享一些东西。
最近线上有大表变更。所以给大家分享一下大表变更的工具。
MySQL大表变更主要有原生的online DDL、pt-osc(pt-online-schema-change)、ghost三种工具。
online DDL在5.7、8.0版本会支持更好一点儿,早一点的版本支持比较弱。
pt-osc是percona工具集中的一个工具。应该是应用最广泛的之一。
ghost是用go语言实现的工具。
详细的说明大家参考官网文档。下面附上pt-osc的例子,供大家参考。
pt-online-schema-change -h127.0.0.1 -uroot -pxxxx -P3306 --charset utf8 --chunk-time 0.03 --check-interval 5 --max-lag 3 --critical-load Threads_connected:1000,Threads_running:80 --max-load Threads_connected:1000,Threads_running:80 --set-vars innodb_lock_wait_timeout=1,lock_wait_timeout=5 --tries create_triggers:20:1,drop_triggers:20:1,copy_rows:20:1,swap_tables:20:1 --progress percentage,5 --check-replication-filters --check-alter --recurse=1 --alter-foreign-keys-method=auto --statistics --no-version-check --recursion-method=processlist D=test,t=test111 --alter " ADD COLUMN age int " --no-version-check --print --dry-run
pt-online-schema-change -h127.0.0.1 -uroot -pxxxx -P3306 --charset utf8 --chunk-time 0.03 --check-interval 5 --max-lag 3 --critical-load Threads_connected:1000,Threads_running:80 --max-load Threads_connected:1000,Threads_running:80 --set-vars innodb_lock_wait_timeout=1,lock_wait_timeout=5 --tries create_triggers:20:1,drop_triggers:20:1,copy_rows:20:1,swap_tables:20:1 --progress percentage,5 --check-replication-filters --check-alter --recurse=1 --alter-foreign-keys-method=auto --statistics --no-version-check --recursion-method=processlist D=test,t=test111 --alter " ADD COLUMN age int " --no-version-check --print --execute