欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

mysql中pt-online-schema-change怎么用

這篇文章主要介紹了MySQL中pt-online-schema-change怎么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

玉溪ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

pt-online-schema-change

限制條件

1 外鍵限制,配合使用–alter-foreign-keys-method參數(shù)

2 必須存在主鍵

3 表上不能存在after(增刪改)三個(gè)觸發(fā)器

alter-foreign-keys-method說明

兩種方式(t1,t2有外鍵依賴于t1)

rebuild_constraints(優(yōu)先

它先通過alter table t2 drop fk1, add _fk1重建外鍵,指向新表

再rename t1 t1_old,_t1_new t1 交換表名,不影響客戶端

刪除舊表t1_old

如果t2表太大,以致alter操作耗時(shí)過長,pt-osc有可能會強(qiáng)制選擇另外一種方式drop_swap

drop_swap

禁用t2表外鍵約束檢查,設(shè)置FOREIGN_KEY_CHECKS = 0

然后drop t1原表 rename _t1_new t1

這種方式速度快,也不阻塞請求,但是有風(fēng)險(xiǎn)。drop表的瞬間到rename過程,t1表是不存在,遇到請求會報(bào)錯

pt-osc和online ddl對比

1 ddl在必須copy table時(shí)成本很高,不宜采用?

2 pt-osc存在觸發(fā)器時(shí),就用不了

3 修改index,foreign-key,column-name優(yōu)先使用ddl,并指定ALGORITHM=INPLACE

示例

1 添加新列

pt-online-schema-change --user=user --password=xxx --host=ip --port=33066 --alter “add column col1 VARCHAR(64) NULL COMMENT ‘訂單號’” D=sy,t=t1 --execute --charset=utf8  --nocheck-replication-filters --max-load=“Threads_running=20”

2 修改列類型

pt-online-schema-change --user=user --password=xxx --host=ip --port=3306 --alter “convert to character set utf8mb4 collate utf8mb4_bin” D=db1,t=t1  --execute --nocheck-replication-filters --charset=utf8 --max-load=“Threads_running=20”

3 添加刪除索引

pt-online-schema-change --user=user --password=xxx --host=ip --port=3306 --alter “DROP KEY cid,add key idx_game_id(game_id)” D=db1,t=t1 --execute --charset=utf8  --nocheck-replication-filters --max-load=“Threads_running=20”

4 修改主鍵(假設(shè)原主鍵是復(fù)合主鍵)

會涉及以下修改動作

    4.1刪除復(fù)合主鍵

    4.2添加新的自增主鍵

    4.3原復(fù)合主鍵字段,修改成唯一索引

        ps: 修改主鍵影響最大的就是delete觸發(fā)器,新表t2上的主鍵字段在舊表t1上不存在,無法根據(jù)主鍵條件出發(fā)刪除新表t2數(shù)據(jù),如果表上相關(guān)列上沒有索引或者沒有主鍵,那么刪除的代價(jià)非常高,所以在刪除主鍵的同時(shí)一定添加復(fù)合索引

–alter “drop primary key, add column id auto_crement primary key,add unique key uk_pk_k(pk,k)”

5 重建表

pt-online-schema-change --user=user --password=xxx --host=ip --port=3306  --alter “engine=innodb” D=db1,t=t1 --execute --nocheck-replication-filters --charset=utf8 --max-load=“Threads_running=20” --max-lag=2s --chunk-time=1s

參數(shù)說明

execute :該參數(shù)用于執(zhí)行alter操作,如果不加的話,只會做一些安全檢查后退出。一定要確保知道如何使用該工具并有合適的備份后,再添加該參數(shù)。使用該參數(shù)時(shí),除了對對象表所需的權(quán)限外,還需要SUPER, REPLICATION SLAVE兩種權(quán)限。

nocheck-replication-filters:

max-lag:中斷數(shù)據(jù)拷貝直到所有的復(fù)制延遲都少于這個(gè)值,默認(rèn)為1S。每一個(gè)chunk拷貝完成后,OSC都會去show salve status通過Seconds_Behind_Master來確定所有的復(fù)制情況,任何相關(guān)的slave的復(fù)制延遲高于該值時(shí),OSC就會停止數(shù)據(jù)拷貝–check-interval參數(shù)所指定的時(shí)間,然后重新發(fā)起檢查,直到延遲降低到該值以下。

charset:

max-load:默認(rèn)threads_running = 25,  每個(gè)chunk(chunk是啥)拷貝完,會檢查show global status,檢查指標(biāo)是否超過了指定tr線程數(shù)的閥值,如果超過,數(shù)據(jù)拷貝暫停。

critical-load:默認(rèn)threads_running = 50,每個(gè)chunk(chunk是啥)拷貝完,會檢查show global status,檢查指標(biāo)是否超過了指定tr線程數(shù)的閥值,如果超過 終止pt進(jìn)程

chunk-time:默認(rèn)是0.5秒,工具會根據(jù)當(dāng)前系統(tǒng)運(yùn)行繁忙程度計(jì)算出在該指定時(shí)間內(nèi)可以處理的數(shù)據(jù)行數(shù)(即chunks),(相比較chunk-size靈活)

chunk-size:指定chunk的大小

charset:  指定連接的字符集,遠(yuǎn)程操作記得加上,否則可能出現(xiàn)亂碼  ,--charset=utf8  或 D=db1,t=t1,A=utf8

ps:

threads_running代表非sleeping狀態(tài)的線程數(shù)量。

threads_running增長的原因:

1 客戶端連接暴增

2 系統(tǒng)性能瓶頸,cpu io 內(nèi)存 swap

3 異常sql

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“mysql中pt-online-schema-change怎么用”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

網(wǎng)頁名稱:mysql中pt-online-schema-change怎么用
URL網(wǎng)址:http://www.chinadenli.net/article18/iighgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)云服務(wù)器網(wǎng)站收錄域名注冊品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管