【bug】發現pt-table-checksum bug例子
發現pt-table-checksum bug例子
一.起因
由於全公司在組織學習MySQL。正在學到MySQL安裝、 複製這一塊,我的霸道總裁突然霸氣十足的問我 ‘’你如何檢測主從不一致呢‘’,我回答說 當然是
,從而引出了下文.
pt-table-checksum
二.描述
MySQL5.7 主從環境
percona-toolkit-2.2.20-1.noarch
創建了一個test_xx的庫root@localhost:mysql.sock [(none)]>create database test_xx;
Query OK, 1 row affected (0.01 sec)
創建表
| aa | CREATE TABLE `aa` (
`id` int(11) NOT NULL,
`name` varchar(10) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
插入數據"root@localhost:mysql.sock [test_xx]>insert into aa values(1,'a'),(4,'a');
從庫刪除數據
"root@localhost:mysql.sock [test_xx]>delete from aa;
Query OK, 2 rows affected (0.01 sec)
執行pt語句校隊
[root@localhost ~]# pt-table-checksum --no-check-binlog-format --replicate=pt.cheksum --databases=test_xx -h 192.168.230.132 -u aa -predhat -P 3306 --recursion-method='processlist'
我的霸道總裁就喊我了 快來給我看看 。隻能放下手裏的磚先,開開心心的過去。
三 排錯
開始以為是我的參數問題,各種調試。霸道總裁在旁邊坐著好緊張QAQ 過了10分鍾 還是沒搞定。 霸道總裁突然說是不是**_**(下劃線)問題呢。 去除**_**(下劃線)重新創建庫 插入表 插入數據 從庫刪除數據 還是不好使。。。 淡淡的憂傷 今天果然運氣不好啊。 突然機智的總裁說 是不是 數據庫的名字有長度限製呢。這就給了我一絲希望 就安裝霸道總裁的意思 創建庫名casdfdsfsf 創建表 插入數據 從庫刪除數據 結果好用了 好神奇 突然感覺世界都亮了。
我的霸道總裁告訴我 會不會是 因為test或者_的原因呢。經過各種 創建庫 創建表 插入數據 從庫刪數據 等等操作。。
結果發現 機智的霸道總裁的結論的是對的 因為有test開頭。 霸道總裁有沒有好機智, 是不是快愛上霸道總裁了。
然後通過閱讀pt-table-checksum
的代碼 發現 代碼7617行
if ( $db =~ m/information_schema|performance_schema|lost\+found|percona|percona_schema|test/ ) {
在percona-toolkit-3.0.3 已經修複了
if ( $db =~ m/^(information_schema|performance_schema|lost\+found|percona_schema)$/ ) {
在/usr/bin/pt-table-checksum 中修複
if ( $db =~ m/information_schema|performance_schema|lost\+found|percona|percona_schema/ ) {
[root@localhost ~]# pt-table-checksum --no-check-binlog-format --replicate=pt.cheksum --databases=test_xx -h 192.168.230.132 -u aa -predhat -P 3306 --recursion-method='processlist'
TS ERRORS DIFFS ROWS CHUNKS SKIPPED TIME TABLE
09-08T10:48:15 0 1 2 1 0 0.044 test_xx.aa
四總結
知其然也要知其所以然,發現問題 不要方 。要養成閱讀代碼的習慣。
最後更新:2017-09-08 23:02:32
上一篇:
零基礎進行神經網絡語言建模
下一篇:
【CDN 最佳實踐】CDN訪問異常排查思路
Docker技術入門與實戰(第2版)1.1 什麼是Docker
解決錯誤ERROR: No suitable Java found. In order to properly use the Android Developer Tools,…
跟蹤oracle中sql語句執行過程及相關知識拓展
Oracle中的表空間
navicat使用教程詳解
Android 經典筆記七 全局彈窗Dialog
如何將數據可視化技術應用於廣告投放?
Web開發的幾點經驗談
Android3.0版本以上出現android.os.NetworkOnMainThreadException異常與處理方式
c類型總結