设为首页 加入收藏

TOP

pgsql主备搭建及切换(五)
2019-09-03 03:38:15 】 浏览:98
Tags:pgsql 搭建 切换
$cp /usr/pgsql-10/share/recovery.conf.sample $PGDATA/recovery.conf    --此文件在pghome/share/下面

[pgsql@pgstandby ~]$ vi /database/pg10/pg_root/recovery.conf

recovery_target_timeline = 'latest'                      

standby_mode = on

primary_conninfo = 'host=192.168.231.131 port=5432 user=repuser'

 

[pgsql@pgstandby ~]$ pg_ctl start

 

postgres=# select usename,application_name,client_addr,sync_state from pg_stat_replication;     --主库查询查看同步模式

 usename | application_name |   client_addr   | sync_state

---------+------------------+-----------------+------------

 repuser | walreceiver      | 192.168.231.132 | async

 

2.5 同步流复制

异步流复制指主库上提交事务时不需要等待备库接收井写入WAL日志时便返回成功,如果主库异常看机,主库上已提交的事务可能还没来得及发送给备库,就会造成备库数据丢失,备库丢失的数据量和WAL复制延迟有关,WAL复制延迟越大,备库上丢失的数据量越大。同步流复制在主库上提交事务时需等待备库接收并WAL日志,当主库至少收到一个备库发回的确认信息时便返回成功,同步流复制确保了至少一个备库收到了主库发送的WAL日志,一方面保障了数据的完整性,另一方面增加了事务响应时间,因此同步流复制主库的吞吐量相比异步流复制主库吞吐量低。

 

配置同步流复制

备库recovery.conf配置文件设置以下参数,如下所示:

primary_conninfo=’host=192.168.231.131 port=5432 user=repuser application_name=node2’

 

primary_conninfo参数添加application_name选项,application_name选项指定备节点的别名,主库postgresql.conf的synchronous_standby_names参数可引用备库application_name选项设置的值,这里设置成node2。

主库上postgresql.conf配置文件设置以下参数,其他参数和异步流复制配置一致。

synchronous_commit = on或remote_apply     --建议设置为on,remote_apply是备库应用后才返回信息

synchronous_standby_narnes = ’node2’

 

wal_level配置也和异步流复制配置一致,设置成replica或logical即可。

重启主库与备库查询复制状态为sync

[pgsql@pgsql pg_root]$ psql postgres

psql (10.9)

Type "help" for help.

 

postgres=# select usename,application_name ,client_addr ,sync_state from pg_stat_replication;

 usename | application_name |   client_addr   | sync_state

---------+------------------+-----------------+------------

 repuser | node2            | 192.168.231.132 | sync

(1 row)

 

postgres=#

 

流复制监控

pg_stat_replication视图

application_name:连接WAL发送进程的应用别名,此参数显示值为备库recovery.conf配置文件中primary_conninfo参数application_name选项的值。

client_addr:连接到WAL发送进程的客户端IP地址,也就是备库的IP。

backend_start:WAL发送进程的启动时间。

state:显示WAL发送进程的状态,startup表示WAL进程在启动过程中;catchup表示备库正在追赶主库;streaming表示备库已经追赶上了主库,并且主库向备库发送WAL日志流,这个状态是流复制的常规状态;backup表示通过pg_basebackup正在进行备份;stopping表示WAL发送进程正在关闭。

sent_lsn:WAL发送进程最近发送的WAL日志位置。

write_lsn:备库最近写人的WAL日志位置,这时WAL日志流还在操作系统缓存中,还没写人备库WAL日志文件。

flush_lsn:备库最近写人的WAL日志位置,这时WAL日志流已写入备库WAL日志文件。

replay_lsn:备库最近应用的WAL日志位置。

write_lag:主库上WAL日志落盘后等待备库接收WAL日志(这时WAL日志流还没写人备库WAL日志文件,还在操作系统缓存中)并返回确认信息的时间。

flush_lag:主库上WAL日志落盘后等待备库接收WAL日志(这时WAL日志流已写人备库WAL日志文件,但还没有应用WAL日志)并返回确认信息的时间。

replay_lag:主库上WAL日志落盘后等待备库接收WAL日志(这时WAL日志流已写入备库WAL日志文件,并且己应用WAL日志)并返回确认信息的时间。

sync_priority:基于优先级的模式中备库被选中成为同步备库的优先级,对于基于quorum的选举模式此字段则无影响。

sync_state:同步状态,有以下状态值,async表示备库为异步同步模式;potential表示备库当前为异步同步模式,如果当前的同步备库岩机,异步备库可升级成为同步备库;sync表示当前备库为同步模式;quorum表示备库为quorum standbys的候选。

 

p

首页 上一页 2 3 4 5 6 下一页 尾页 5/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Navicat Premium12.0 常用快捷键 下一篇文件被占用导致Hive Load文件不成..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目