windows平台的postgresql主从数据库流备份

主:
操作系统:windows10
数据库版本:postgresql-16.2
ip:192.168.3.254
从:
操作系统:windows10
数据库版本:postgresql-16.2
ip:192.168.3.253

配置主库

配置 pg_hba.conf 文件

在 pg 的安装目录下,找到 pg_hba.conf 文件
目录示例:C:\Program Files\PostgreSQL\16\data
在文件末尾增加一行代码,目的是增加名为 replica 的用户,以进行数据库 同步的操作。填写的 ip 为从数据库的地址。

host    replication    replica    192.168.3.253/32    md5
创建 replica 相关权限
CREATE ROLE replica login replication encrypted password 'replica111'
配置 postgresql.conf 文件

在 pg 的安装目录下,找到 postgresql.conf 文件,查找并修改如下配置(如 果前面有#,需要删除#字符):

listen_addresses = '*'	//设置监听所有地址
wal_level = replica //设置流复制模式至少设置为replica
max_wal_senders = 32 //这个设置了可以最多有几个流复制连接,差不多有几个从,就设置几个 
wal_keep_size = 500 //pg_wal 目录下保留 WAL 日志的个数,每个 WAL 文件默认 16M,为保 障从库能在应用归档落后时依旧能追上主库,此值建议设置较大一点。 
wal_sender_timeout = 60s//设置流复制主机发送数据的超时时间

然后重新启动主库

配置从库

配置 data

首先将主数据库的 data 文件夹内容通过 pg_basebackup 备份过来

pg_basebackup -F p --progress -D "C:\Program Files\PostgreSQL\16\data_back" -h 192.168.3.254 -p 2903 -U replica --password

输入密码 replica 等待备份结束
然后关闭从库 pg 服务,打开主库PostgreSQL\16\的目录可以看到多出了 data_back出来, 此时备份并删除从库data 文件夹,将data_back复制并粘贴到从库修改data_back文件夹名为data。

配置 postgresql.conf 文件
listen_addresses = '*'	//设置监听所有地址
primary_conninfo = 'host=192.168.3.254 port=2903 user=replica password=replica111'
recovery_target_timeline = 'latest'
hot_standby = on //此参数控制在恢复归档期间是否支持只读操作,设置为 ON 后从库为只读模式。 
max_standby_streaming_delay = 30s //数据流备份的最大延迟时间 
wal_receiver_status_interval = 10s //多久向主报告一次从的状态,当然从每次数据复制都会向主 报告状态,这里只是设置最长的间隔时间。 
hot_standby_feedback = on//如果有错误的数据复制,是否向主进行反馈

然后在data目录自建一个standby.signal文件,用于指示standby模式
启动从库

确认是否成功
select client_addr,sync_state from pg_stat_replication;

出现如下的查询结果,便说明已经开始同步了
在这里插入图片描述

主从切换

如果主库挂了,需要紧急使用从库来作为主库,以便服务能尽快恢复,操作方法如下:
(1)改一下从库的standby.signal文件名为standby.signal_1。
(2)主库上新增standby.signal文件,按照上文的从库配置方式配置一遍主库,将从库的配置注释即可。

修改软件程序链接的数据库地址即可

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PostgreSQL 中的主从复制和归档是实现高可用性和数据备份的两种常见方式。以下是如何配置 PostgreSQL 主从复制和归档的简要说明: 1. 主从复制配置: 首先在主服务器上进行如下配置: - 修改 `postgresql.conf` 文件,启用 WAL 日志记录和复制,并指定要复制的 WAL 日志级别: ``` wal_level = replica max_wal_senders = 5 wal_keep_segments = 32 ``` - 修改 `pg_hba.conf` 文件,允许从服务器连接主服务器: ``` host replication replica 192.168.1.0/24 md5 ``` 然后在从服务器上进行如下配置: - 创建从服务器上用于复制主服务器上数据库的用户: ``` CREATE USER replica WITH REPLICATION LOGIN PASSWORD 'password'; ``` - 在 `recovery.conf` 文件中指定从服务器要连接的主服务器信息和要恢复的时间点: ``` standby_mode = on primary_conninfo = 'host=192.168.1.100 port=5432 user=replica password=password' recovery_target_timeline = 'latest' ``` 2. 归档配置: - 修改 `postgresql.conf` 文件,启用归档并指定归档目录: ``` archive_mode = on archive_command = 'cp %p /mnt/archive/%f' ``` 其中 `%p` 表示要归档的 WAL 日志路径,`%f` 表示要归档的文件名。 - 确认归档目录已经创建,并由 PostgreSQL 用户可以写入。 - 在从服务器上进行如下配置: ``` restore_command = 'cp /mnt/archive/%f %p' ``` 其中 `%p` 表示要恢复的 WAL 日志路径,`%f` 表示要恢复的文件名。 以上是 PostgreSQL 主从复制和归档的简要配置说明。需要注意的是,具体的配置可能会因为环境和需求的不同而有所不同,建议在实际应用中根据需要进行相应的调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值