PostgreSQL13-流复制主备切换-延迟备库_同步优选提交_级联复制

13.流复制主备切换 延迟备库 同步优选提交 级联复制

主备切换-文件触发的方式

1.停止主库 
    pg_ctl stop -m smart
2.备库创建主备切换文件(与备库recovery.conf中的trigger_file设置的一致)
    touch /var/lib/pgsql/9.6/data/.trigger
    同步完成后recovery.conf变为recovery.done
    详细的配置文件位于 /usr/local/psql9.6/share/postgresql/recovery.conf.sample

3.原主库创建recovery.conf,修改primary_conninfo为新主库信息
4.重启原主库

主备切换-pgctl promote方

1.停止主库 
    pg_ctl stop -m smart
2.在备库上执行 pg_ctl promote
    recovery.conf中trigger_file不用指定
    同步完成后recovery.conf变为recovery.done
3.原主库创建recovery.conf,修改primary_conninfo为新主库信息
4.重启原主库

备库切换为主库时忘记关闭旧主库

备库postgresql.conf设置 wal_log_hints = on
备库操作,填写原主库信息
pg_rewind --target-pgdata $PGDATA --source-server='host=192.168.195.132 port=5432 user=postgres dbname=auto' -P
备库 mv recovery.done recovery.conf
备库 pg_ctl start

延迟备库

vim recovery.conf
recovery_min_applt_delay (integer)
1.默认单位毫秒 ms ,其他单位s,min,h,d
2.开启此参数将阻塞同步流复制主库的写操作
3.过长的时间会使pg_wal日志过大

一主多备流复制,同步优选提交

vim postgresql.conf
synchronous_standby_names (string)
有三种形式
standby_name [, ...]
FIRST num_sync (standby_name [, ...])
ANY num_sync (standby_name [, ...])
分别对应
synchronous_standby_names = 's1 s2 s3'
--第一个为备库,第二个及以后为潜在备库
--s1宕机后,后续备库自动顶替
synchronous_standby_names = FIRST 2(s1 s2 s3)
--设置两个同步备库
--主库提交事务后,需要等待s1s2将日志流写入WAL日志文件后再返回成功
--s1s2宕机后s3升级为备库
synchronous_standby_names = ANY 2(s1 s2  s3)
--列表中的任意两个为同步备库
--需要等待任意两个备库写入WAL文件,再返回成功

级联复制

1.级联备库和备库都从主库同步初始数据
pg_basebackup -D /var/lib/pgsql/9.6/data -Fp -Xs -v -P -h 172.21.16.6 -p 5432 -U repuser
2.级联备库的primary_conninfo 指向主库,备库的则指向级联备库
posted @   立勋  阅读(138)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示