1. 程式人生 > >大表ddl工具online-schema-change使用

大表ddl工具online-schema-change使用

使用 default -m 更新 www. lin 大表 arc ref

(1)下載安裝

    online-schema-change屬於percona-toolkit程序包裏面的一個工具, 需要下載安裝percona-toolkit程序包
    百度雲盤下載地址:https://pan.baidu.com/s/1bp1OOgf 
    yum install percona-toolkit-2.2.7-1.noarch.rpm -y  

(2)online-schema-change工具原理

創建一個和你要執行alter操作的表一樣的空表結構,執行表結構修改,然後從原表中copy原始數據到表結構修改後的表,當數據copy完成以後就會將原表移走,用新表代替原表,默認動作是將原表drop掉。在copy數據的過程中,任何在原表的更新操作都會更新到新表,因為這個工具在會在原表上創建觸發器,觸發器會將在原表上更新的內容更新到新表。如果表中已經定義了觸發器這個工具就不能工作了。

(3)註意點

1、操作的表必須有主鍵或唯一索引否則報錯。
2、如果表有外鍵,除非使用 --alter-foreign-keys-method 指定特定的值,否則工具不予執行。
3、建議在業務低峰區使用
4、操作有風險, 建議提前備份數據
5、當是主從環境,不在乎從的延遲,則需要加--recursion-method=none參數。當需要盡可能的對服務產生小的影響,則需要加上--max-load參數。

(4)常見操作

添加字段:
pt-online-schema-change h=192.168.1.x,u=root,p=your_password,D=db_name,t=table_name   --execute --alter "‘add column col1_test int"

修改字段: 
pt-online-schema-change h=192.168.1.x,u=root,p=your_password,D=db_name,t=table_name   --execute --alter  " ‘MODIFY COLUMN col1_test TINYINT NOT NULL DEFAULT 0 "

刪除字段: 
pt-online-schema-change h=192.168.1.x,u=root,p=your_password,D=db_name,t=table_name   --execute --alter "drop  column "

參考文檔:https://www.cnblogs.com/janehoo/p/5382474.html

大表ddl工具online-schema-change使用