PostgreSQL 12.2流复制详细教程:主备部署与配置步骤

5星 · 超过95%的资源 需积分: 50 33 下载量 132 浏览量 更新于2024-07-15 收藏 482KB PDF 举报
本篇文档详细介绍了如何在PostgreSQL 12.2版本下实施流复制功能,主要针对DBA在主备机器之间的配置与管理。以下是关键步骤的详细解析: 1. **主机规划与命名**: - 主机(Master)和备机(Slave)需明确标识:Master服务器的名称为Pg1,IP为192.168.18.211;Slave服务器的名称为Pg2,IP为192.168.18.212。 - 为了便于识别,还需在`/etc/hosts`文件中添加相应的主机名映射。 2. **数据库准备**: - 使用源码编译安装的PostgreSQL 12.2版本,确保在两台机器上安装并运行。 - 在Master机器上初始化新数据库,使用命令`initdb -D /usr/local/pg12.1/data -U postgres`,并启动数据库服务。 - 创建同步用户(如:repl),用于流复制,通过`createrole`命令设置密码。 3. **安全设置**: - 配置`pg_hba.conf`文件,添加信任权限,指定信任备机(Slave)的连接: - `host replication repl pg2 trust` - 允许特定IP范围内的所有用户信任连接:`host replication repl 192.168.18.0/24 trust` - 全局信任:`host all all 192.168.18.0/24 trust` 4. **流复制配置**: - 将`postgres.conf`文件中的`listen_addresses`设为`*`,以允许所有IP连接。 - 设置`wal_level`为`replica`,这是为了支持流复制,确保主库在在线模式下运行。 - 设置`max_wal_senders`为10,限制同时处理的写入日志条数,确保数据传输的稳定。 - `wal_keep_segments`设为64,控制归档日志的数量。 - 启用`archive_mode`,并定义`archive_command`,指定当有数据被归档时的存储位置,这里示例是将归档文件复制到`/home/postgres/arch/`目录下。 5. **角色切换准备**: - 鉴于后续可能需要在主备之间进行角色切换,建议在两台机器的`postgres.conf`文件中都配置相同的参数,以保持一致性。 通过以上步骤,您将成功地在PostgreSQL 12.2环境中搭建并配置流复制,使得主库的数据可以实时地复制到备机,提供高可用性和容错能力。这对于维护大型数据库集群尤其重要,确保数据的持续可用性。DBA在实际操作时需要根据自己的网络环境和安全策略进行适当调整。