资讯专栏INFORMATION COLUMN

PostgreSQL流复制监控

IT那活儿 / 2140人阅读
PostgreSQL流复制监控

PostgreSQL流复制【同步和异步】是PostgreSQL数据库高可用架构的基础,可以配合KEEPALIVE、REPMGR、PARTRONI+ETCD进行PG高可用架构部署用于数据库故障自动切换,但是监控备库的延迟通常具有很重要的意义,备库延迟于主库有多少等信息。PostgreSQL提供了系统视图pg_stat_replication来监控PG主备流复制信息。


一. 在此简单描述一下流复制启动顺序:

  1. 启动主备服务器
  2. 备用服务器启动walreceiver进程

  3. Walreceiver将连接请求发送到主服务器;如果主库未启动,则walreceiver会定期发送连接请求

  4. 当主库收到从库的连接请求后,启动walsender进程,和从库的walreceiver建立连接

  5. Walreciver发送从库集群最新的LSN

  6. 如果从库的LSN小于主库的最新LSN,则walsender将wal数据发送给从库。然后从库接收并充分WAL数据,直到追赶上主库

  7. 流复制正常工作


二. pg_stat_replication视图字段含义解释:


该视图在主库存在相关的监控信息,但不是绝对的,在PG的级联复制中,A->B->C架构中,B中pg_stat_replication也同样存在相关流复制的监控信息。

Pid:该字段存储的主库上的walsender的进程号

Usesysid:存储流复制用户的oid

Usename:存储流复制的用户名

Application_name:存储walreceiver

Client_addr:存储从库的地址

Client_port:流复制使用的端口

Backend_start:流复制开始时间

Backend_xmin::通过hot_standby_feedback 报告此备用数据的范围,即STANDBY向Master报告这些版本的旧数据从库还需要,Master将延迟清理这些旧版本数据.

State:walsender进程的状态

Startup 代表walsender进程正在启动
Catchup 代表从库正在追赶主库
Streaming 从库追赶上主库后,正在进行流式更改
Backup  walsender正在发送备份
Stopping walsender进程正在停止

Send_lsn:通过网络发送的WAL位置

Write_lsn:写入到操作系统缓存的WAL日志

Flush_lsn:写入磁盘的WAL位置

Replay_lsn:从库回放WAL的位置

Sync_priority:表示同步模式下STANDBY的优先级;0是特殊值,表示处于异步模式下

Sync_state:同步状态;async表示异步;sync表示同步复制,potential表示此standby此时是潜在的同步的,当同步的standby之一出现问题,则可能会变成同步。Async永远不会变为sync和potential状态


三. WAL发送到从库数据就可见吗?

WAL从主到备时,首先通过网络发送,然后发送到操作系统,最后刷写到磁盘。Flush_lsn表示刷到磁盘的最新WAL位置。数据刷新后就可见吗?当然不是。可能有复制冲突的现象。WAL可能已经在备上持久化了,但是有冲突,所以不能回放。当出现下面的错误信息,则表示存在回放冲突:

ERROR: canceling statement due to conflict with recovery

DETAIL: User query might have needed to see row versions that must be removed.


四. 判断主备复制的延迟

  1. 如果主库的send_lsn和reply_lsn值相同,表示,该流复制不存在延迟
  2. select pg_wal_lsn_diff(pg_current_wal_lsn (),replay_lsn) from pg_stat_replication;


END


更多精彩干货分享

点击下方名片关注

IT那活儿

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129899.html

相关文章

  • 新书推荐 |《PostgreSQL实战》出版(提供样章下载)

    摘要:作者谭峰张文升出版日期年月页数页定价元本书特色中国开源软件推进联盟分会特聘专家撰写,国内多位开源数据库专家鼎力推荐。张文升中国开源软件推进联盟分会核心成员之一。 很高兴《PostgreSQL实战》一书终于出版,本书大体上系统总结了笔者 PostgreSQL DBA 职业生涯的经验总结,本书的另一位作者张文升拥有丰富的PostgreSQL运维经验,目前就职于探探科技任首席PostgreS...

    Martin91 评论0 收藏0
  • postgresql 10主备复制测试

    postgresql 10主备流复制测试 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...

    IT那活儿 评论0 收藏2959
  • postgresql10主备复制测试

    postgresql10主备流复制测试 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...

    IT那活儿 评论0 收藏240
  • PostgreSQL9.5:pg_rewind 快速恢复备节点

    摘要:上操作备注执行抛出以上错误,错误内容很明显。再次上操作备注成功。启动原主库,上操作数据验证上操作备注成功,原主库现在是以备库角色启动,而且数据表也同步过来了。三原理四参考的主备切换使用搭建流复制环境 了解 PG 的朋友应该知道 PG 的主备切换并不容易,步骤较严谨,在激活备节点前需主动关闭主节点,否则再想以备节点角色拉起主节点会比较困难,之前博客介绍过主备切换,PostgreSQL H...

    hersion 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<