【PG流复制】Postgresql流复制部署过程及性能测试
发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,--异步流复制 ,事务提交时不需要等待备库接收并写入wal日志便返回成功。--postgresql.conf 添加以下参数wal_level=replicaarchive_mode=onarchiv
千家信息网最后更新 2025年02月24日【PG流复制】Postgresql流复制部署过程及性能测试
--异步流复制 ,事务提交时不需要等待备库接收并写入wal日志便返回成功。--postgresql.conf 添加以下参数wal_level=replicaarchive_mode=onarchive_command='/bin/date'max_wal_senders=10 ##max number of walsender processeswal_keep_segments=512 ##in logfile segments,16MB each; 0 disableshot_standby=on--pg_hab.conf#replication privilegehost replication repuser 192.168.8.81/32 md5host replication repuser 192.168.8.25/32 md5--create usercreate user repuser replication login connection limit 5 encrypted password 're12a345';--start backupselect pg_start_backup('fancs_bk1');tar czvf pg_root.tar.gz data --exclude=data/pg_walscp pg_root.tar.gz postgres@192.168.8.25:/pgdata--node2tar xvf pg_root.tar.gzmkdir pg_walselect pg_stop_backup();--node2cp /pgdata/pgsql/share/postgresql/recovery.conf.sample $PGDATA/recovery.confrecovery_target_timeline='latest'standby_mode=onprimary_conninfo='host=192.168.8.81 port=5432 user=repuser'--编写密码文件,免密码登录[postgres@mystandby ~]$ touch .pgpass[postgres@mystandby ~]$ chmod 0600 .pgpass [postgres@mystandby ~]$ cat .pgpass 192.168.8.81:5432:replication:repuser:re12a345192.168.8.25:5432:replication:repuser:re12a345--查看进程postgres 4902 4838 0 15:14 ? 00:00:00 postgres: wal sender process repuser 192.168.8.25(30137) streaming 0/B000140postgres 5670 5668 0 15:14 ? 00:00:00 postgres: wal receiver process streaming 0/B000140--测试create table t7 (id int4,name text);insert into t7 values(1,'firsouler');select * from t7;--查看流复制同步方式select usename,application_name,client_addr,sync_state from pg_stat_replication;--同步流复制,需要等待备库接收wal日志,增加了事务响应时间--postgresql.conf 单实例环境synchronous_commit #on 表示提交事务时需要等待本地wal写入wal日志后才向客户端返回成功,安全,性能损耗 #off 可能数据丢失,提高性能 #local 与on类似 --流复制环境 #remote_write 等待备库写入系统缓存中 # on 备库写入wal日志 #remote_apply 备库完成重做 --recovery.conf node2 备库别名primary_conninfo='host=192.168.8.25 port=5432 user=repuser application_name=node2'--node1 设置以下参数synchronous_commit=onsynchronous_standby_names='node2'--同步流复制,备库宕机,主库一直等待, 不建议同步流复制--性能测试,并发 跟cpu数量有关系,性能方面--测试脚本create table test_per1(id int4,name text,create_time timestamp() without time zone default clock_timestamp());insert into test_per1(id,name) select n,n||'_per1' from generate_series(1,10000000) n;alter table test_per1 add primary key(id);--select 脚本\set v_id random(1,1000000)select name from test_per1 where id=:v_id;--写测试\set v_id random(1,1000000)update test_per2 set flag='1' where id=:v_id;--读测试,单实例最佳,异步流复制次之,写测试,单实例与异步差异不明显,同步流复制慢pgbench -c 2 -T 120 -d postgres -U postgres -n N -M prepared -f update_per2.sql > update_2.out 2>&1 &--流复制监控select * from pg_stat_replication;--主备延迟 write_lag 主库wal落盘,等待备库接收wal日志,(操作系统缓存中)并返回确认信息;flush_lag(已写入wal日志,但没应用);replay_lag(已应用)select pid,usename,client_addr,state,write_lag,flush_lag,replay_lag from pg_stat_replication;--replay_lag>flush_lag>write_lag--10之前的版本select extract(second from now()-pg_last_xact_replay_timestamp());--通过流复制wal日志应用延迟衡量 返回字节数select pid,usename,client_addr,state,pg_wal_lsn_diff(pg_current_wal_lsn(),write_lsn) write_delay,pg_wal_lsn_diff(pg_current_wal_lsn(),flush_lsn) flush_delay,pg_wal_lsn_diff(pg_current_wal_lsn(),replay_lsn) replay_delay from pg_stat_replication;--接收进程相关试图select * from pg_stat_wal_receiver;--备库,恢复进程是否处于恢复模式select pg_is_in_recovery();--备库最近接收的wal位置select pg_last_wal_receive_lsn();--备库最近应用的wal日志select pg_last_wal_replay_lsn();--备库最近事务的应用时间select pg_last_xact_replay_timestamp();--主库wal当前写入位置select pg_current_wal_lsn();--计算两个wal日志位置的偏移量select pg_wal_lsn_diff('','');
日志
测试
同步
应用
性能
事务
位置
实例
进程
成功
参数
密码
时间
环境
系统
缓存
脚本
延迟
明显
安全
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
h3c服务器硬盘状态灯
中国数字网络安全刘新华
佩信高科技互联网
数据库导入数据方法
网络安全考公务员算计算机类吗
大数据网络安全管理的建议
延吉赢桥软件开发有限公司
最新的网络安全漏洞
广东计算机应用软件开发公司
华为自主品牌服务器
代理服务器为什么可以隐藏ip
软件开发4人分工角色
软件开发工程师的职务是什么
哈尔滨腾讯宝塔服务器崩溃
java软件开发证书考什么
mysql服务器搭建教程
如何保护交换网络安全
目前最先进的网络技术
小学二年级网络安全班队会记录
数据库的平凡非平凡
教育系统网络安全教育周答题
软件开发工程师学费
北仑手机软件开发教程
易语言数据库修改时间
怎么跟客服申请服务器回档
王安网络技术服务公司
关系营销和数据库营销的关系
华为瘦客机刷聚合服务器
诺丁山下载软件开发
网络安全技术经典书籍