PostgreSQL 主从差异查看

1. 大小差异

在主库上执行

select
        application_name,
        pg_size_pretty(pg_xlog_location_diff(pg_current_xlog_location(), replay_location)) as diff
from
        pg_stat_replication;

或者:

select
	application_name,
	client_addr,
	cur_xlog || ‘/‘ || cur_offset as cur_xlog,  
	sent_xlog || ‘/‘ || sent_offset as sent_xlog,     	     
	replay_xlog || ‘/‘ || replay_offset as replay_xlog,
	pg_size_pretty(( ((cur_xlog * 255 * 16 ^ 6) + cur_offset) - ((sent_xlog * 255 * 16 ^ 6) + sent_offset) )::numeric) as master_lag,         
	pg_size_pretty(( ((sent_xlog * 255 * 16 ^ 6) + sent_offset) - ((replay_xlog * 255 * 16 ^ 6) + replay_offset) )::numeric) as slave_lag,                                                                  
	pg_size_pretty(( ((cur_xlog * 255 * 16 ^ 6) + cur_offset) - ((replay_xlog * 255 * 16 ^ 6) + replay_offset) )::numeric) as total_lag
from (
	select
		application_name,
		client_addr,
		(‘x‘ || lpad(split_part(sent_location::text,‘/‘, 1), 8, ‘0‘))::bit(32)::bigint as sent_xlog,
		(‘x‘ || lpad(split_part(replay_location::text, ‘/‘, 1), 8, ‘0‘))::bit(32)::bigint as replay_xlog,
		(‘x‘ || lpad(split_part(sent_location::text, ‘/‘, 2), 8, ‘0‘))::bit(32)::bigint as sent_offset,
		(‘x‘ || lpad(split_part(replay_location::text, ‘/‘, 2), 8, ‘0‘))::bit(32)::bigint as replay_offset,
		(‘x‘ || lpad(split_part(pg_current_xlog_location()::text, ‘/‘, 1), 8, ‘0‘))::bit(32)::bigint as cur_xlog,
		(‘x‘ || lpad(split_part(pg_current_xlog_location()::text, ‘/‘, 2), 8, ‘0‘))::bit(32)::bigint as cur_offset
	from
		pg_stat_replication
) as s;

2. 时间差异

在从库上执行:

select now() - pg_last_xact_replay_timestamp() as replication_delay;
时间: 2024-12-25 11:41:56

PostgreSQL 主从差异查看的相关文章

pt-table-checksum检测不出主从差异处理

几个月前写过pt-table-checksum 3.0.4检测不出主从差异数据,当时的解决方案是使用旧版本,另一个挫方法是自行设置binlog_format='STATEMENT'.现在已经发布到3.0.9版本,原以为官方修复那个问题,结果还是一样的坑~最近几版pt-table-checksum在binlog_format='row',且主从存在差异数据时,却检测不出主从差异.原因就是主上没有SET @@binlog_format := 'STATEMENT',导致下面两个核心语句不是以stat

[SQL]远程使用PostgreSQL Studio可视化查看PostgreSQL数据库

1.下载 前往官网地址下载最新的PostgreSQL Studio,我下载的是 pgstudio_1.2-bin .zip,因为我的电脑里面没有tomcat. 如果电脑里有配置好tomcat,可以下载pgstudio_1.2.zip,解压之后是一个war包. 下载地址:http://www.postgresqlstudio.org/download/ 2.解压 将压缩文件解压,可以看到如下目录: 3.运行 在bin目录下运行,启动tomcat: ./catalina.sh run 4.查看 浏览

postgresql 主从配置

安装postgresql 主从是否一定需要分两台机器,主从必须要同一个版本,不然启动会报错. 3. 配置Master数据库 su – postgres /usr/local/pgsql/bin/pg_ctl –D /data/pgsql9.1 start #启动数据库 #进入数据库创建repl用户 Psql –p 5432 –U postgres –h 127.0.0.1 Create user repl superuser password ‘密码’ \q #修改postgresql.conf

Ubuntu下搭建postgresql主从服务器

安装略 postgresql主服务器: $ vi /home/postgresql/data/postgresql.conf 按a或i进入编辑模式 listen_addresses = '*' wal_level = hot_standby   (默认为注释的) max_wal_senders = 5  (默认为注释,这个参数是控制主库最多可以有多少个并发的standby数据库) wal_keep_segments = 32  (默认为注释,设置足够大的值,以防止主库生成wal日志太快,日志还没

金庸武功之“”左右互搏术“”postgresql 主从异步流复制配置

一.环境准备 a.关闭selinxu b.关闭iptables c.centos6.5 d.postgresql9.4.4 master:192.168.1.211 slave:  192.168.1.212 时间同步: #同步系统时间 [[email protected] ~]#  rm  -rf  /etc/localtime [[email protected] ~]#  ln  -s   /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

Ubuntu下搭建postgresql主从服务器(方法1)

安装略 postgresql主服务器: $ vi /etc/postgresql/9.1/main/postgresql.conf 按a或i进入编辑模式 listen_addresses = '*'   (默认为注释的,此处不改从postgresql同步时会报连接拒绝) wal_level = hot_standby   (默认为注释的) max_wal_senders = 5  (默认为注释,这个参数是控制主库最多可以有多少个并发的standby数据库) wal_keep_segments =

【mysql】主从库查看及搭建

show slave status 查看从库信息  http://blog.csdn.net/lxpbs8851/article/details/7898716 搭建主从库   http://www.cnblogs.com/lben/archive/2012/11/19/2777632.html    http://wenku.baidu.com/link?url=80yn2jpbyxueq1p7Hwkmk-oHDj6LVX8lbfmUcuPn8PEnxA3bzOiwnJyrzyVZ_BNFPF

CentOS7 PostgreSQL 主从配置( 一)

主库配置 pg_hba.conf host replication all 10.2.0.0/0 trust postgresql.conf listen_addresses = '*' max_wal_senders = 5 wal_level = hot_standby 重启主库 从库配置 安装使用yum安装 (找源 http://yum.postgresql.org/) yum install https://download.postgresql.org/pub/repos/yum/9.

postgresql主从配置

master:10.0.1.114 slaver:10.0.1.116 一.yum安装https://blog.csdn.net/weixin_41048363/article/details/80310285 二.主从配置 1.主数据配置(10.0.1.114) 1.1  初始化 /usr/pgsql-9.6/bin/postgresql96-setup initdb 1.2 启动postgresql systemctl start postgresql-9.6 1.3 切换到postgres