我有1个副本主机,在该主机上运行postgres实例。我需要了解此副本是同步的还是异步的。是否有黑客,如何在不访问主机的情况下找出来?
您不能,因为备用方没有区别。
唯一的区别是主服务器是否在COMMIT
期间等待备用服务器的反馈。
您将必须在主计算机上检查synchronous_standby_names
。
如果使用同步复制,则应在application_name
中指定一个recovery.conf
。但是,您可以在不使用同步复制的情况下设置application name
(即,从未在master的conf上设置synchronous_standby_names
),但这是您是否正在使用同步v。异步复制的唯一提示。否则,您需要从主端进行检查。
您可以检查WAL文件的提交记录中是否设置了XACT_COMPLETION_APPLY_FEEDBACK。我认为那只能在“ remote_apply”下工作。另外,没有简便的方法可以检查此情况。您将不得不手动解析一些WAL记录,或者将代码添加到pg_waldump以打印此额外信息,或者可能将代码添加到xact.c的xact_redo_commit中以在看到它时进行记录。我认为无法确定是否使用了低于“ remote_apply”的级别。