news 2026/4/16 15:23:28

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/4/16 11:16:04

开源自动驾驶系统openpilot:智能驾驶开发框架全解析

开源自动驾驶系统openpilot:智能驾驶开发框架全解析 【免费下载链接】openpilot openpilot 是一个开源的驾驶辅助系统。openpilot 为 250 多种支持的汽车品牌和型号执行自动车道居中和自适应巡航控制功能。 项目地址: https://gitcode.com/GitHub_Trending/op/ope…

作者头像 李华
网站建设 2026/4/16 12:42:05

山东AI测试产业发展全景报告(2026)

——技术赋能与产业升级的双轮驱动 一、政策筑基:打造AI测试战略高地 山东将AI测试纳入现代化产业体系核心环节,通过“工业强省”战略强化技术落地支撑。省级政策明确要求: 产业融合导向:在12大支柱产业推行“AI测试”全覆盖&…

作者头像 李华
网站建设 2026/4/16 12:36:59

在批处理方面,相对于Spark,Flink还有哪些不足之处?

随着大数据技术的飞速发展,越来越多的企业开始关注如何高效地处理海量数据。在众多的大数据处理框架中,Apache Spark 和 Apache Flink 是两个备受瞩目的明星项目。Spark 以其出色的批处理能力和易用性赢得了广泛的认可,而 Flink 则凭借其卓越…

作者头像 李华
网站建设 2026/4/15 13:19:36

如何30分钟实现Android实时通信?STOMP协议实战指南

如何30分钟实现Android实时通信?STOMP协议实战指南 【免费下载链接】StompProtocolAndroid STOMP protocol via WebSocket for Android 项目地址: https://gitcode.com/gh_mirrors/st/StompProtocolAndroid 在Android应用开发中,实时消息功能是提…

作者头像 李华
网站建设 2026/4/16 11:11:05

AI大模型如何重塑金融市场预测范式

AI大模型如何重塑金融市场预测范式 【免费下载链接】Kronos Kronos: A Foundation Model for the Language of Financial Markets 项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos 传统模型为何在极端行情下失效? 金融市场的"黑天鹅&q…

作者头像 李华