香港服务器Linux下PostgreSQL高可用配置指南
在香港服务器的Linux环境中,PostgreSQL数据库的高可用配置是保障业务连续性的关键。无论是电商平台的实时订单,还是企业系统的审批流程,稳定的数据库服务都能避免因故障导致的用户流失和数据损失。本文从准备工作到故障转移,手把手拆解高可用配置全流程。
高可用配置前的3个关键准备
实际运维中发现,未完成基础准备的配置往往会反复踩坑。首先需确认香港服务器已正确安装PostgreSQL(建议版本12及以上),可通过`psql --version`命令验证版本号。其次要准备两台同网段的香港服务器:一台作为主节点(Primary,处理写操作),另一台作为从节点(Standby,同步主节点数据)。最后需完成SSH免密登录设置——在主服务器执行`ssh-keygen`生成密钥对,将公钥`~/.ssh/id_rsa.pub`复制到从服务器的`~/.ssh/authorized_keys`文件,后续操作无需重复输入密码。
主服务器配置:开启数据复制的开关
主服务器的配置核心是启用WAL(预写日志,Write-Ahead Logging)复制功能。打开`/var/lib/postgresql/13/main/postgresql.conf`文件(路径根据安装版本调整),修改以下参数:
wal_level = replica # 开启复制所需的WAL日志级别
max_wal_senders = 10 # 最大同时运行的WAL发送进程数(按需调整)
wal_keep_segments = 64 # 保留的WAL段数(防止从节点同步过慢导致日志被覆盖)
修改完成后执行`pg_ctl reload`重启服务使配置生效。
接下来编辑`pg_hba.conf`文件(通常与`postgresql.conf`同目录),添加从节点的复制权限:
host replication replicator <从服务器IP>/32 md5
这里的`replicator`是专用复制用户,需在主服务器的psql命令行中创建:
CREATE USER replicator WITH REPLICATION PASSWORD 'YourStrongPassword';
(注意:密码建议包含字母+数字+符号,长度不小于8位)
从服务器配置:同步数据并激活备用状态
从服务器需要先通过`pg_basebackup`工具全量复制主服务器数据。执行命令:
pg_basebackup -h <主服务器IP> -D /var/lib/postgresql/13/main -U replicator -P -X stream
参数说明:`-h`指定主服务器IP,`-D`为从服务器数据存储路径,`-U`是复制用户,`-X stream`开启流式复制(边复制边接收新WAL日志)。命令执行时会显示进度,完成后数据目录将与主服务器完全一致。
复制完成后,编辑从服务器的`postgresql.conf`,添加主节点连接信息:
primary_conninfo = 'host=<主服务器IP> port=5432 user=replicator password=YourStrongPassword'
最后,在数据目录下创建空文件`standby.signal`(路径:`/var/lib/postgresql/13/main/standby.signal`),标记该节点为从服务器。执行`pg_ctl start`启动服务,从节点将自动连接主节点开始同步。
验证与故障转移:确保配置真正生效
配置完成后需验证数据同步是否正常。在主服务器执行:
CREATE TABLE test_table (id SERIAL PRIMARY KEY, info TEXT);
INSERT INTO test_table (info) VALUES ('高可用测试数据');
接着登录从服务器的psql,执行`SELECT * FROM test_table;`,若能看到刚插入的“高可用测试数据”,说明主从复制成功。
为实现自动故障转移,推荐使用Patroni工具(开源高可用管理方案)。简单来说,Patroni会监控主节点状态(默认每10秒检查一次),当主节点超过30秒无响应时,会自动将从节点提升为主节点,并更新客户端连接配置。安装Patroni后只需简单配置DCS(分布式协调系统,如Consul),即可实现“故障自动接管+手动切换”双保障。
需要注意的是,香港服务器的网络稳定性会直接影响复制延迟。若业务对延迟敏感,可选择BGP多线接入的服务器(支持电信/联通/移动三网优化),确保主从节点间的WAL日志传输更稳定。
通过以上步骤完成配置后,PostgreSQL数据库在香港服务器的Linux环境中,即可实现“主节点故障-从节点秒级接管-业务0中断”的高可用能力。无论是日常运维还是突发故障,都能为核心业务数据提供坚实保障。