基于windows平台的postgresql主从数据库配置

本文档详细记录了在Windows平台上配置PostgreSQL主从数据库的步骤,包括主数据库的pg_hba.conf和postgresql.conf配置,从数据库的数据迁移,recovery.conf设置,以及如何检查同步状态。通过这个过程,实现了数据库的读写分离,便于本地代码调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于目前的需求,需要做数据库的读写分离,为了方便本地代码的调试,便尝试了一下配置本地的postgre主从数据库。鉴于网上的教程都是基于Linux平台的,我便记录下基于windows的配置。

针对postgresql一些具体的概念,此处不在赘述,可以参考官方文档postgresql高可用、负载均衡和复制

一,前期准备

我手头上有两台服务器,安装了相同版本(10)基于windows平台的postgresql数据库,将分别作为主从数据库服务器:

192.168.218.31 ->主

192.168.218.106  ->从

二,主数据库操作

以下操作在主数据库的服务器进行

1. 配置pg_hba.conf文件

 文件具体位置取决于安装目录,我的是在D:\Program Files\PostgreSQL\10\data下。

在文件末尾增加一下代码,目的是增加了名为replica的用户,以进行数据库同步的操作。填写的ip为从数据库的地址。

host    replication     replica         192.168.218.106/32      md5

2. 创建replica相关权限

可以在pgadmin中直接运行sql语句:

CREATE ROLE replica login replication encrypted password 'replica'

3.配置postgresql.conf文件

进行

### PostgreSQL 15.4 离线安装步骤 离线安装 PostgreSQL 15.4 需要提前准备好安装包依赖项。以下是详细的离线安装步骤: #### 准备工作 在开始安装之前,需要确保目标服务器能够访问一个包含 PostgreSQL 安装包的文件系统。可以将安装包复制到目标服务器上,或者通过 USB 或网络共享的方式传输。 1. **下载安装包** - 对于 Linux 系统,可以从官方站点或镜像下载适用于对应操作系统的二进制文件或源码包[^2]。 - 对于 Windows 系统,下载对应的 `.exe` 或 `.msi` 文件[^3]。 2. **检查依赖项** 在 Linux 环境下,PostgreSQL 可能依赖于某些库(如 `libreadline` `openssl`)。可以通过手动安装这些依赖项来确保正常运行[^4]。 #### 安装过程 - **Linux 平台** 解压二进制文件并执行以下命令: ```bash tar -xzf postgresql-15.4.tar.gz cd postgresql-15.4 ./configure make sudo make install ``` 这些命令会完成 PostgreSQL 的编译与安装[^5]。 - **Windows 平台** 执行下载的安装程序,并按照向导完成安装。注意选择正确的安装路径以及初始化数据库集群的选项[^6]。 --- ### PostgreSQL 15.4 主从复制配置指南 主从复制是 PostgreSQL实现高可用性数据冗余的重要机制。以下是基于流复制(Streaming Replication)的主从配置步骤: #### 主节点配置 1. **编辑 `postgresql.conf` 文件** 修改以下参数以启用流复制: ```plaintext listen_addresses = '*' # 允许远程连接 wal_level = replica # 设置日志级别为 replica max_wal_senders = 3 # 允许的最大并发复制连接数 wal_keep_size = 1GB # 保留的日志量大小 archive_mode = on # 开启归档模式 archive_command = 'cp %p /path/to/archive/%f' # 归档命令 ``` 2. **编辑 `pg_hba.conf` 文件** 添加以下内容以允许从节点连接: ```plaintext host replication all 0.0.0.0/0 md5 ``` 3. **重启主节点服务** 执行以下命令以应用更改: ```bash systemctl restart postgresql ``` #### 从节点配置 1. **创建基础备份** 使用 `pg_basebackup` 工具从主节点拉取数据: ```bash pg_basebackup -h <主节点IP> -U replicator -D /var/lib/postgresql/15/main -P --wal-method=stream ``` 2. **创建恢复配置文件** 在从节点的数据目录中创建 `standby.signal` 文件,并添加以下内容: ```plaintext primary_conninfo = 'host=<主节点IP> port=5432 user=replicator password=yourpassword' ``` 3. **启动从节点服务** 启动 PostgreSQL 服务后,从节点将自动连接到主节点并开始同步数据。 --- ### 注意事项 - 确保主节点从节点之间的网络连接稳定。 - 如果需要更高的安全性,可以使用 SSL 加密通信[^7]。 - 定期监控复制延迟,确保从节点与主节点保持同步。 ```python # 示例:检查复制延迟 import psycopg2 conn = psycopg2.connect("dbname=postgres user=postgres host=<主节点IP>") cursor = conn.cursor() cursor.execute("SELECT now() - pg_last_wal_replay_timestamp();") delay = cursor.fetchone()[0] print(f"Replication delay: {delay}") ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值