1
私たちのPostgres BDRデータベースシステムは、ノード間でのデータの複製を停止しました。Postgres BDRレプリケーションが停止しました - レプリケーションスロットがアクティブでない
pg_xlog_location_diff
を使用してチェックを行ったところ、レプリケーションスロットにバッファが増えていることがわかりました。
SELECT slot_name, database, active, pg_xlog_location_diff(pg_current_xlog_insert_location(), restart_lsn) AS retained_bytes
FROM pg_replication_slots
WHERE plugin = 'bdr';
slot_name | database | active | retained_bytes
-----------------------------------------+--------------+--------+----------------
bdr_26702_6275336279642079463_1_20305__ | ourdatabase | f | 32253352
また、スロットがアクティブ= falseとマークされていることに気付きました。
SELECT * FROM pg_replication_slots;
-[ RECORD 1 ]+----------------------------------------
slot_name | bdr_26702_6275336279642079463_1_20305__
plugin | bdr
slot_type | logical
datoid | 26702
database | ourdatabase
active | f
xmin |
catalog_xmin | 8041
restart_lsn | 0/5F0C6C8
私はPostgresのログレベルを増加させたが、私は、ログに表示のみのメッセージは以下のとおりです。
LOCATION: LogicalIncreaseRestartDecodingForSlot, logical.c:886
DEBUG: 00000: updated xmin: 1 restart: 0
LOCATION: LogicalConfirmReceivedLocation, logical.c:958
DEBUG: 00000: failed to increase restart lsn: proposed 0/7DCE6F8, after 0/7DCE6F8, current candidate 0/7DCE6F8, current after 0/7DCE6F8, flushed up to 0/7DCE6F8
あなたは、私が複製スロットを再活性化させることができる方法のアイデアを持っているなら、私に知らせてください。複製を再開させることができます。
影響を受けたノードを再起動しましたか? 'xlog'ファイルがたくさんある場合、すべてのxlogが処理されるまでウォル受信機プロセスは起動しません。 – charli