MySQL在线DDL gh-ost使用总结

MySQL在线DDL gh-ost使用总结

MySQL在线DDL工具gh-ost的使用总结:

1. 安装gh-ost

下载gh-ost的二进制文件,然后将其添加到PATH路径:

wget https://github.com/github/gh-ost/releases/download/v1.1.0/gh-ost_1.1.0_linux_amd64.tar.gz
tar -xvf gh-ost_1.1.0_linux_amd64.tar.gz
mv gh-ost /usr/local/bin/

2. 启动gh-ost格式:

gh-ost -server-id=101 -database=test -table=gh_ost_test -alter="ADD COLUMN c3 INT AFTER c2"

这个命令会在表gh_ost_test上添加一列c3,gh-ost会先创建一个临时表,然后将数据复制过去,完成后再将原表更名,最后将临时表重命名为原表名。

3. 查看gh-ost状态

通过命令可以查看gh-ost的操作状态:

 
gh-ost -server-id=101 -database=test -table=gh_ost_test --show-state

4. 暂停/恢复gh-ost

如果需要暂停gh-ost的执行,可以使用–throttle,然后使用–unthrottle恢复:

gh-ost -server-id=101 -database=test -table=gh_ost_test --throttle
gh-ost -server-id=101 -database=test -table=gh_ost_test --unthrottle

5. gh-ost特性

– 支持ADD COLUMN、DROP COLUMN、MODIFY COLUMN、CHANGE COLUMN等在线DDL操作

– 支持指定数据复制的过滤条件,只同步满足条件的数据

– 支持同时操作多个表

– 对InnoDB表完全透明,不影响业务访问

– 操作过程中可以暂停和恢复

– 支持携带binlog进行灾难恢复

– 具有故障转移和自动恢复能力

gh-ost是MySQL在线DDL操作的秘密武器,使用gh-ost可以无感知地完成MySQL的架构变更,对业务零影响,是MySQL运维过程中不可或缺的工具。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论