news 2026/3/14 16:31:53

HighGo Database判断流复制主备角色的方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HighGo Database判断流复制主备角色的方法

文章目录

  • 文档用途
  • 详细信息

文档用途

HighGo Database数据库流复制判断主备角色

详细信息

进行流复制主备切换之前首先要知道当前数据库的角色,以下提供五种方法判断数据库角色,测试环境为一主一备。

1.通过pg_controldata命令查看数据库的控制信息,Database cluster state字段信息可判断是主库还是备库。

主库返回in production:

[highgo@localhost~]$ pg_controldata|grep clusterDatabasecluster state:inproduction

备库返回in archive recovery:

[highgo@localhost~]$ pg_controldata|grep clusterDatabasecluster state:inarchive recovery

2.通过进程查看,ps -ef | grep wal | grep -v grep。

显示wal sender …streaming进程说明当前数据库为主库:

[highgo@localhost~]$ ps-ef|grep wal|grep-v grep highgo1062510239007:03?00:00:00postgres: wal writer process highgo1454010239010:00?00:00:00postgres: wal sender process repuser x.x.150.163(63146)streaming0/100991F8

显示wal receive …streaming说明当前数据库为备库:

[highgo@localhost~]$ ps-ef|grep wal|grep-v grep highgo1869218687010:00?00:00:00postgres: wal receiver process streaming0/100991F8

3.通过查看数据字典表pg_stat_replication。进入psql客户端,输入select * from pg_stat_replication;

主库在表中能查到记录:

[highgo@localhost~]$ psql psql(4.7.6)PSQL:Release4.7.6Connectedto: HighGoDatabaseV4.7Standard EditionRelease4.7.6-64-bitProductionType"help"forhelp.highgo=# select * from pg_stat_replication;pid|usesysid|usename|application_name|client_addr|client_hostna me|client_port|backend_start|backend_xmin|state|se nt_location|write_location|flush_location|replay_location|sync_priority|sync_state-------+----------+---------+------------------+-----------------+-----------------+-------------+-------------------------------+--------------+-----------+---------------+----------------+----------------+-----------------+---------------+------------14540|16384|repuser|walreceiver|x.x.150.163||63146|2019-01-1010:00:23.252552+08||streaming|0/100991F8|0/100991F8|0/100991F8|0/100991F8|0|async(1row)

备库在表中无记录:

highgo=# select * from pg_stat_replication;pid|usesysid|usename|application_name|client_addr|client_hostname|c lient_port|backend_start|backend_xmin|state|sent_location|write_location|flush_location|replay_location|sync_priority|sync_state-----+----------+---------+------------------+-------------+-----------------+-------------+---------------+--------------+-------+---------------+----------------+----------------+-----------------+---------------+------------(0rows)

4.通过系统函数pg_is_in_recovery()判断。

进入psql客户端,输入select pg_is_in_recovery();

主库返回:

highgo=# select pg_is_in_recovery();pg_is_in_recovery-------------------f(1row)

备库返回t:

highgo=# select pg_is_in_recovery();pg_is_in_recovery-------------------t(1row)

5.通过recovery.conf配置文件判断。

进入$PGDATA目录,存在recovery.conf配置文件说明是备库:

[highgo@localhost~]$ cd $PGDATA[highgo@localhostdata]$ ls backup_label.old pg_dynshmem pg_snapshots postgresql.auto.conf base pg_hba.conf pg_stat postgresql.confdata.tar.gz pg_ident.conf pg_stat_tmp postmaster.optsglobalpg_logical pg_subtrans postmaster.pid hgdb.lic pg_multixact pg_tblspc recovery.conf hgdb_log pg_notify pg_twophase pg_clog pg_replslot PG_VERSION pg_commit_ts pg_serial pg_xlog

不存在recovery.conf或此文件后缀名是recovery.done说明是主库。

[highgo@localhost~]$ cd $PGDATA[highgo@localhostdata]$ ls backup_label.old pg_commit_ts pg_serial pg_xlog base pg_dynshmem pg_snapshots postgresql.auto.confdata.tar.gz pg_hba.conf pg_stat postgresql.confglobalpg_ident.conf pg_stat_tmp postmaster.opts hgdb.lic pg_logical pg_subtrans postmaster.pid hgdb_log pg_multixact pg_tblspc NIH pg_notify pg_twophase pg_clog pg_replslot PG_VERSION
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/14 7:16:26

Minimap2序列比对工具实战指南:从基础到进阶的全场景应用

Minimap2序列比对工具实战指南:从基础到进阶的全场景应用 【免费下载链接】minimap2 A versatile pairwise aligner for genomic and spliced nucleotide sequences 项目地址: https://gitcode.com/gh_mirrors/mi/minimap2 核心价值:重新定义序列…

作者头像 李华
网站建设 2026/3/13 8:32:53

OpCore Simplify:4步构建稳定黑苹果EFI的自动化解决方案

OpCore Simplify:4步构建稳定黑苹果EFI的自动化解决方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 问题溯源:黑苹果配置的…

作者头像 李华
网站建设 2026/3/12 15:58:33

微信小程序商城开发实战全攻略:从功能实现到性能优化

微信小程序商城开发实战全攻略:从功能实现到性能优化 【免费下载链接】wechat-app-mall EastWorld/wechat-app-mall: WeChat-App-Mall 是一个用于微信小程序开发的框架,提供了多种微信小程序开发的模板和工具,可以用于快速构建微信小程序和微…

作者头像 李华
网站建设 2026/3/13 21:30:59

IMDS001数字输出模块

IMDS001 数字输出模块特点说明IMDS001 是 ABB Bailey INFI 90 / Net 90 分布式控制系统中的一款 数字输出模块,用于将控制器的数字控制指令转化为现场设备可执行的开关信号,实现对设备的启停、报警和状态控制。主要特点:将控制器数字信号输出…

作者头像 李华