Percona-Tools

如果從屬設備無法訪問,為什麼 pt-table-checksum 會給出退出狀態 0?

  • December 14, 2012

我正在使用pt-table-checksum版本2.1.4來檢查我的主從設置。在我忘記在從屬設備上設置正確權限的情況下,它會寫入如下錯誤stderr

# pt-table-checksum -d employees
Cannot connect to h=node03.mydomain.local                                 <== error
           TS ERRORS  DIFFS     ROWS  CHUNKS SKIPPED    TIME TABLE
10-04T15:33:33      0      0        9       1       0   0.014 employees.departments
[...]

但是,它的退出狀態是0

# echo $?
0

它將找到的數字差異始終為零,因為它沒有可比較的東西。0是的,如果沒有報告任何差異或錯誤,文件會說退出狀態。但這在大多數情況下沒有意義。

有沒有辦法讓pt-table-checksum不默默失敗並將其報告為一般失敗?我應該送出錯誤還是可以配置?

事實證明,這會讓更多使用者感到困惑,例如在這個問題中:“pt-table-checksum help required”

pt-table-checksum主要在主伺服器上執行,但由於 MySQL 上的二進制日誌是基於語句的,因此實際的計算語句也在從伺服器上執行。然後應該pt-table-checksum在從站上執行以檢查和比較它無法從主站訪問從站的校驗和。添加--replicate-check-only選項以使其僅根據校驗和表中已存在的校驗和檢查差異。

引用自:https://dba.stackexchange.com/questions/25420