Postgresql xlog-知道两个数据库是否来自源
我有一些xlog问题我不确定 1) 我有两台曾经是奴隶的服务器。我怎么知道他们是同一个主人的奴隶?是否可以检查它们过去是否来自同一来源?我知道pg_倒带知道如何检查是否,但是否可以在不运行pg_倒带的情况下在干运行模式下轻松检查 2) 如果pg_last_xlog_replay_位置为空,则此服务器从未是从属服务器,这是真的吗 3) 是否有可能从数据库本身知道从设备连接到哪个主设备?我知道如何从recovery.conf或进程属性中获取此信息,但它是否也写在某些系统表中 谢谢 阿维Postgresql xlog-知道两个数据库是否来自源,postgresql,Postgresql,我有一些xlog问题我不确定 1) 我有两台曾经是奴隶的服务器。我怎么知道他们是同一个主人的奴隶?是否可以检查它们过去是否来自同一来源?我知道pg_倒带知道如何检查是否,但是否可以在不运行pg_倒带的情况下在干运行模式下轻松检查 2) 如果pg_last_xlog_replay_位置为空,则此服务器从未是从属服务器,这是真的吗 3) 是否有可能从数据库本身知道从设备连接到哪个主设备?我知道如何从recovery.conf或进程属性中获取此信息,但它是否也写在某些系统表中 谢谢 阿维 是同一个主人
从pg_数据库中选择xmin、ctid、oid、datname
。当然,删除和创建postgres和模板数据库会改变这些,所以这是非常不可靠的。但如果您检查这些,发现所有标识符都匹配,那么数据库有相同的源代码,这是一个很好的变化
更可靠,正在比较历史文件。Eg-如果两个前从机具有相同的时间线,例如在以下4种情况下:
-bash-4.2$ psql -d 'dbname=replication replication=true sslmode=require' -U replica -h 1.1.1.1 -c 'IDENTIFY_SYSTEM'
Password for user replica:
systemid | timeline | xlogpos
---------------------+----------+--------------
9999384298900975599 | 4 | F79/275B2328
(1 row)
您可以检查时间线历史记录:
-bash-4.2$ psql -d 'dbname=replication replication=true sslmode=require' -U replica -h 1.1.1.1 -c 'TIMELINE_HISTORY 4'
Password for user replica:
filename | content
------------------+------------------------------------------------------
00000004.history | 1 9E/C3000090 no recovery target specified+
| +
| 2 C1/5A000090 no recovery target specified+
| +
| 3 A52/DB2F98B8 no recovery target specified+
|
(1 row)
如果两台服务器都有相同的时间线和创建时间线的xlog位置,我相信,您可以非常可靠地说,它们来自相同的来源
pg\u last\u xlog\u replay\u位置
pg\u last\u xlog\u replay\u位置
recovery.conf
,如果您不是,您可能无法选择这样的视图
从pg_数据库中选择xmin、ctid、oid、datname
。当然,删除和创建postgres和模板数据库会改变这些,所以这是非常不可靠的。但如果您检查这些,发现所有标识符都匹配,那么数据库有相同的源代码,这是一个很好的变化
更可靠,正在比较历史文件。Eg-如果两个前从机具有相同的时间线,例如在以下4种情况下:
-bash-4.2$ psql -d 'dbname=replication replication=true sslmode=require' -U replica -h 1.1.1.1 -c 'IDENTIFY_SYSTEM'
Password for user replica:
systemid | timeline | xlogpos
---------------------+----------+--------------
9999384298900975599 | 4 | F79/275B2328
(1 row)
您可以检查时间线历史记录:
-bash-4.2$ psql -d 'dbname=replication replication=true sslmode=require' -U replica -h 1.1.1.1 -c 'TIMELINE_HISTORY 4'
Password for user replica:
filename | content
------------------+------------------------------------------------------
00000004.history | 1 9E/C3000090 no recovery target specified+
| +
| 2 C1/5A000090 no recovery target specified+
| +
| 3 A52/DB2F98B8 no recovery target specified+
|
(1 row)
如果两台服务器都有相同的时间线和创建时间线的xlog位置,我相信,您可以非常可靠地说,它们来自相同的来源
pg\u last\u xlog\u replay\u位置
pg\u last\u xlog\u replay\u位置
recovery.conf
,如果您不是,您可能无法选择这样的视图