制作docker pt-online-schema-change修改表结构工具镜像

 
修改线上的表容易导致线网数据出现问题严重导致数据库崩掉(尤其是主从同步的时候),所以一般不建议直接修改线网的表
一般情况建表的时候最好预留保留字段和json的扩展字段,保留字段用于需要经常排序或者查询的,json扩展字段用于简单的扩展信息
如果实在需要修改表,必须按照pt-online-schema-change 的方式修改,这个的大致原理是:
创建新表-》修改新表的表结构-》新建旧表数据新增或者修改的触发器-》往新表插入数据-》修改旧表表名-》修改新表表名为旧表原表名-》删除旧表以及触发器
 
 
 
 
# 下载
docker pull centos
docker run -it -d --name mysql-tool centos
docker exec -it mysql-tool /bin/bash
[root@localhost admin]# wget percona.com/get/percona-toolkit.tar.gz
# 解压
[root@localhost admin]# tar -zvxf percona-toolkit.tar.gz
[root@localhost admin]# cd percona-toolkit-3.0.13/
# 安装perl依赖
[root@localhost percona-toolkit-3.0.13]#  yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
[root@localhost percona-toolkit-3.0.13]# perl Makefile.PL
# 编译安装
[root@localhost percona-toolkit-3.0.13]# make
制作docker镜像的时候如果没有make需要安装一下make的 yum install make
[root@localhost percona-toolkit-3.0.13]# make install
# 验证
[root@localhost percona-toolkit-3.0.13]# pt-online-schema-change
[root@localhost percona-toolkit-3.0.13]# yum -y install perl-Digest-MD5
yum install perl-DBI
yum install perl-DBD-MySQL
 
退出容器打包镜像
docker commit mysql_tool 容器id
docker save -o mysql_tool.tar mysql_tool:latest
 
然后把这个tar包拷贝到服务器上加载镜像并运行即可
进入容器执行修改数据命令:
pt-online-schema-change --user=root --password="111" --host=192.168.1.1 D=zjiptv,t=test --alter "ADD column boot_times2 int(11) default 0" --charset=utf8 --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --print --execute
 
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章