postgresql Streaming Replication监控与注意事项
来源:互联网 发布:让mac电脑翻墙 编辑:程序博客网 时间:2024/06/16 01:32
一监控Streaming Replication集群
1 pg_stat_replication视图(主库端执行)
pid
Wal sender process的进程ID
usesysid
执行流复制的用户的OID
usename
执行流复制的用户名
application_name
连接到master的Application name
client_addr
standby的ip地址
client_hostname
Standby主机名
client_port
standby上连接端口
backend_start
Wal sender process启动时间。
state
WAL sender process状态
sent_location
WAL发送位置
write_location
Standby端写WAL位置
flush_location
Standby端写WAL刷新到磁盘的位置
replay_location
Standby端应用WAL位置
sync_priority
standby的优先级
sync_state
standby的同步类型
主库上通过执行函数把WAL位置转换成WAL文件名与偏移量
select * from pg_xlogfile_name_offset('XXX');
查看备库落后主库多少个字节的wal日志
select pg_xlog_location_diff(pg_current_xlog_location(),replay_location) from pg_stat_replication;
2pg_is_in_recovery()查看数据库状态
3pg_controldata查看数据库信息
4hot standby查看备库接收wal日志和应用wal日志的状态信息(standby上执行)
pg_last_xlog_receive_location()//standby最后接收到的事务日志。
pg_last_xlog_replay_location()//standby最后应用到的事务日志位置。
pg_last_xact_replay_timestamp()//recovery过程中最后一个事务执行的时间。
select pg_last_xlog_receive_location(),pg_last_xlog_replay_location(),pg_last_xact_replay_timestamp();
二Streaming Replication集群常见问题
2.1备库查询限制
DML,DDL限制
select * from table for update;
比row exclusivemode级别高的表锁不能执行等。
2.2备库查询冲突与处理
Ø 冲突如下:
1主库上运行的vacuum清理掉了备库上查询还需要的多版本数据。
2主库上执行lock命令或各种DDL语句会在表上产生exclusive锁,而在备库上对这些表进行查询时,就会产生冲突。
3在主库上删除一个表空间,而备库上的查询需要存放的一些工作临时文件在此表空间中。
4主库上删除了一个数据库,而备库上还有还多session还在连接在这个数据库上。
Ø 处理方法:
1备库延迟应用wal日志
参数用于控制应用wal日志最多等多久,超过这个时间,将应用wal日志,取消备库上正在执行的查询(在视图pg_stat_database_conflicts中查询取消执行的sql)。
Max_standby_archive_delay备库从归档中读取的最大延迟,默认是30s,如果设置是-1,则一直等下去。
Max_standby_streaming_delay备库从流复制中读取wal时的最大延迟,默认是30s,如果设置是-1,则一直等下去。
2主库上运行的vacuum清理掉了备库上查询还需要的多版本数据,
解决方法1
在备库上设置参数hot_standby_feedback为true来解决,设置该参数为true后,备库会通知主库,那些多版本的数据在备库上还需要,这样主库上的autovacuum就不会清理掉这些数据,从而减少冲突。
解决方法2.
在主库增大vacuum_defer_cleanup_age值,让数据库延迟清理多版本数据。
在备库recovery.conf中参数recovery_min_apply_delay。
2.3流复制注意事项
1wal_keep_segments:为备库保留多少个日志文件
主库还没有来得及把wal日志传送到备库,可能被覆盖,如果没有被归档,那么日志文件不连续了。
2vacuum_defer_cleanup_age:延迟清理多少个事务
原因:主库清理的数据,有可能备库正在查询使用,会导致查询失败。
3关于主备库archive_mode、archive_command
(1)在主库postgresql.conf配置文件配置如下
archive_mode = on
archive_command = 'cp %p /pgdb/archlog/%f'
主库开启归档模式,事务日志写入.. /data/pg_xlog目录,archive_command把归档日志复制到/ pgdb /archlog
(2)在备库archive_mode、archive_command值对备库没有任何影响,备库不会加载该配置。主库事务提交后,备库接收日志流,写入../data/pg_xlog目录并应用,但不执行archive_command归档命令。
新特性:PostgreSQL9.5.1:archive_mode = always 支持备节点应用日志流后,归档。
- postgresql Streaming Replication监控与注意事项
- postgresql streaming replication
- PostgreSQL数据库Streaming Replication流复制主备延迟测试
- postgresql 10 pg logical replication
- pgpool-II+Hot_standby+Streaming replication环境搭建
- Spark-Streaming 程序监控
- spark streaming 应用程序监控
- [PostgreSQL] PG91 的 Replication + Hot Stanby 配
- 转载:PostgreSQL-XC : Data Replication or Distribution
- Why PostgreSQL stream replication standby so fast
- nagios监控实例 -- PostgreSQL监控
- PostgreSQL使用注意事项
- postgresql安装注意事项
- hibernate4 操作postgresql 注意事项
- 关于postgresql的注意事项
- 用postgresql监控系统
- 监控PostgreSQL数据库活动
- nagios监控postgresql
- ios button超出父视图如何响应事件
- 单页面Web应用开发框架:Durandal学习入门
- Android版xx助手之天天酷跑外挂详细分析
- 查看sqlserver被锁的表以及如何解锁
- CMake使用介绍
- postgresql Streaming Replication监控与注意事项
- 停止线程的方式
- 数据结构java语言实现之栈及其应用
- This application is modifying the autolayout engine from a background thread, which can lead to engi
- 基于volley的获取网络图片
- CSS3动画、过渡结束后触发执行的事件
- HTML、CSS、JAVASCRIPT
- FC 交换机端口类型
- 常用函数详解