pt-osc 文檔使用說明

pt-osc 文檔使用說明
pt-osc 文檔使用說明
功能介紹:
工作原理:
用法介紹
舉例
功能介紹:
在 alter 操作更改表結構的時候不⽤鎖表,也就是說執⾏ alter 的時候不會阻塞
讀寫的操作

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

用法介紹
pt-online-schema-change [OPTIONS] DSN 
主要介紹常⽤參
數必帶參數,其他參數可自動options 可以自行查看help
1、 DNS: 爲你要操作的數據庫和表
2、 –dry-run: 這個參數不建⽴觸發器,不拷貝數據,也不會替換原表,只是創建和
更改新表。
3、 –execute:會創建籌觸發器,來保證最新的變更數據會影響到新表。 注意:如
果不加這個參數,這個⼯具在執⾏會再製造一些檢查後退出。這一舉措是爲了充分
分析這個工具原理。
4、 –max-log:默認爲 1s 每個 chunks 拷⻉完成後,會查看 check-slave-log 參
數所指定的從庫的延遲信息,如果超過了 max-log 的閥值則暫停複製數據,直到複製延遲⼩於 max-log 的閥值。檢查複製延遲信息依賴於 show slave status 返回中
的 seconds_behind_master 列的值
5、 check-interval:當出現複製延遲暫停複製數據後,按照 check-interval 指定時間週期來檢查復
制延遲,直至延遲時間低於 max-log 閥值然後進⾏拷⻉數據。
6、 –check_size: 用於每次控制每次拷唄數據的大小,默認 1000
7、 –chunk_time: 默認 0.5 動態調整塊的⼤⼩以便每個數據副本花費很長時間執
行。該工作跟蹤複製速度,並在每個數據副本查詢之後調整塊的大小,所以是由於
服務的負載情況來進⾏動態調整。 [將此參數設置爲 0,或者指定 chunk-size,都可
以禁止動態調整]
8、 chunk_size_limit:默認值 4.0; 當需要複製的塊大於設置的 chunk_size 大小,就不復制
9、 –critical-load: default thread_runing = 50
該參數在 copy 每個塊後檢查 show global status,如果負載過⾼則終⽌,如果
不給出, 則⼯具檢查啓動當前值來確定閥值。
10、 –max-load: default threads_running=25
該參數用於拷貝數據每個數據塊的時候進⾏檢查 show global status,如果任何
狀態變量高於閥值會暫停,如果不設置,該⼯具會在檢測到的當前值上再加 20%來
確定閥值(方式 Threads_connected:100 或者 Thread_connected:110)該選項
主要目的是爲了防⽌給服務器添加太多的負載,導致鎖等待以及其他干擾⾏爲。
12、 –[no]drop-new-table
13、 –[no]drop-old-table
默認爲 YES,如果複製失敗後,刪除新表。注意: 執⾏該參數需指定—
nodrop-new-table 複製的新表很⼤, 新的數據都會緩存在 buffer pool 內。
Mysql 在刪除表的過程中 innodb 會將⽂件在 buffer pool 中對應的⻚⾯清
楚。如果這設置 buffer pool 的值過大的話,或者 buffer pool 裏面有很
多需要被 flush 的頁面, 那麼此時要遍歷掃描頁面就會佔用筆較大的時間,
導致其他事物在⽤到 buffer pool 實例時就會阻塞,從⽽影響到整個數據

舉例
pt-online-schema-change
–execute
–no-version-check
–charset=utf8
–user=admin
–nodrop-old-table
–nodrop-new-table
–max-load Threads_running=50 –critical-load Threads_running=100#
把限制增⼤⼀倍。 需要根據機器負載情況來調整
–alter “add column foo int(11) default null” D=test,t=t1,h=127.0.0.1
注意:以下參數是⽤於複製延遲的參數,具體解釋參考⽂檔,需要適當調整。
check_interval
chunk_size
chunk_size_limit
chunk_time

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章