新手如何快速搭建多套PostgreSQL集群

环境说明

名称说明
操作系统RockyLinux9.3
内存4GB
数据库管理软件CLup
主机1PG01-10.16.18.163
主机2PG02-10.16.18.164
主机3PG03-10.16.18.165

1. 安装数据库软件

我们使用官方的源安装,参考官方文档,获取源

在这里插入图片描述

选择操作系统(数据库的版本不需要特意选择),当前测试环境是RockyLinux9

在这里插入图片描述

然后根据提示信息,安装PostgreSQL软件源

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

禁用掉操作系统默认的PostgreSQL版本

sudo dnf -qy module disable postgresql

安装指定版本的PostgreSQL数据库,这里我们先安装12的版本

sudo dnf install -y postgresql12-server postgresql12-contrib

RHEL9系列的当前只能支持PostgreSQL12及以上版本的了,要想安装旧版本要么自己编译,要么下载其他编译好的。

  • contrib:这个是随PostgreSQL分发默认携带的插件包,例如pg_stat_statements

安装13的版本

sudo dnf install -y postgresql13-server postgresql13-contrib

安装14的版本

sudo dnf install -y postgresql14-server postgresql14-contrib

安装15的版本

sudo dnf install -y postgresql15-server postgresql15-contrib

安装16的版本

sudo dnf install -y postgresql16-server postgresql16-contrib

查看软件目录,默认都是安装在/usr下面,以pgsql-xx命名的

.
├── bin
├── games
├── pgsql-12
├── pgsql-13
├── pgsql-14
├── pgsql-15
├── pgsql-16
...

2. 安装数据库管理软件

这里使用的是中启乘数开发的PostgreSQL数据库管理软件CLup,安装部署参考文档:

都是一键安装的命令,安装部署起来很快,这里我们使用开源版本,商业版未注册的话也能使用,但是Agent端会有20个总CPU核心数的限制,集群数量限制为3个。开源版本没有核心数和集群数量限制,但是功能没有商业版的全,比如没有监控告警、备份恢复等。

3. 创建PostgreSQL集群

单台主机上允许创建多个PostgreSQL实例,下面我们将使用三台虚拟机,快速搭建PostgreSQL12~PostgreSQL16一主两备的集群。其思路主要是为不同版本的PostgreSQL数据库分配不同的属主、目录及端口号,这样一台主机上就可以同时运行多套PostgreSQL数据库集群。

开始之前我们先在三台机器上创建好目录/data

mkdir /data

默认的权限是drwxr-xr-x就可以。

首次创建集群时,需要先创建一个VIP池,VIP(虚拟IP)是提供给集群高可用使用的,当切换主库时,VIP也会飘到新主库上去:
在这里插入图片描述

现在我们登录CLup,然后点击HA管理->集群定义->创建集群->创建PostgreSQL流复制集群:

在这里插入图片描述

填写相关信息,其中操作系统用户不存在时需要指定下UID:

在这里插入图片描述

继续填写集群数据库的相关信息

在这里插入图片描述

然后点击下一步,后面是集群探测的信息和数据库参数,我们使用默认值,直接跳到提交这一步

在这里插入图片描述

查看创建日志,看到Success说明创建成功了

在这里插入图片描述

我们查看下集群详情页(HA管理->详情)

在这里插入图片描述

检查流复制状态,这个实际上是在主库上查了pg_stat_replication视图

在这里插入图片描述

后面我们创建其他几个版本的集群

在这里插入图片描述
在这里插入图片描述

4. 登录数据库

商业版可以在CLup页面上登录,开源版本没有这个功能。这里我们使用ssh登录主机,然后再登录数据库用户,下面以PostgreSQL12的版本为例。

登录操作系统用户

su - pg12

登录数据库(CLup在创建数据库时会在.bashrc文件中添加用户的环境变量)

psql -Upostgres

查看流复制信息

postgres=# \x
Expanded display is on.
postgres=# select * from pg_stat_replication;
-[ RECORD 1 ]----+------------------------------
pid              | 49235
usesysid         | 10
usename          | postgres
application_name | 10.16.18.164
client_addr      | 10.16.18.164
client_hostname  | 
client_port      | 57172
backend_start    | 2024-09-03 16:46:47.787031+08
backend_xmin     | 
state            | streaming
sent_lsn         | 0/7000000
write_lsn        | 0/7000000
flush_lsn        | 0/7000000
replay_lsn       | 0/7000000
write_lag        | 
flush_lag        | 
replay_lag       | 
sync_priority    | 0
sync_state       | async
reply_time       | 2024-09-03 17:37:31.193257+08
-[ RECORD 2 ]----+------------------------------
pid              | 49243
usesysid         | 10
usename          | postgres
application_name | 10.16.18.165
client_addr      | 10.16.18.165
client_hostname  | 
client_port      | 39854
backend_start    | 2024-09-03 16:46:54.665056+08
backend_xmin     | 
state            | streaming
sent_lsn         | 0/7000000
write_lsn        | 0/7000000
flush_lsn        | 0/7000000
replay_lsn       | 0/7000000
write_lag        | 
flush_lag        | 
replay_lag       | 
sync_priority    | 0
sync_state       | async
reply_time       | 2024-09-03 17:37:31.176141+08
  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建PostgreSQL集群,你可以按照以下步骤进行操作: 1. 首先,你需要在每个节点上安装PostgreSQL数据库软件。你可以从官方网站下载并安装适合你操作系统的版本。\[3\] 2. 在主节点上,你需要修改数据库密码。你可以使用以下命令来修改密码:su - postgres psql -U postgres ALTER USER postgres WITH ENCRYPTED PASSWORD '新密码'; \du \q \[1\] 3. 在从节点上,你需要使用pg_rewind命令将从节点的数据目录回滚到与主节点一致的状态。你可以使用以下命令来执行回滚操作:pg_rewind --target-pgdata=/opt/pgsql11/data --source-server='host=主节点IP地址 port=5432 user=postgres dbname=postgres password=主节点密码' \[2\] 4. 在每个节点上,你需要配置数据库集群的参数。你可以编辑每个节点上的postgresql.conf文件来进行配置。 5. 最后,你需要启动每个节点上的PostgreSQL服务,并确保它们能够相互通信。 通过以上步骤,你就可以成功搭建一个PostgreSQL集群。请注意,这只是一个简单的概述,具体的操作步骤可能会因为你的环境和需求而有所不同。建议你参考官方文档或者其他可靠的资源来获取更详细的指导。 #### 引用[.reference_title] - *1* *3* [搭建PostgreSQL高可用集群(基于Pacemaker+Corosync)](https://blog.csdn.net/mengshicheng1992/article/details/123612431)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [postgressql数据库集群搭建](https://blog.csdn.net/dragonsmile/article/details/100041279)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值