2014-09-03 55 views
1

我想在我的mysql slave完成複製後自動生成一些報告。我研究過這一點,我相當肯定的一個方法是讓偵聽器輪詢SQL_Delay參數並等待NOT NULL,然後是NULL。我的理解是,當它不是NULL時,它是一個倒計時到複製的計時器,因爲它已經檢測到來自主服務器的更改,一旦它又變回到空,我就可以運行報告。啓動MySQL複製腳本 - 檢測完成的複製

這對我來說似乎是完全愚蠢的,有沒有更好的方法呢?

+1

現在無權訪問複製設置,但其中一個'show slave status'變量具有主站和從站日誌位置。如果他們是平等的,那麼複製已經趕上了。不過,你必須保持輪詢來檢查這些值。 – 2014-09-03 14:55:54

+0

@MarcB如果沒有訪問複製設置,您是否可以確認我需要的變量是EXEC_Master_log_Pos和Read_Master_log_Pos? – 2014-09-03 15:03:54

+1

不是手。它是「master_Log_pos」和「slave_log_pos」或類似的東西。還有一個「seconds_behind_master」或類似的。隨着複製接近完成,它也會減少到零,但它總是會懸停在一個非零的位置,因爲根據定義,從屬總是稍微落後於主。 – 2014-09-03 15:07:40

回答

0

感謝Marc B在原始問題的評論中,他讓我走上了正軌。這個解決方案的答案是週期性地查詢從站狀態,以及主站和從站日誌位置是否相同時,您可以輕鬆完成。這適用於我每5分鐘複製一次的情況,如果您持續複製,則可能會有所不同。