当前位置: 首页 > news >正文

centos7搭建postgresql12主从

主从搭建

192.168.159.101 node1 主库(读写)
192.168.159.102 node2 备库(只读)
两台机器首先安装postgrsql

主库

postgres用户操作:

修改postgresql.conf

# 在文件中修改(此配置仅用于远程访问, 流复制后续还有额外配置):
listen_addresses = '*'
port = 15432
max_connections = 1500       # 最大连接数,据说从机需要大于或等于该值
wal_level = replica
max_wal_senders = 2   		#最多有2个流复制连接
wal_keep_segments = 16  	
wal_sender_timeout = 60s	#流复制超时时间

# 开启归档
....

修改pg_hba.conf,添加如下:

# 追加
# replica为postgres用户
# XX.XX.XX.XX为从节点的完整IP,如果为网段配置就不是32了,md5为允许密码验证,trust为免密
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    replication     replica         192.168.159.102/32          trust
# 需要远程访问,记得加(还有一个监听,在后面配置)
# 0.0.0.0/0为任意IP
host    all             all             0.0.0.0/0               md5

root用户操作:

#授权
chown -R postgres:postgres /var/run/postgresql/
chown -R postgres:postgres /home/postgres/pgdata/

postgres用户操作:

#启动
pg_ctl start

创建流复制用户

#切换用户
su - postgres
# 连接pgsql
psql -h 192.168.159.101 -p 15432
#执行sql
create role replica login replication encrypted password '123456';
SELECT rolname from pg_roles;

从库

root用户操作

chown -R postgres:postgres /var/run/postgresql/
chown -R postgres:postgres /home/postgres/pgdata/

从主库复制数据文件到本地

# 先清空原有数据文件(如非空)
rm -rf /home/postgres/pgdata/*
# 执行复制,ip为主库ip
pg_basebackup -h 192.168.159.101 -p 15432 -U replica -Fp -Xs -Pv -R -D /home/postgres/pgdata

# 输入主库中创建的replica用户密码后,开始同步

在这里插入图片描述

更改/home/postgres/pgdata目录权限为700

chmod -R 700 /home/postgres/pgdata/

postgres用户操作:

#启动
pg_ctl start

验证:

主库执行:

# 查看当前复制会话
select * from pg_stat_replication;

在这里插入图片描述

#如果返回t说明是备库,返回f说明是主库
select pg_is_in_recovery();

在这里插入图片描述

从库执行:

在这里插入图片描述

主库创建表:

CREATE TABLE "user" (
  "id" int4 NOT NULL,
  "name" varchar(255) COLLATE "pg_catalog"."default",
  "age" int4
);

查看从库:

在这里插入图片描述

http://www.dtcms.com/a/86632.html

相关文章:

  • Node.js 格式化时间的两种方法:原生 Date 与 npm 包 moment 详解
  • [运维]Windows 开启 Hyper-V 之后上传网速变慢解决方案
  • 2025清华大学:DeepSeek教程全集(PDF+视频精讲,共10份).zip
  • Spring MVC 执行流程:一个请求在 Spring MVC 中是如何执行的?
  • css的背景
  • Linux Namespace(网络命名空间)系列二 --- 使用 Open vSwitch 和网络命名空间搭建虚拟网络
  • 前后端开发中,图片上传到不同格式(二进制数据ORbase64编码)
  • nuxt项目 详情页有阅读次数需要更新,有热门推荐列表需要更新适合做SSG吗
  • JSON相关的Java库使用指南
  • 本地部署 LangManus
  • 使用VS2022编译CEF
  • Python Web 框架选择策略:基于不同应用场景的实践指南
  • systemd-networkd 的 *.network 配置文件详解 笔记250323
  • 数据结构——b树b+树
  • 使用 ChartMuseum 容器搭建私有 Helm Chart 仓库
  • C++面试题总结
  • React+Ant Design的Layout布局实现暗黑模式切换
  • [极客大挑战 2019]Upload_3.19BUUCTF练习day3(2)
  • Ubuntu如何部署AI-Sphere-Butler(metahuman-stream)
  • 23种设计模式-创建型模式-抽象工厂
  • python中两个星号什么意思
  • C#入门学习记录(五)轻松掌握条件分支与循环语句
  • AI+金融 应用 使用DeepSeek、Qwen等大模型输入自然语言,得到通达信等行情软件公式代码,导入后使用
  • 日语学习-日语知识点小记-构建基础-JLPT-N4N5阶段(25):解释说明:という
  • draw.io费的思维导图软件、支持ProcessOn无水印导出。
  • M-LAG 技术全面解析
  • 基于springboot的墙绘产品展示交易平台(037)
  • 进程状态与PV操作
  • Android 13组合键截屏功能的彻底移除实战
  • 数据库MVCC详解