大表ddl工具online-schema-change使用
阿新 • • 發佈:2019-03-01
使用 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使用