postgresql12配置主从

一、 1、:安装postgresql-12数据库;(J:\问题解决\mydepot)

初始化数据库才可以启动(/usr/pgsql-12/bin/postgresql-12-setup initdb)

2、:创建具有流复制权限用户:

CREATE ROLE replica login replication encrypted password 'replica的密码';

create role 用户 login replication encrypted password '用户密码';

3、:编辑postgresql.conf(/var/lib/pgsql/12/data)

listen_addresses = '*' #监听所有ip

archive_mode = on #开启归档

archive_command = 'test ! -f /var/lib/pgsql/12/data/pg_archive/%f && cp %p /var/lib/pgsql/12/data//pg_archive/%f' #归档命令

test ! -f /var/lib/pgsql/11/data/pg_archive/%f && cp %p /home/pg/data/pg_archive/%f

wal_level = replica #9.6开始没有hot_standby(热备模式)

max_wal_senders = 2 #最多有2个流复制连接

wal_keep_segments = 16

wal_sender_timeout=60s #流复制超时时间

max_connections = 100 #最大连接数,据说从机需要大于或等于该值

编辑(pg_hba.conf)

**最后添加:host replication replica(创建的用户) 从库ip/子网 trust

host all all 192.168.130.0/24 md5

重启postgresql:systemctl restart postgresql-12

4、:从库配置:

(1、)验证在从库是否可以访问主节点:psql -h 192.168.130.128 -U postgres

(2、)停止从服务器postgresql:systemctl stop postgresql-12

(3、)清除从库数据存储文件夹(建议移到别的目录) rm -rf /var/lib/pgsql/12/data/*

(4、)从主服务器上copy数据到从服务器,这一步叫做'基础备份'

pg_basebackup -h 主节点ip -p 5432 -U replication -Fp -Xs -v -R -D /var/lib/pgsql/12/data

(5、)此时data目录下会出现standby.signal文件,编辑此文件:

添加:standby_mode= 'on'

(6、)修改postgresql.conf文件(/var/lib/pgsql/12/data)

primary_conninfo = 'host=主节点IP port=5432 user=replica password=replica用户的密码' #从机信息和连接用户

recovery_target_timeline = latest #说明回复到最新状态

max_connections = 120 #大于主节点,正式环境应当重新考虑此值的大小

hot_standby = on #说明这台机器不仅用于数据归档,还可以用于数据查询

max_standby_streaming_delay = 30s #流备份的最大延迟时间

wal_receiver_status_interval = 10s #向主机汇报本机状态的间隔时间

hot_standby_feedback = on #r出现错误复制,向主机反馈

(7、)重启从库:systemctl restart postgresql-12

5、连接主库执行:select client_addr,sync_state from pg_stat_replication; (有数据代表成功)

6、select pg_is_in_recovery();(结果显示f为主库,t为从库)

相关推荐
芒果披萨4 分钟前
Linux文件类基础命令行1
linux·运维·服务器
学嵌入式的小杨同学9 分钟前
STM32 进阶封神之路(八):外部中断 EXTI 实战 —— 按键检测从轮询到中断(库函数 + 寄存器双版本)
linux·stm32·单片机·嵌入式硬件·mcu·架构·硬件架构
萝卜白菜。20 分钟前
ClassCastException: oracle.sql.BLOB cannot be cast to oracle.sql.BLOB问题
数据库·oracle
czlczl2002092534 分钟前
Mysql的多版本快照MVCC机制与Mysql四种隔离级别
数据库·mysql
有想法的py工程师37 分钟前
PostgreSQL 事务隔离级别详解(以及与MySQL实现差异)
数据库·mysql·postgresql
chuxinweihui41 分钟前
MySQL内外连接
数据库·mysql
杨云龙UP2 小时前
ODA服务器RAC节点2/u01分区在线扩容操作记录及后续处理流程(Linux LVM + ext4 文件系统在线扩容操作手册)_20260307
linux·运维·服务器·数据库·ubuntu·centos
parafeeee9 小时前
程序人生-Hello’s P2P
数据库·后端·asp.net
欲买桂花同载酒5829 小时前
程序人生-Hello’s P2P
运维·服务器·数据库
iPadiPhone9 小时前
流量洪峰下的数据守护者:InnoDB MVCC 全实现深度解析
java·数据库·mysql·面试