PostgreSQL16.4搭建一主一从集群

PostgreSQL搭建一主一从集群的过程主要涉及到基础环境准备、PostgreSQL安装、主从节点配置以及同步验证等步骤。以下是一个详细的搭建过程:

一、基础环境准备

  1. 创建虚拟机

    • 准备两台虚拟机,分别作为主节点和从节点。
    • 为每台虚拟机分配独立的IP地址和主机名。
  2. 操作系统与依赖安装

    • 确保两台虚拟机上都安装了相同版本的操作系统(如openEuler22.03/Centos7.9)。
    • 安装PostgreSQL运行所需的依赖包,如gcc、gcc-c++、readline-devel等。
  3. SSH免密登录

    • 在主节点和从节点上配置SSH免密登录,方便后续的管理操作。

二、PostgreSQL安装

  1. 下载与安装

    • 可以选择从PostgreSQL官网下载对应版本的源码包进行编译安装,或者使用包管理器(如yum)进行安装。
    • 以yum安装为例,命令如下:
      yum install -y postgresql postgresql-server
      
  2. 初始化与启动

    • 初始化数据库:service postgresql initdb
    • 启动PostgreSQL服务:systemctl start postgresql
    • 设置为开机自启:systemctl enable postgresql.service
  3. 开放端口

    • 如果防火墙已开启,需要开放PostgreSQL的默认端口(5432)。
  4. 验证安装

    • 切换到pgsql用户,尝试登录psql命令行工具进行验证。

三、主节点配置

  1. 创建复制用户

    • 在主节点上创建一个专门用于复制的用户,并赋予其复制权限。
    su - pgsql
    psql
    postgres=# create role repl login replication encrypted password 'repuser@2024';
    
  2. 修改配置文件

    • 修改postgresql.conf文件,设置listen_addresses'*',允许所有IP连接。

    • 设置wal_levelhot_standby,启用流复制。

    • 配置其他相关参数,如max_wal_senderswal_keep_segments等。

    • archive_command=‘test ! -f /postgresql/archive/%f && cp %p /postgresql/archive/%f’

    • wal_keep_size=64MB # pg13之后版本 若是设置时不带单位,则默认为 MB(0 到 2147483647) 0,0 表示 PostgreSQL 不会为流复制环境保留额外的 wal segments

    • 注意:wal_keep_segments=256 是postgresql 12及之前的版本,postgresql 13.0中,将wal_keep_segments重命名为wal_keep_size,让用户指定WAL大小,而不是WAL文件个数。在PG内核不断演进的过程中,PostgreSQL开发者在逐渐弱化wal段数量(wal文件个数)的概念,并强调wal的size,之前就有checkpoint_segments改变为max_wal_size的先例

    • 修改pg_hba.conf文件,添加对复制用户的访问权限配置。

      vi /postgresql/pgdata/pg_hba.conf
      host    all      all     0.0.0.0/0      md5
      host replication repl    0.0.0.0/0      md5
      
  3. 重启PostgreSQL服务

    • 修改配置后,需要重启PostgreSQL服务使配置生效。

      pg_ctl stop
      pg_ctl start
      

四、从节点配置

  1. 安装PostgreSQL

    • 从节点上也需要安装PostgreSQL,过程与主节点相同。
  2. 数据同步

    • 使用pg_basebackup命令从主节点同步基础数据到从节点。
    pg_basebackup -h 主节点IP -U repl -D /var/lib/pgsql/data -P -Xs -v
    -- 示例
    pg_basebackup -D /postgresql/pgdata16.4 -F p -P -R -h 192.168.80.239 -p 5432 -U repl -l /postgresql/backup/backup20240902
    
  3. 修改配置文件

    • 修改从节点的postgresql.conf文件,设置hot_standbyon,开启热备模式。
    • 修改recovery.conf文件(在PostgreSQL 12及以后版本,部分参数可以直接在postgresql.conf中配置),配置恢复模式、主节点信息等。
    • primary_conninfo = ‘host=192.168.80.239 port=5432 user=repl passowrd=repuser@2024’
  4. 启动从节点服务

    • 启动从节点的PostgreSQL服务,它将自动进入恢复模式,并从主节点同步数据。
    • [pgsql@pgstandby:/postgresql/pgdata]$ps -ef | grep postgres # 重点关注 startup recovering

五、同步验证

  1. 在主节点上创建数据

    • 在主节点上创建一些数据库或表,并插入数据。

      [pgsql@pgstandby:/postgresql/pgdata16.4]$pg_controldata
      -- OR 
      [pgsql@pgstandby:/home/pgsql]$pg_controldata /postgresql/pgdata/
      -- 
      postgres=# select * from pg_stat_replication;
      
      
      create table t_replication(id int primary key);
      insert into t_replication
      select generate_series(1,10);
      
  2. 在从节点上验证数据

    • 登录从节点的psql命令行工具,查询刚才在主节点上创建的数据,确认数据已同步。
      [pgsql@pgstandby:/postgresql/pgdata16.4]$pg_controldata
      -- OR 
      [pgsql@pgstandby:/home/pgsql]$pg_controldata /postgresql/pgdata/
      
      -- 检查表数据是否同步
      postgres=#  select * from t_replication
      

通过以上步骤,你可以成功搭建一个PostgreSQL的一主一从集群。在实际部署时,还需要根据具体环境和需求进行相应的调整和优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/872432.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实例讲解Simulink应用层开发CAN报文解包及CAN信号设置方法

在VCU应用层开发中,在输入信号中主要包括开关信号、模拟信号、CAN信号、PWM信号等,其中CAN通讯由于通讯质量高,传输数据量大,采用总线通讯方式节省大量线束,在汽车上尤其是电动汽车上大量应用,当然&#xf…

数图亮相第三届中国区域零售创新峰会:共绘零售新蓝图,携手迈向新征程

8月31日,备受瞩目的第三届中国区域零售创新峰会在历史悠久的湖北襄阳圆满落下帷幕。在这场零售行业的盛会上,数图信息科技作为重要参会企业,积极参与其中,与众多行业精英共聚一堂,共同擘画零售业的宏伟蓝图。以下是本次…

C/C++ 中的算术运算及其陷阱(详解,举例分析)

在C/C编程中,算术运算是非常基础且常用的操作。然而,这些看似简单的运算背后却隐藏着一些潜在的陷阱,如果不加以注意,可能会导致程序出现难以预料的错误。本文将探讨C/C中常见的算术运算及其潜在的陷阱,并通过实例进行…

告别格式不兼容烦恼!ape转换mp3,分享3个简单方法

各位读者们,你们是否有过这种体验:满怀期待地在网上下载一首好听的歌曲,结果怎么点击手机都播放不了,定睛一看,弹窗显示“无法播放该音频文件”。这是为什么呢?原来那首歌的音频格式是ape,不被手…

iOS——关联对象学习补充

分类 在分类中添加属性会生成对应的成员变量,会生成对应的setter和getter方法的声明,但是不会生成setter和getter方法的实现。分类中的可以写property,会编译通过,但是引用变量会报错。分类中可以/只能访问原有类中.h中的属性。如…

如何选择合适的变压吸附制氧设备

在选择合适的变压吸附(Pressure Swing Adsorption, PSA)制氧设备时,需要综合考虑多个因素以确保设备能够高效、稳定地运行,满足特定应用场景的需求。以下是一些关键步骤和考虑因素,帮助您做出明智的决策。 1. 明确应用需求 明确您的制氧需求至…

visual studio 2022更新以后,之前的有些工程编译出错,升级到Visual studio Enterprise 2022 Preview解决

系列文章目录 文章目录 系列文章目录前言一、解决方法 前言 今天遇到一个问题:visual studio 2022升级成预览版以后,之前的有些工程编译出错。首先代码、项目设置都没有改变,只是更新了visual studio 2022。 在编译工程时,编译器…

Team Render 上的 Redshift 照明与我的编辑机器上的不同(如何缓存 Redshift GI)

有时,您的灯光在另一台机器(例如属于 Team Render 农场的机器)上看起来会与在主/编辑机器上看起来不同。这是因为,即使使用相似或相同的硬件,一台机器计算全局照明的方式与另一台机器也会有所不同。 这可能会导致光线…

Docker 部署 Kibana (图文并茂超详细)

部署 Kibana ( Docker ) [Step 1] : 拉取 Kibana 镜像 docker pull kibana:7.14.0[Step 2] : 创建目录 ➡️ 启动容器 ➡️ 拷贝文件 ➡️ 授权文件 ➡️ 删除容器 # 创建目录 mkdir -p /data/kibana/{conf,plugins}# 启动容器 docker run --name kibana --restartalways \…

科普神文,一次性讲透AI大模型的核心概念

令牌,向量,嵌入,注意力,这些AI大模型名词是否一直让你感觉熟悉又陌生,如果答案肯定的话,那么朋友,今天这篇科普神文不容错过。我将结合大量示例及可视化的图形手段,为你由浅入深一次…

Centos Stream9系统安装及网络配置详解

1.镜像下载 如未拥有系统镜像文件的伙伴可通过前往下面的连接进行下载,下载完成后需将其刻录至U盘中。 PS:该U盘应为空盘,刻录文件会导该盘格式化,下载文件选择dvd1.iso完整包,适用于本地安装。 下载地址&#xff1…

恋爱相亲交友系统源码原生源码可二次开发APP 小程序 H5,web全适配

直播互动:平台设有专门的直播间,允许房间主人与其他异性用户通过视频连线的方式进行一对一互动。语音视频交流:异性用户可以发起语音或视频通话,以增进了解和交流。群组聊天:用户能够创建群聊,邀请自己关注…

【云计算】什么是云计算服务|为什么出现了云计算|云计算的服务模式

文章目录 什么是云计算服务本地部署VS云计算SaaS PaaS IaaS公有云、私有云、混合云为什么优先发展云计算服务的厂商是亚马逊、阿里巴巴等公司 什么是云计算服务 根据不同的目标用户,云计算服务(Cloud Computing Services)分为两种&#xff1…

探索动销方案创新路径,开启企业增长新引擎

在当今竞争激烈的市场中,动销方案的重要性不言而喻。然而,传统动销手段已难以应对多变的市场环境,企业急需探索创新路径。 当前动销方案面临哪些挑战呢? 首先,消费者需求越发多样化,他们追求个性化和多元化…

如何修复软件中的BUG

笔者上一篇博文《如何开发出一款优秀的软件》主要讲了如何开发一款优秀的软件及相应的必要条件。但对一个已上线,已经成型的产品,该如何解决存在的bug呢?这是本文要阐述的内容。 在这里,首先说一下bug的种类及bug严重程度分类&…

QT: Unable to create a debugging engine.

1.问题场景: 第一次安装QT,没有配置debug功能 打开控制面板》程序》找到Kit 重启电脑即可 2.问题场景: qt原本一直好好的,突然有天打开运行调试版本,提示Unable to create a debugging engine.错误。这个是指无法创…

【计算机网络】TCP连接如何确保传输的可靠性

一、确保可靠传输的机制 TCP(传输控制协议)是一种面向连接的、提供可靠交付的、面向字节流的、支持全双工的传输层通信协议 1、序列号 seq TCP头部中的序号,占32位(4字节); 发送方给报文段分配一个序列号&a…

如何锻炼自己深度思考的能力?4个方法让你快速看清事物的本质!

我们每天都会接触到海量的信息,但真正的智慧并不在于掌握多少信息,而在于如何从中提炼出有价值的知识,并对其进行深刻的理解与运用。 本周想和大家探讨一下深度思考的重要性,同时分享一些实用的方法和技巧,希望能帮你…

STM32(一)简介

一、stm32简介 1.外设接口 通过程序配置外设来完成功能 2.系统结构 3.引脚定义 4.启动配置 5.最小系统电路

【数据结构初阶】二叉树--堆(顺序结构实现)

hello! 目录 一、实现顺序结构二叉树 1.1 堆的概念和结构 1.2 堆及二叉树的性质 1.3 堆的实现 1.3.1 创建堆的结构 1.3.2 初始化和销毁 1.3.3 入堆向上调整算法(创建一个小堆) 1.3.4 出堆向下调整算法(小堆&#x…