postgresql主从同步

冀子石
2023-12-01

pg同步的2中方式,hot standby是备库只读的方式。
warm standby 的方式是备库不能提供只读服务。
pg的备份可以是通过cp等操作系统命令直接拷贝数据文件,然后再拷贝wal文件,即使拷贝的数据文件不一致,也能应用wal文件使数据一致。
pg的主从同步有2中方法
1使用归档文件,需要归档出wal文件,拷贝到从库上应用
2使用streaming方式,产生日志,马上应用到从库上,streaming有2中方式,同步和异步
不知道这个同步,在出现网络的问题时候会影响到主库,这个跟oracle是一样的,可以通过配置多个从库的方式解决
在主库上查看同步情况:
select pid,state,client_addr,sync_priority,sync_state,sent_location,write_location,flush_location,replay_location,pg_xlog_location_diff(pg_current_xlog_location(),replay_location) from pg_stat_replication;
在从库上查看备库的情况
select pg_is_in_recovery();

在备库上查看接受的wal日志和wal日志的状态
select pg_last_xlog_receive_location(),pg_last_xlog_replay_location(),pg_last_xact_replay_timestamp();

异步主从同步的搭建的步骤

1主数据库上需要配置hba
host: replication osdba 10.0.3.0/24 md5
允许osdba这个用户在10。0。3这个网段连接到这个数据库上流复制连接
在主库上设置postgresql.conf配置文件
listen_addresses=’*’
max_wal_senders=5 配置这个参数重新加载是没有作用的,需要重启server
wal_level=hot_standby
2使用pg_basebackup 备份,在从库上执行备份,-h指向主库
pg_basebackup -h 10.0.3.101 -p 3345 -U osdba -F p -P -x -R -D /data/pg/data/baixyu -l /data/pg/data
3修改从库上的postgresql.conf配置文件
hot_standby=on
同步的主从同步配置
除了在异步同步的配置外,在主库上的postgresql.conf文件中添加
synchronous_standby_nams参数,指定standby的名称,从库的recovery.conf文件中的primary_conninfo中指定连接参数application_name,就是上面的synchronous_standby_nams指定的值
需要设置wal_keep_segments参数和vacuum_defer_cleanup_age参数

 类似资料: