久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mysql中如何使用pt

163次閱讀
沒有評論

共計 3368 個字符,預計需要花費 9 分鐘才能閱讀完成。

這篇文章給大家分享的是有關 mysql 中如何使用 pt-table-checksum 和 pt-table-sync 的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。

pt-table-checksum 和 pt-table-sync 是 percona-toolkit 工具中的功能,用來檢測主從數據一致性和修復主從不一致。

下面通過一組實驗學習這兩個功能的使用

1、主庫創建表并插入數據

CREATE TABLE `NewTable` (

`id`  int(8) NULL ,

`name`  varchar(32) NULL ,

PRIMARY KEY (`id`)

) ;

insert into newtable values(1, leo

insert into newtable values(2, mike

insert into newtable values(3, jack

2、從庫執行下面語句,讓主從不一致

insert into newtable values(4, lucy

insert into newtable values(5, petter

update newtable set name= john where id =1

3、測試數據如下

主庫:

mysql select * from test.newtable;

+—-+——+

| id | name |

+—-+——+

|  1 | leo  |

|  2 | mike |

|  3 | jack |

+—-+——+

3 rows in set (0.00 sec)

從庫:

mysql select * from test.newtable;

+—-+——–+

| id | name   |

+—-+——–+

|  1 | john   |

|  2 | mike   |

|  3 | jack   |

|  4 | lucy   |

|  5 | petter |

+—-+——–+

5 rows in set (0.00 sec)

4、pt-table-checksum 參數介紹、使用

–port=               主庫端口

–host=               主庫 IP

–databases=       校驗的數據庫

–tables=           校驗 的表名,只指定數據庫不指定表名,校驗數據庫下所有表

–user=               用戶名(該用戶在從庫上也要有,同時需要權限)

–password=       用戶密碼

–replicate           指定 checksum 存儲的庫和表

–no-check-binlog-format       忽略 binlog 的格式,如果 binlog 是 ROW 或者 MIXED 不加這個參數都會報錯

–no-check-replication-filters   忽略復制過濾,如 binlog_ignore_db、slave-skip-errors 等選項

–help                   更多更詳細的參數請見 –help 幫助文檔

校驗:

[root@trcloud ~]# pt-table-checksum –port=3306 –host=192.168.129.15 –databases=test –tables=newtable –user=root –password= 123456 –replicate=test.check –no-check-binlog-format –no-check-replication-filters

            TS          ERRORS  DIFFS     ROWS  CHUNKS SKIPPED    TIME    TABLE

12-13T13:44:07      0           1           3             1           0            0.059  test.newtable

注:檢查的時候會向表加 S 鎖

TS:        完成的檢查時間

ERRORS:檢查時候發生的錯誤和告警數量

DIFFS:       0 表示一致,1 表示不一致

ROWS:    表行數

CHUNKS:被劃分到表中的塊數量

SKIPPED:由于錯誤跳過的數目

TIME:      執行時間

TABLE:      表名

5、使用 pt-table-sync 修復不一致

–replicate=   指定 pt-table-checksum 得到的表

h=                 主庫 IP

u=                   用戶名

p=                 密碼

–execute       執行修復

–print             打印出 sql 語句

–help             更多更詳細的參數請見 –help 幫助文檔

[root@trcloud ~]# pt-table-sync –replicate=test.check h=192.168.129.15,u=root,p= 123456 –execute –print

DELETE FROM `test`.`newtable` WHERE `id`= 4 LIMIT 1 /*percona-toolkit src_db:test src_tbl:newtable src_dsn:h=192.168.129.15,p=…,u=root dst_db:test dst_tbl:newtable dst_dsn:h=172.30.249.5,p=…,u=root lock:1 transaction:1 changing_src:test.check replicate:test.check bidirectional:0 pid:19211 user:root host:trcloud*/;

DELETE FROM `test`.`newtable` WHERE `id`= 5 LIMIT 1 /*percona-toolkit src_db:test src_tbl:newtable src_dsn:h=192.168.129.15,p=…,u=root dst_db:test dst_tbl:newtable dst_dsn:h=172.30.249.5,p=…,u=root lock:1 transaction:1 changing_src:test.check replicate:test.check bidirectional:0 pid:19211 user:root host:trcloud*/;

REPLACE INTO `test`.`newtable`(`id`, `name`) VALUES (1 , leo) /*percona-toolkit src_db:test src_tbl:newtable src_dsn:h=192.168.129.15,p=…,u=root dst_db:test dst_tbl:newtable dst_dsn:h=172.30.249.5,p=…,u=root lock:1 transaction:1 changing_src:test.check replicate:test.check bidirectional:0 pid:19211 user:root host:trcloud*/;

從打印的 sql 來看,如果從庫數據多了使用 delete 刪除,其他情況修復主從不一致使用的是 REPLACE INTO。所以表上一定要有主鍵,不然不僅會報錯,也會導致主從同步失敗(因為在從庫執行 REPLACE INTO 執行不過去)

6、檢查主從一致

[root@trcloud ~]# pt-table-checksum –port=3306 –host=192.168.129.15 –databases=test –tables=newtable –user=root –password= 123456 –replicate=test.check –no-check-binlog-format –no-check-replication-filters

            TS ERRORS  DIFFS     ROWS  CHUNKS SKIPPED    TIME TABLE

12-13T13:48:18      0      0        3       1       0   0.108 test.newtable
數據已經正常

感謝各位的閱讀!關于“mysql 中如何使用 pt-table-checksum 和 pt-table-sync”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-26發表,共計3368字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 开江县| 封开县| 昌邑市| 寿光市| 宽城| 晋城| 平湖市| 会昌县| 赤水市| 洛宁县| 榆中县| 乌兰浩特市| 葫芦岛市| 息烽县| 铁力市| 怀远县| 崇义县| 桂平市| 建昌县| 江阴市| 射洪县| 神池县| 乌什县| 南康市| 新丰县| 灵宝市| 上杭县| 丹寨县| 泰和县| 定州市| 万山特区| 陆川县| 郧西县| 桑日县| 灵丘县| 北流市| 皋兰县| 称多县| 邹平县| 阳江市| 松溪县|