PostgreSQL的查看主从同步状态
PostgreSQL的查看主从同步状态
PostgreSQL 提供了一些系统视图和函数,查看和监控主从同步的状态。
1 在主节点上查看同步状态
pg_stat_replication 视图
在主节点上,可以通过查询 pg_stat_replication 视图来查看复制的详细状态信息,包括每个从节点的同步进度、滞后情况以及连接状态。
postgres=# \d pg_stat_replicationView "pg_catalog.pg_stat_replication"Column | Type | Collation | Nullable | Default
------------------+--------------------------+-----------+----------+---------pid | integer | | | usesysid | oid | | | usename | name | | | application_name | text | | | client_addr | inet | | | client_hostname | text | | | client_port | integer | | | backend_start | timestamp with time zone | | | backend_xmin | xid | | | state | text | | | sent_lsn | pg_lsn | | | write_lsn | pg_lsn | | | flush_lsn | pg_lsn | | | replay_lsn | pg_lsn | | | write_lag | interval | | | flush_lag | interval | | | replay_lag | interval | | | sync_priority | integer | | | sync_state | text | | | reply_time | timestamp with time zone | | |
pid: 进程ID。usesysid: 使用者系统ID。usename: 复制连接的用户名。application_name: 复制连接的应用程序名称,通常每个从节点会设置一个唯一的名字。client_addr: 从节点的IP地址。state: 连接状态,可以是startup,catchup,streaming等。sent_lsn: 主节点最后发送给从节点的WAL记录的位置。write_lsn: 从节点接收到的最远的WAL记录的位置。flush_lsn: 从节点写入磁盘的最远的WAL记录的位置。replay_lsn: 从节点应用的最远的WAL记录的位置。sync_priority: 同步复制节点的优先级。sync_state: 同步状态,可以是async,potential,sync,quorum等。
示例
postgres=# select * from pg_stat_replication;pid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | backend_xmin | state | sent_lsn | wr
ite_lsn | flush_lsn | replay_lsn | write_lag | flush_lag | replay_lag | sync_priority | sync_state | reply_time
-------+----------+---------+------------------+----------------+-----------------+-------------+-------------------------------+--------------+-----------+-----------+---
--------+-----------+------------+-----------------+-----------------+-----------------+---------------+------------+-------------------------------55877 | 16384 | repmgr | test2 | 192.168.10.101 | | 34636 | 2024-09-15 12:13:48.651404-04 | | streaming | 0/44B8EF0 | 0/
44B8EF0 | 0/44B8EF0 | 0/44B8EF0 | 00:00:00.000237 | 00:00:00.000476 | 00:00:00.000537 | 0 | async | 2024-09-15 12:33:24.543761-04
(1 row)
2 在从节点上查看同步状态
pg_stat_wal_receiver 视图
对从节点,可以通过查询 pg_stat_wal_receiver 视图来查看WAL接收器的状态。
postgres=# \d pg_stat_wal_receiverView "pg_catalog.pg_stat_wal_receiver"Column | Type | Collation | Nullable | Default
-----------------------+--------------------------+-----------+----------+---------pid | integer | | | status | text | | | receive_start_lsn | pg_lsn | | | receive_start_tli | integer | | | received_lsn | pg_lsn | | | received_tli | integer | | | last_msg_send_time | timestamp with time zone | | | last_msg_receipt_time | timestamp with time zone | | | latest_end_lsn | pg_lsn | | | latest_end_time | timestamp with time zone | | | slot_name | text | | | sender_host | text | | | sender_port | integer | | | conninfo | text | | |
pid: 接收器进程ID。status: WAL接收状态。receive_start_lsn: 接收起始的LSN。received_lsn: 已接收的最新的LSN。last_msg_send_time: 主节点发送最后一个消息的时间。last_msg_receipt_time: 从节点接收最后一个消息的时间。latest_end_lsn: 最近接收的WAL记录的LSN。latest_end_time: 最近接收到的WAL记录的时间。
示例
postgres=# select * from pg_stat_wal_receiver;pid | status | receive_start_lsn | receive_start_tli | received_lsn | received_tli | last_msg_send_time | last_msg_receipt_time | latest_end_lsn |latest_end_time | slot_name | sender_host | sender_port | conninfo
-------+-----------+-------------------+-------------------+--------------+--------------+-------------------------------+-------------------------------+----------------+
-------------------------------+-----------+----------------+-------------+------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------87404 | streaming | 0/3000000 | 5 | 0/44C0BF8 | 5 | 2024-09-15 12:35:33.842389-04 | 2024-09-15 12:35:33.842893-04 | 0/44C0BF8 |2024-09-15 12:35:33.842389-04 | | 192.168.10.100 | 5432 | user=repmgr passfile=/home/pg12/.pgpass dbname=replication host=192.168.10.100 port=5432 applic
ation_name=test2 fallback_application_name=walreceiver sslmode=disable sslcompression=0 gssencmode=disable krbsrvname=postgres target_session_attrs=any
(1 row)
跨节点比对状态
为了确保主节点和从节点的状态是一致的,可以比对 pg_stat_replication 中的 sent_lsn 和 pg_stat_wal_receiver 中的 received_lsn。如果两者没有显著滞后,可以认为同步状态正常。
相关文章:
PostgreSQL的查看主从同步状态
PostgreSQL的查看主从同步状态 PostgreSQL 提供了一些系统视图和函数,查看和监控主从同步的状态。 1 在主节点上查看同步状态 pg_stat_replication 视图 在主节点上,可以通过查询 pg_stat_replication 视图来查看复制的详细状态信息,包括…...
Java多态性的理解
方法的覆盖 子类的方法重写了父类的方法,相当于对原来的方法进行了增强,接口就是这样的思想。 属性的隔离(Java中什么情况下都不会属性覆盖,python可能会覆盖) public class Main {public static void main(String[…...
安全工具 | 使用Burp Suite的10个小tips
Burp Suite 应用程序中有用功能的集合 img Burp Suite 是一款出色的分析工具,用于测试 Web 应用程序和系统的安全漏洞。它有很多很棒的功能可以在渗透测试中使用。您使用它的次数越多,您就越发现它的便利功能。 本文内容是我在测试期间学到并经常的主要…...
企业项目中字符串工具类
此工具类暂时包含如下功能: isEmpty()判断字符串是否为空subSpecifiedString()判断字符串是否超出指定长度,超出则截取到指定长度yearMonthToDate()将年月的字符串转成年月日格式 yearMonthToDateTime()将年月的字符串转成年月日时分秒格式 package co…...
下载github patch到本地
以下是几种从 GitHub 上下载以.patch 结尾的补丁文件的方法: 通过浏览器直接下载 打开包含该.patch 文件的 GitHub 仓库。在仓库的文件列表中找到对应的.patch 文件。点击该文件,浏览器会显示文件的内容,在页面的右上角通常会有一个“Raw”…...
C++基础部分代码
C OOP面对对象 this指针 C:各种各样的函数定义 struct C:类》实体的抽象类型 实体(属性,行为)-》ADT(abstract data type) OOP语言的四大特征是什么? 抽象 封装/隐藏 继承 多态 访问限定符:public公有的 private私有的…...
neo4j(spring) 使用示例
文章目录 前言一、neo4j是什么二、开始编码1. yml 配置2. crud 测试3. node relation 与java中对象的关系4. 编码测试 总结 前言 图数据库先驱者 neo4j:neo4j官网地址 可以选择桌面版安装等多种方式,我这里采用的是docker安装 直接执行docker安装命令: docker run…...
链接升级:Element UI <el-link> 的应用
链接升级:Element UI 的应用 一 . 创建文字链接1.1 注册路由1.2 创建文字链接 二 . 文字链接的属性2.1 文字链接的颜色2.2 是否显示下划线2.3 是否禁用状态2.4 填写跳转地址2.5 加入图标 在本篇文章中,我们将深入探索Element UI中的<el-link>组件—…...
简单题26 - 删除有序数组中的重复项(Java)20240917
问题描述: java代码: class Solution {public int removeDuplicates(int[] nums) {if (nums.length 0) return 0; // 处理空数组情况int i 0; // 指向新数组中的最后一个不重复元素for (int j 1; j < nums.length; j) {if (nums[j] ! nums[i]) { …...
DFS:深搜+回溯+剪枝实战解决OJ问题
✨✨✨学习的道路很枯燥,希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一 排列、子集问题 1.1 全排列I 1.2 子集I 1.3 找出所有子集的异或总和 1.4 全排列II 1.5 字母大小写全排列 1.6 优美的排列 二 组合问题 2.1 电话号码的数字组合 …...
命令语境中的“可以”的字词含义分析
摘要 在语言交流中,词汇的使用经常受到语境的影响。本文探讨了“可以”一词在上司与下属之间的互动中所表达的命令含义。通过分析语料和实例,发现“可以”在某些情况下并不传达许可的含义,而是被用作一种隐性命令。本文讨论了这一现象的成因…...
直播相关03-录制麦克风声音, ffmpeg 命名,使用命令行完成录音
一 ffmpeg 命令 ffmpeg arg1 arg2 -i arg3 arg4 arg5ffmpeg 全局参数 输入文件参数 -i 输入文件 输出文件参数 输出文件arg1:全局参数 arg2:输入文件参数 arg3:输入文件 arg4:输出文件参数 arg5:输出文件 二 ffprobe …...
VUE3中ref与reactive
ref:支持所有类型reactive:只支持引用类型(Obj,Array...)两者都是实现数据视图响应式 JS逻辑使用中 ref:需要使用.value reactive:不需要使用.value <el-button click"handle()" type"primary"…...
高职院校人工智能技术和无人机技术实训室建设方案
一、方案背景与需求分析 1.1 人工智能与无人机技术发展概况 人工智能(AI)和无人机技术作为当今科技领域的两大热点,正以前所未有的速度发展和渗透到各行各业中。根据国际数据公司(IDC)的报告,全球人工智能市场规模预计将在2024年…...
x-cmd pkg | shtris: 在终端体验经典的俄罗斯方块游戏
目录 简介首次用户技术特点竞品和相关项目进一步阅读 简介 shtris 是一个由 shell 脚本,参考 俄罗斯方块指南 (2009) 实现的俄罗斯方块游戏。 首次用户 本文的 demo 展现了如何通过 x-cmd 快速启动使用 shtris 。x-cmd也提供了1分钟教程可以帮你快速入门。 技术…...
Linux基础---07文件传输及解决yum安装失效的方法
Linux文件传输地图如下,先选取你所需的场景,若你是需要Linux和Linux之间传输文件就查看SCP工具即可。 一.下载网站文件 前提是有网: 检查网络是否畅通命令:ping www.baidu.com,若有持续的返回值就说明网络畅通。Ctr…...
[项目][WebServer][Makefile Shell]详细讲解
目录 1.Makefile2. build.sh3.test.sh 1.Makefile 为了方便构建项目,并将其发布,使用Makefile来管理构建项目 bin httpserver cgi test_cgi cc g GLD_FLAGS -stdc11 -D DEBUG_SHOW LD_FLAGS $(GLD_FLAGS) -lpthread src main.cc curr $(shell p…...
ElementUI大坑Notification修改样式
默认<style lang"scss" scoped>局部样式,尝试用deep透传也无效 实践成功方法:单独写一个style <style> .el-notification{position: absolute !important;top: 40% !important;left: 40% !important; } </style> 也支持自…...
vivado中的diagram
在 Vivado 中,“Diagram” 选项卡是 IP Integrator 的一部分,它用于创建和编辑 Block Design。Block Design 是一种图形化的设计方法,它允许设计者通过拖放组件(如 IP 核和自定义模块)并连接它们来构建复杂的数字电路设…...
项目实现:云备份②(文件操作、Json等工具类的实现)
云备份 前言文件操作实用工具类设计文件属性的获取文件的读写操作文件压缩与解压缩的实现文件目录操作 Json 实用工具类设计编译优化 前言 如果有老铁不知道当前项目实现的功能是什么的话,可以先移步这篇文章内容: 云备份项目的介绍 其中介绍了云备份项…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
