PG13 主从搭建(windows一主一从)

postgre 主从

主 10.12.18.79

从 10.12.18.120

主库操作如下:

创建replica相关权限

psql>CREATE ROLE replica login replication encrypted password '密码';

配置

配置pg_hba.conf文件,配置文件在安装设置的data目录下

在文件末尾增加一行,增加replica的用户,来进行数据库同步操作。

host replication all 10.12.18.120/32 md5

备注:以自己的实际目录为主

编辑数据目录下面postgresql配置文件

在未尾添加以下信息

wal_level = hot_standby

max_wal_senders = 10

wal_sender_timeout = 60s

刷新配置或重启db

psql>select pg_reload_conf();

关闭数据库

pg_ctl restart -D "E:\pgdata"

从库配置

1 关闭从库

pg_ctl stop  -D "E:\pgdata" -m fast

2 从主库上拉取数据

c:\PostgreSQL\13\data>pg_basebackup -F p --progre -h 10.12.18.79 -p 5432 -U replica --password -R

这时,就可以看到备库服务器上自动生成了standby.signal文件。同时,也看到在$PGDATA路径下,数据库自动帮我们配置了关于流复制的主库的信息:

注意,备份选项上带有-R选项。

3 把原来的数据目录删除或修改名称

4 修改数据目录的权限现象 CMD启动报 pg_console permission denied

原因 DATA目录权限不足 解决方法 给DATA目录Everyone 及 users权限

5启动从库

shell>pg_ctl start -D "数据目录"

验证

在主库上执行

psql>select * from pg_stat_replication

无异常,会显示从库的信息

在业务表添加或修改数据,在从库上查看数据是否正确

shell>select pg_is_in_recovery()  显示F表示是主库,T表示从

手工切换

主 关闭主库

Shell>pg_ctl stop -D "目录" -m fast

从库

Psql>select pg_promote(true,60);

60表示60秒

shell>select pg_is_in_recovery()  显示F表示是主库,T表示从

Windows环境下搭建PostgreSQL 12主从,可按以下步骤操作: ### 库配置 - **修改配置文件 `postgresql.conf`**: ```plaintext listen_addresses = '*' wal_level = replica # 设置流复制模式至少设置为replica max_wal_senders = 10 # 最大WAL发送进程数,此数量需大于等于从库个数且比max_connections小。 max_connections = 1000 # 最大连接数,从库的max_connections必须要大于库的 ``` - **创建用于复制的用户**: ```sql CREATE ROLE replica login replication encrypted password '123'; ``` - **修改库 `pg_hba.conf`**:添加如下内容,允许从库进行复制连接。 ```plaintext host replication replica 192.168.10.222/24 md5 ``` ### 从库配置 - **进行基础备份**:在 `***\PostgreSQL\17\bin` 目录下打开 `cmd` 执行命令,输入之前创建用户的密码: ```plaintext pg_basebackup -h 192.168.1.1 -p 5432 -U replica -D "D:\PostgreSQL\data" -p 5432 --wal-method=stream ``` 这里的 `192.168.1.1` 是库的IP地址,`D:\PostgreSQL\data` 是复制的目标位置。 ### 启动从库 最后启动从库,同时要确保 `postgresql.log` 有相应的权限: ```plaintext sudo -u postgres ./pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/data/postgresql.log start ``` ### 归档日志同步(可选) 如果需要进行归档日志同步,可按以下操作: - 停止PGSQL服务: ```plaintext pg_ctl stop -D ~/12/data ``` - 基于 `pg_rewind` 加入到集群: ```plaintext pg_rewind -D ~/12/data/ --source-server='host=192.168.11.66 user=postgres password=postgres' ``` 如果上述命令失败,需要启动再关闭PGSQL,然后再次执行 `pg_rewind` 命令: ```plaintext pg_ctl start -D ~/12/data pg_ctl stop -D ~/12/data pg_rewind -D ~/12/data/ --source-server='host=192.168.11.66 user=postgres password=postgres' ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值