pt-online-schema-change工具依賴于觸發(fā)器的機制去實現(xiàn)表的無鎖DDL。那我們試想在一主一從的情況下,有個大表需要執(zhí)行DDL操作,為了驗證該操作的執(zhí)行時長,先用pt-online-schema-change工具在從庫上執(zhí)行變更。確認沒有問題后再在主庫上執(zhí)行變更。當然,在執(zhí)行之前是需要開啟會話級的sql_log_bin=0以避免記錄到binlog。
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供賓陽網站建設、賓陽做網站、賓陽網站設計、賓陽網站制作等企業(yè)網站建設、網頁設計與制作、賓陽企業(yè)網站模板建站服務,十年賓陽做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
但是我們從官方文檔中獲知如下:
很明顯,如果主從架構下,binlog的日志格式是row的話,依賴觸發(fā)器機制的pt-online-schema-change是會造成數(shù)據(jù)丟失的。因為增量的數(shù)據(jù)無法通過觸發(fā)器去收集。也就是說,在基于主庫的binlog為row格式的情況下,從庫的觸發(fā)器是不會起作用的。因為主庫本身通過觸發(fā)器產生的變更已經寫入binlog同步到從庫。如果從庫的觸發(fā)器也生效的話,就會出現(xiàn)重復。
總結:在基于主從復制架構下,如果主庫binlog的日志格式為row情況下,pt-online-schema-change工具必須在主庫執(zhí)行才能避免主從數(shù)據(jù)不一致。如果日志格式是statement的話,則可以先在從庫執(zhí)行pt-online-schema-change再在主庫執(zhí)行。但是目前官方也建議參數(shù)binlog_format設置為row,而非statement,以避免某些情況下的主從數(shù)據(jù)不一致發(fā)生。
名稱欄目:pt-online-schema-change的bug2
網站網址:http://chinadenli.net/article48/gepghp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供Google、面包屑導航、軟件開發(fā)、、搜索引擎優(yōu)化、網站內鏈
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)