暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

postgresql识别当前库主备角色

原创 小气鬼 2022-01-05
1715

1、识别当前库主、备角色:

方式一:

  postgres=# select pg_is_in_recovery();   结果是f则为主库,t为备库。

      for i in `cat /tmp/pg`;do echo $i;ssh  root@$i "su - postgres -c 'psql -c \"select pg_is_in_recovery();\"'";done

方式二:

  pg_controldata 结果为cluster state是in production则为主库;结果为cluster state是in archive recovery则为备库。

      

for i in `cat /tmp/pg`;do echo $i;ssh root@$i "su - postgres -c 'pg_controldata|grep 'luster state''";done


方式三:

  Select pid, application_name, client_addr, client_port, state, sync_state from pg_stat_replication  查询到结果为主库,查询不到结果为备库。

      for i in `cat /tmp/pg`;do echo $i;ssh root@$i "su - postgres -c 'psql -c \"Select pid, application_name, client_addr, client_port, state, sync_state from pg_stat_replication;\"'";d


备库执行:

psql -x -c "select * from pg_stat_wal_receiver"


方式四:

操作系统上查看wal发送进程或者接受进程


ps -ef|grep wal|grep -v grep

方式五:

通过postgresql.auto.conf配置文件查看

在备库$pgdata 目录下会创建postgresql.auto.conf配置文件,有内容;如果该配置文件为空,则为主库,有记录主库信息为备库。


2、流复制信息字段含义

• pid 这代表负责流连接的wal_sender进程的进程ID。如果您在您的操作系统上检查您进程表,您应该会找到一个带有那个号码的PostgreSQL进程。

• usesysid 每个内部用户都有一个独一无二的编号。该系统的工作原理很像UNIX。 usesysid 是 (PostgreSQL) 用户连接到系统的唯一标识符。

usename  (不是用户名, 注意少了 r)它存储与用户相关的 usesysid 的名字。这是客户端放入到连接字符串中的东西。

• application_name这是同步复制的通常设置。它可以通过连接字符串传递到master。

• client_addr它会告诉您流连接从何而来。它拥有客户端的IP地址。

• client_hostname除了客户端的IP,您还可以这样做,通过它的主机名来标识客户端。您可以通过master上的postgresql.conf中的log_hostname启用DNS反向查找。

• client_port这是客户端用来和WALsender进行通信使用的TPC端口号。 如果不本地UNIX套接字被使用了将显示-1。

• backend_start它告诉我们slave什么时间创建了流连接。

• state此列告诉我们数据的连接状态。如果事情按计划进行,它应该包含流信息。

• sent_lsn这代表发送到连接的最后的事务日志的位置。

• write_lsn这是写到standby系统磁盘上最后的事务日志位置。

• flush_lsn这是被刷新到standby系统的最后位置。(这里注意写和刷新之间的区别。写并不意味着刷新 。)

• replay_lsn这是slave上重放的最后的事务日志位置。

• sync_priority这个字段是唯一和同步复制相关的。每次同步复制将会选择一个优先权 —sync_priority—会告诉您选择了那个优先权。

• sync_state最后您会看到slave在哪个状态。这个状态可以是


async, sync, or potential。当有一个带有较高优先权的同步slave时,PostgreSQL会把slave 标记为 potential。

在这个系统视图中每个记录只代表一个slave




「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论