HoRain云小助手:个人主页
个人专栏: 《Linux 系列教程》《c语言教程》
⛺️生活的理想,就是为了理想的生活!
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
专栏名称 |
专栏介绍 |
《C语言》 |
本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。 |
《网络协议》 |
本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制! |
《docker容器精解篇》 |
全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。 |
《linux系列》 |
本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。 |
《python 系列》 |
本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。 |
《试题库》 |
本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等) |
目录
⛳️ 推荐
专栏介绍
一、流复制认证的两种模式
1. 基于 replication 用户的密码认证
2. 基于客户端证书的SSL认证(更安全)
二、关键配置文件解析
1. pg_hba.conf 规则字段说明
2. 备库 recovery.conf(PG12+改为 postgresql.auto.conf)
三、常见问题排查
1. 认证失败错误码
2. 日志检查
四、安全增强建议
五、版本差异注意事项
replication
用户的密码认证pg_hba.conf
中定义的规则连接到主库的复制槽(Replication Slot)repl_user
)和密码进行身份验证CREATE ROLE repl_user WITH REPLICATION LOGIN PASSWORD 'secure_password';
pg_hba.conf
: # 允许特定IP的备库通过SSL使用密码认证
hostssl replication repl_user 192.168.1.0/24 scram-sha-256
postgresql.conf
: wal_level = replica
max_wal_senders = 10 # 允许的最大WAL发送进程数
# 生成CA证书
openssl req -new -x509 -days 3650 -nodes -text -out ca.crt -keyout ca.key
# 生成备库证书(CN需匹配备库主机名)
openssl req -new -nodes -text -out standby.csr -keyout standby.key -subj "/CN=standby1"
openssl x509 -req -in standby.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out standby.crt
pg_hba.conf
: hostssl replication repl_user 192.168.1.0/24 cert clientcert=verify-ca
postgresql.conf
: ssl = on
ssl_cert_file = '/var/lib/pgsql/15/data/standby.crt'
ssl_key_file = '/var/lib/pgsql/15/data/standby.key'
ssl_ca_file = '/var/lib/pgsql/15/data/ca.crt'
pg_hba.conf
规则字段说明字段 | 示例值 | 含义 |
---|---|---|
连接类型 | hostssl |
仅允许SSL加密连接 |
数据库名 | replication |
标识流复制专用通道 |
用户名 | repl_user |
复制角色用户名 |
IP地址范围 | 192.168.1.0/24 |
允许的备库IP段 |
认证方法 | scram-sha-256 |
PostgreSQL推荐的密码哈希方式 |
recovery.conf
(PG12+改为 postgresql.auto.conf
)primary_conninfo = 'host=primary_host port=5432 user=repl_user password=secure_password sslmode=verify-full sslrootcert=/path/to/ca.crt'
FATAL: no pg_hba.conf entry for replication connection
pg_hba.conf
未配置 replication
条目password authentication failed for user "repl_user"
$PGDATA/log/postgresql.log
grep -E 'repl_user|SSL|replication' $PGDATA/log/postgresql.log
pg_hba.conf
中严格限制备库IP地址pg_stat_replication
视图实时监控复制状态 SELECT client_addr, state, sent_lsn, write_lsn
FROM pg_stat_replication;
scram-sha-256
,不再支持 md5
pg_identify_system
函数验证复制连接通过以上机制,PostgreSQL 流复制可在生产环境中实现 低延迟(亚秒级) 和 企业级安全性 的平衡。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!
如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!
Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!