標籤:
6.2 檢查pg_stat_replication
檢查歸檔以及 archive_command主要用於即時恢複( PITR,Point-In-Time-
Recovery)。如果您想監控一個基於流的設定,建議您 注意系統上稱作pg_stat_replication的視圖。此視圖包含以下資訊:
test=# \d pg_stat_replication
View "pg_catalog.pg_stat_replication"
Column | Type | Modifiers
------------------+--------------------------+----------
pid | integer |
usesysid | oid |
usename | name |
application_name | text |
client_addr | inet |
client_hostname | text |
client_port | integer |
backend_start | timestamp with time zone |
state | text |
sent_location | text |
write_location | text |
flush_location | text |
replay_location | text |
sync_priority | integer |
sync_state | text |
對於每一個通過流串連的我們的系統的slave,PostgreSQL將只返回一行資料。您會詳細地看到您的slave在做什麼。
6.2.1 pg_stat_replication相關欄位
以下欄位可用於監控系統。讓我們詳細地討論一下這些欄位:
• pid: 這代表負責流串連的wal_receiver進程的進程ID。如果您在您的作業系統上檢查您進程表,您應該會找到一個帶有那個號碼的PostgreSQL 進程。
• usesysid: 每個內部使用者都有一個獨一無二的編號。該系統的工作原理很像UNIX。 usesysid 是 (PostgreSQL) 使用者串連到系統的唯一識別碼。
• usename: (不是使用者名稱, 注意少了 r)它儲存與使用者相關的 usesysid 的名字。這是用戶端放入到連接字串中的東西。
• application_name:這是同步複製的通常設定。它可以通過連接字串傳遞到master。
• client_addr: 它會告訴您流串連從何而來。它擁有用戶端的IP地址。
• client_hostname: 除了用戶端的IP,您還可以這樣做,通過它的主機名稱來標識用戶端。您可以通過master上的postgresql.conf中的log_hostname啟用DNS反向尋找。
• client_port: 這是用戶端用來和WALsender進行通訊使用的TPC連接埠號碼。 如果不本地UNIX通訊端被使用了將顯示-1。
• backend_start: 它告訴我們slave什麼時間建立了流串連。
• state: 此列告訴我們資料的串連狀態。如果事情按計划進行,它應該包含流資訊。
• sent_location:這代表發送到串連的最後的交易記錄的位置。
• write_location: 這是寫到standby系統磁碟上最後的交易記錄位置。
• flush_location: 這是被重新整理到standby系統的最後位置。
這裡注意寫和重新整理之間的區別。寫並不意味著重新整理(見有關耐久性要求的部分) 。
• replay_location: 這是slave上重放的最後的交易記錄位置。
• sync_priority: 這個欄位是唯一和同步複製相關的。每次同步複製將會選擇一個優先權 —sync_priority—會告訴您選擇了那個優先權。
• sync_state: 最後您會看到slave在哪個狀態。這個狀態可以是
async, sync, or potential。當有一個帶有較高優先權的同步slave時,PostgreSQL會把slave 標記為 potential。
請記住,在這個系統檢視表中每個記錄只代表一個slave。因此,您看到誰處於串連狀態,在做什麼任務。pg_stat_replication也是檢查slave是否處於串連狀態的一個好方法。
PostgreSQL Replication之第六章 監控您的設定(2)