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

【PostgreSQL】超简单的主从节点部署

1. 启动数据库

启动主节点

docker run --name postgres-master -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -d postgres

启动从节点

docker run --name postgres-slave -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -d postgres

需要配置挂载的存储卷

2. 数据库配置

2.1 主节点创建备份用户

进入 psql 客户端

psql -U <user> <database>
CREATE ROLE replica login replication encrypted password 'replica';

2.2 主节点和从节点修改 wal level

分别进入主节点和从节点,进入 psql 客户端,执行以下命令

ALTER SYSTEM SET wal_level = 'hot_standby';

注意,主从节点均需进行修改

2.3 主节点配置

进入主节点的挂在卷,修改postgresql.conf文件:

listen_addresses = '*'
shared_buffers = 128MB			
dynamic_shared_memory_type = posixarchive_mode = on
archive_command = 'test ! -f /data/pg_archive/%f && cp %p /data/pg_archive/%f'  # 建议开启归档,需要确保文件夹存在
max_wal_senders = 16
wal_keep_segments = 32
wal_sender_timeout = 60s

修改pg_hba.conf:

local   all             all                                     trust
host    all             all             127.0.0.1/32            trust
host    all             all             ::1/128                 trust
host    all             all               all                      md5
host   replication      replica       10.233.0.0/16         trust   

修改后重启主节点

2.4 从节点配置

进入主节点的挂在卷,修改postgresql.conf文件:

listen_addresses = '*'
shared_buffers = 128MB			
dynamic_shared_memory_type = posixhot_standby = on 
max_connections = 500 # 适当增加连接数
max_standby_streaming_delay = 30s 
wal_receiver_status_interval = 10s 
hot_standby_feedback = on 

修改pg_hba.conf:

local   all             all                                     trust
host    all             all             127.0.0.1/32            trust
host    all             all             ::1/128                 trust
host    all             all               all                      md5
host   replication      replica       10.233.0.0/16         trust   

创建recovery.conf:

standby_mode = on   
primary_conninfo = 'host=<master-host> port=<master-port> user=replica password=replica'  # 设置为主节点的信息
recovery_target_timeline = 'latest'

修改后重启从节点

3. 检查同步状态

-- 查看同步节点状态
select client_addr, sync_state from pg_stat_replication;

显示节点说明配置成功
在这里插入图片描述
我们在主节点修改了数据:
在这里插入图片描述
从节点数据会更新
在这里插入图片描述

注意:从节点不可修改,尝试修改会报错
在这里插入图片描述

详细原理:PostgreSql 主从数据库备份

相关文章:

  • python+open3d获取点云的最小外接球体及使用球体裁剪点云
  • CF后台如何设置TCP 和 UDP 端口?
  • 电涌冲击测试领域的精密测量技术研究与应用
  • [论文笔记] 超详细解读DeepSeek v3全论文技术报告
  • 【前端】每日一道面试题2:解释CSS盒模型的box-sizing属性,以及它在响应式布局中的作用。
  • 雷赛伺服电机
  • x64dbg技巧
  • 前端缓存踩坑指南:如何优雅地解决浏览器缓存问题?
  • 【计算机哲学故事1-3】默认设置:在有限的系统里,决定你想成为什么
  • Linux:libc库简单设计
  • RAG技术在测试用例生成中的应用
  • Android RecyclerView自带的OnFlingListener,Kotlin
  • 力扣-142.环形链表II
  • Windows (可永久)暂停更新用以解决兼容性、性能与稳定性问题
  • pytest自动化测试框架搭建,并生成allure测试报告
  • 基础编程题目集 6-9 统计个位数字
  • 二元随机响应(Binary Randomized Response, RR)的翻转概率
  • 手撕基于AMQP协议的简易消息队列-4(项目需求分析)
  • 如何查看某个文件中的特殊符号
  • [原创](现代Delphi 12指南):[macOS 64bit App开发]: 如何获取自身程序的所在的目录?
  • 警惕“全网最低价”等宣传,市监总局和中消协发布直播消费提示
  • 体坛联播|曼联热刺会师欧联杯决赛,多哈世乒赛首日赛程出炉
  • 奥利弗·斯通回顾越战50周年:我们不善于总结历史教训
  • 三大交易所多举措支持科创债再扩容,约160亿证券公司科创债有望近期落地
  • 央行、证监会:科技创新债券含公司债券、企业债券、非金融企业债务融资工具等
  • 世界哮喘日|专家:哮喘无法根治,“临床治愈”已成治疗新目标