簡體   English   中英

PostgreSQL:如何在沒有master的情況下找出replica的類型?

[英]PostgreSQL: How to find out the type of replica without master?

我有 1 個運行 postgres 實例的副本主機。 我需要了解這個副本是同步的還是異步的。 是否有任何hack,我如何在沒有訪問master的情況下找到?

您不能,因為備用端沒有區別。

唯一的區別是主服務器是否在COMMIT期間等待來自備用服務器的反饋。

您必須檢查主服務器上的synchronous_standby_names

如果您正在使用同步復制,您將在recovery.conf指定一個application_name 但是,您可以在不使用同步復制的情況下設置application name (即, synchronous_standby_names從未在 master 的 conf 中設置),但這是關於您是否使用同步復制與異步復制的唯一提示。 否則,您需要從主端檢查。

您可以檢查 WAL 文件的提交記錄中是否設置了 XACT_COMPLETION_APPLY_FEEDBACK。 不過,我認為這只適用於“remote_apply”。 此外,沒有簡單的方法來檢查這一點。 您必須手動解析一些 WAL 記錄,或者將代碼添加到 pg_waldump 以打印此額外信息,或者可能將代碼添加到 xact.c 中的 xact_redo_commit 以在它看到它時進行記錄。 我認為沒有辦法判斷是否使用了低於“remote_apply”的級別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM