標籤:
在本書的前幾章,您已經學習了各種複製以及如何配額制各種類型的情境。現在是時候通過增加監控來讓您的設定更加可靠了。
在本章中,您將學習監控什麼以及如惡化實施合理的監控車輛。您將學習:
• 檢查您的 XLOG 歸檔
• 檢查 pg_stat_replication 系統檢視表
• 檢查作業系統層級複製相關的進程
在本章的最後您應該能夠正確地監控任何類型的複製設定。
6.1 檢查您的歸檔
如果您計劃使用即時恢複(PITR, Point-In-Time-Recovery)或如果您想使用XLOG歸檔來協助您的流設定,各種事情都可能出錯,例如:
• 傳送XLOG 可能失敗
• 清理存檔可能失敗
6.1.1 檢查archive_command
一個失敗的 archive_command 可能是您的設定中的最大的攪局者之一。
archive_command 的思想是傳送 XLOG到一些歸檔並在那裡儲存資料。但是,如果由於某些原因這些XLOG不能被傳送會發生什嗎?
答案很簡單:master必須保持這些XLOG檔案,以確保沒有XLOG檔案丟失。必須始終有一個不間斷的XLOG檔案的序列-如果序列檔案中有一個檔案丟失,您的slave將不能被恢複。例如,如果您的網路發生故障,master將積累這些檔案並保留它們。從邏輯上講,不能永遠這樣做,因此,在有些時候,您將面臨您的master伺服器磁碟空間不足的問題。
這是很危險的,因為您正在用盡您的磁碟空間,沒有辦法保持寫入到資料庫。儘管讀取仍然是可能的,大多數的寫肯定會虧失敗,並會嚴重幹擾您的系統。PostgreSQL不會失敗,在一個磁碟被填滿之後您的執行個體將完好無損,但是,正如之前所說的,您的服務將被中斷。
為了防止這種事情 發生,建議監控您的pg_xlog目錄並檢查:
• 異常地高數量的XLOG檔案
• 託管pg_xlog分區的可用磁碟空間
這裡的核心問題是:檢查出來的什麼數字才是一個合理的數字?在PostgreSQL的標準配額制中不應該使用超過checkpoint_segments * 2 + wal_keep_segments這麼多的XLOG檔案。如果XLOG檔案數開始大規模地增長,您會遇到一些奇怪的問題。
確保archive_command正常工作。
如果您正確地執行這些檢查,在這方面不會發生不好的事情-如果您無法檢查這些參數,您離危險就不遠了。
6.1.2 監控事物日誌歸檔
磁碟空間耗盡不只會發生在master上。同樣的事情也會發生在您的歸檔上。所以,建議您也監控磁碟空間。
除了無論如何都要監控的磁碟空間,有一件事情您應該注意您的雷達。您必須拿出一個像樣的策略來處理基礎備份。請記住,只允許您刪除比您想儲存的最早的基礎備份的XLOG還要早的XLOG。這個小東西會破壞您的磁碟空間監控。為什麼呢?因為您必須保持一定量的資料,知道您正在耗盡磁碟空間是一件好事,但是就不能為之做點什麼嗎?強烈建議您確保您的歸檔有足夠的備用容量。萬一您的資料庫系統需要寫大量的交易記錄,這是很重要的。
PostgreSQL Replication之第六章 監控您的設定(1)