這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)pt-online-schema-change使用參數(shù)是怎樣的呢,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

pt-online-schema-change使用
工作原理:
1、如果存在外鍵,根據(jù)alter-foreign-keys-method參數(shù)的值,檢測(cè)外鍵相關(guān)的表,做相應(yīng)設(shè)置的處理。沒(méi)有使用 --alter-foreign-keys-method=rebuild_constraints 指定特定的值,該工具不予執(zhí)行
2、創(chuàng)建一個(gè)和源表表結(jié)構(gòu)相同的表(table_new),執(zhí)行alter修改臨時(shí)表結(jié)構(gòu)
3、在原表上創(chuàng)建三個(gè)觸發(fā)器,insert,delete,udpate對(duì)應(yīng)的觸發(fā)器,(用于copy數(shù)據(jù)的過(guò)程中,在原表的更新操作更新到新表)
4、從原表拷貝數(shù)據(jù)到新表,拷貝過(guò)程中在原表的寫操作都會(huì)更新到新建的臨時(shí)表
5、修改外鍵相關(guān)的子表,根據(jù)修改后的數(shù)據(jù),修改外鍵關(guān)聯(lián)的子表
6、rename源數(shù)據(jù)表為old,把新表rename為源表明,并將old表刪除
7、刪除觸發(fā)器
執(zhí)行條件:
1、操作的表必須有主鍵或者唯一索引,否則報(bào)錯(cuò)
2、該表不能定義觸發(fā)器,否則報(bào)錯(cuò)
用法介紹:
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 創(chuàng)建并修改新表,但不創(chuàng)建觸發(fā)器,也不復(fù)制表,或者替換原表,與--execute互斥
--execute 這個(gè)參數(shù)的作用和前面工作原理的介紹的一樣,會(huì)建立觸發(fā)器,來(lái)保證最新變更的數(shù)據(jù)會(huì)影響至新表。注意:如果不加這個(gè)參數(shù),這個(gè)工具會(huì)在執(zhí)行一些檢查后退出
--critical-load 每次chunk操作前后,會(huì)根據(jù)show global status統(tǒng)計(jì)指定的狀態(tài)量的變化,默認(rèn)是統(tǒng)計(jì)Thread_running。目的是為了安全,防止原始表上的觸發(fā)器引起負(fù)載過(guò)高。這也是為了防止在線DDL對(duì)線上的影響。超過(guò)設(shè)置的閥值,就會(huì)終止操作,在線DDL就會(huì)中斷。提示的異常如上報(bào)錯(cuò)信息
--charset=utf8 連接到MySQL后運(yùn)行SET NAMES UTF8
--check-slave-lag 檢查主從延遲
--check-replication-filters 檢查復(fù)制中是否設(shè)置了過(guò)濾條件,如果設(shè)置了,程序?qū)⑼顺?br/>--nocheck-replication-filters 不檢查復(fù)制中是否設(shè)置了過(guò)濾條件
--set-vars 設(shè)置mysql的變量值
--sleep 每個(gè)chunk導(dǎo)入后與下一次chunk導(dǎo)入開(kāi)始前sleep一會(huì),sleep時(shí)間越長(zhǎng),對(duì)于磁盤IO的沖擊就越小
--[no]drop-old-table rename新表后drop舊表,可以no-xxx來(lái)保留舊表
--[no]drop-new-table 如果復(fù)制原表失敗則刪除新表; 也可以no-xxx來(lái)保留新表
--chunk-size chunk的行數(shù),默認(rèn)1000
--chunk-index-columns 有復(fù)合索引的時(shí)候,指定索引列
--critical-load 默認(rèn)Threads_running=50; 每次chunk執(zhí)行后會(huì)自動(dòng)用SHOW GLOBAL STATUS檢查負(fù)載情況,如果超過(guò)閾值則放棄;
--execute 執(zhí)行操作 與 --dry-run互斥
--force 強(qiáng)制運(yùn)行,可能打破外鍵約束
--skip-check-slave-lag 檢查SLAVE的時(shí)候,指定該SLAVE跳過(guò);
--print 將會(huì)顯示工具執(zhí)行的命令
--null-to-not-null 修改允許null值為not null
--preserve-triggers 保留原表的觸發(fā)器,不刪除
--max-lag 默認(rèn)1s, 如果主從延時(shí)的時(shí)間超過(guò)這個(gè)值,則復(fù)制會(huì)暫停"--check-interval"秒時(shí)間;然后再檢查,直到主從延時(shí)小于該值;如果指定了"--check-slave-lag",則只會(huì)檢查指定slave延時(shí),而不是檢查所有slave;如果有任何SLAVE stop了,那么工具會(huì)一直等待下去;每次停止的時(shí)候都會(huì)打印報(bào)告
--ask-pass 連接的時(shí)候會(huì)要求提供密碼
上述就是小編為大家分享的pt-online-schema-change使用參數(shù)是怎樣的呢了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。
本文題目:pt-online-schema-change使用參數(shù)是怎樣的呢-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://www.js-pz168.com/article28/csgdcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、建站公司、Google、網(wǎng)站營(yíng)銷、網(wǎng)站維護(hù)、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容