Postgresql
副本數據庫是否應該處於“恢復”狀態 - PostgreSQL
我有兩個正在使用流複製的數據庫,並且似乎處於這種狀態
postgres 16319 0.0 0.5 137949952 3077260 ? Ss Aug22 0:11 /usr/pgsql-12/bin/postmaster -D /var/lib/pgsql/12/data/ postgres 16321 0.0 0.0 249564 2080 ? Ss Aug22 0:00 \_ postgres: logger postgres 16322 7.3 5.2 137950296 27899272 ? Ss Aug22 9031:16 \_ postgres: startup recovering 0000000100003EA70000002C postgres 16323 0.8 5.2 137950152 27549964 ? Ss Aug22 1001:55 \_ postgres: checkpointer postgres 16324 0.0 0.1 137949928 1050960 ? Ss Aug22 1:40 \_ postgres: background writer postgres 16338 0.0 0.0 251960 2328 ? Ss Aug22 57:32 \_ postgres: stats collector postgres 16339 10.6 0.0 137961464 5116 ? Ss Aug22 13123:06 \_ postgres: walreceiver streaming 3EA7/2C5A24F0
我通常只在數據庫處於不良狀態時才注意到“正在恢復”。當我對得到的副本執行查詢時
ERROR: canceling statement due to conflict with recovery
我注意到“流式傳輸 3EA7/2C5A24F0”並且恢復正在增加。
SELECT * FROM pg_stat_wal_receiver
似乎也在增加。我只是想確保我的數據庫沒有問題,它只是
recovery
用作複製機制的一部分。
如果您按照流複製手冊中的描述通過發送預寫日誌來設置 Postgres 複製,那麼是的,所有副本都處於正常的永久恢復狀態。當對主節點執行寫事務時,副本從主節點接收並應用日誌,就像恢復中的任何 Postgres 伺服器一樣。
您看到的變化數字是目前收到的交易 ID。
請閱讀完整的連結頁面以闡明詳細資訊。對我來說,這很明顯,備用(從)伺服器實際上會持續執行恢復,除非被提升。