製作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
 
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章