您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關pt-online-schema-change使用參數是怎樣的呢,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
pt-online-schema-change使用
工作原理:
1、如果存在外鍵,根據alter-foreign-keys-method參數的值,檢測外鍵相關的表,做相應設置的處理。沒有使用 --alter-foreign-keys-method=rebuild_constraints 指定特定的值,該工具不予執行
2、創建一個和源表表結構相同的表(table_new),執行alter修改臨時表結構
3、在原表上創建三個觸發器,insert,delete,udpate對應的觸發器,(用于copy數據的過程中,在原表的更新操作更新到新表)
4、從原表拷貝數據到新表,拷貝過程中在原表的寫操作都會更新到新建的臨時表
5、修改外鍵相關的子表,根據修改后的數據,修改外鍵關聯的子表
6、rename源數據表為old,把新表rename為源表明,并將old表刪除
7、刪除觸發器
執行條件:
1、操作的表必須有主鍵或者唯一索引,否則報錯
2、該表不能定義觸發器,否則報錯
用法介紹:
pt-online-schema-change --host=ip --port=3306 --user=username --password='password' D=db_name,t=table_name --alter="modify order_id bigint(20) COMMENT '訂單id';" --critical-load="Threads_running=200" --sleep=1 --charset=utf8mb4 --check-slave-lag="192.168.1.2,192.168.1.3" --check-interval=1 --execute
--dry-run 創建并修改新表,但不創建觸發器,也不復制表,或者替換原表,與--execute互斥
--execute 這個參數的作用和前面工作原理的介紹的一樣,會建立觸發器,來保證最新變更的數據會影響至新表。注意:如果不加這個參數,這個工具會在執行一些檢查后退出
--critical-load 每次chunk操作前后,會根據show global status統計指定的狀態量的變化,默認是統計Thread_running。目的是為了安全,防止原始表上的觸發器引起負載過高。這也是為了防止在線DDL對線上的影響。超過設置的閥值,就會終止操作,在線DDL就會中斷。提示的異常如上報錯信息
--charset=utf8 連接到MySQL后運行SET NAMES UTF8
--check-slave-lag 檢查主從延遲
--check-replication-filters 檢查復制中是否設置了過濾條件,如果設置了,程序將退出
--nocheck-replication-filters 不檢查復制中是否設置了過濾條件
--set-vars 設置mysql的變量值
--sleep 每個chunk導入后與下一次chunk導入開始前sleep一會,sleep時間越長,對于磁盤IO的沖擊就越小
--[no]drop-old-table rename新表后drop舊表,可以no-xxx來保留舊表
--[no]drop-new-table 如果復制原表失敗則刪除新表; 也可以no-xxx來保留新表
--chunk-size chunk的行數,默認1000
--chunk-index-columns 有復合索引的時候,指定索引列
--critical-load 默認Threads_running=50; 每次chunk執行后會自動用SHOW GLOBAL STATUS檢查負載情況,如果超過閾值則放棄;
--execute 執行操作 與 --dry-run互斥
--force 強制運行,可能打破外鍵約束
--skip-check-slave-lag 檢查SLAVE的時候,指定該SLAVE跳過;
--print 將會顯示工具執行的命令
--null-to-not-null 修改允許null值為not null
--preserve-triggers 保留原表的觸發器,不刪除
--max-lag 默認1s, 如果主從延時的時間超過這個值,則復制會暫停"--check-interval"秒時間;然后再檢查,直到主從延時小于該值;如果指定了"--check-slave-lag",則只會檢查指定slave延時,而不是檢查所有slave;如果有任何SLAVE stop了,那么工具會一直等待下去;每次停止的時候都會打印報告
--ask-pass 連接的時候會要求提供密碼
上述就是小編為大家分享的pt-online-schema-change使用參數是怎樣的呢了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。