在现代互联网环境中,PostgreSQL作为一种强大的开源关系数据库管理系统,因其高效性、稳定性和高可扩展性而广受欢迎。构建一个完善的PostgreSQL集群,可以提高数据库的可用性、性能以及数据的安全性。本文将介绍如何搭建一个PostgreSQL集群,并给出相应的代码示例。

一、前期准备

在搭建集群之前,我们需要准备好两台或多台服务器,确保它们之间可以互相通信。假设我们有两台服务器,IP地址分别为192.168.1.10(主节点)和192.168.1.11(从节点)。

  1. 安装PostgreSQL

在每台服务器上安装PostgreSQL,可以使用以下命令:

# Ubuntu 系统
sudo apt update
sudo apt install postgresql postgresql-contrib

# CentOS 系统
sudo yum install postgresql-server postgresql-contrib
  1. 配置主节点

在主节点上,我们需要修改postgresql.confpg_hba.conf文件,以允许从节点进行连接。

# 修改 postgresql.conf
sudo nano /etc/postgresql/12/main/postgresql.conf

# 找到以下配置并修改
listen_addresses = '*'
wal_level = replica
max_wal_senders = 10
wal_keep_segments = 64
hot_standby = on
# 修改 pg_hba.conf
sudo nano /etc/postgresql/12/main/pg_hba.conf

# 添加以下行,允许从节点连接
host    replication     all             192.168.1.11/32           md5
  1. 创建复制用户

在主节点上创建一个用于复制的用户。

# 进入 PostgreSQL
sudo -u postgres psql

# 创建用户
CREATE ROLE replicator WITH REPLICATION LOGIN PASSWORD 'your_password';
  1. 重启主节点
sudo systemctl restart postgresql

二、配置从节点

  1. 停止从节点的PostgreSQL服务
sudo systemctl stop postgresql
  1. 备份主节点的数据

使用pg_basebackup命令从主节点备份数据到从节点。

sudo -u postgres pg_basebackup -h 192.168.1.10 -D /var/lib/postgresql/12/main -U replicator -v -P --wal-method=stream
  1. 创建recovery.conf文件

在从节点的数据目录下创建一个recovery.conf文件,用于配置从节点连接主节点。

sudo nano /var/lib/postgresql/12/main/recovery.conf

# 添加以下内容
standby_mode = 'on'
primary_conninfo = 'host=192.168.1.10 port=5432 user=replicator password=your_password'
trigger_file = '/tmp/postgresql.trigger'
  1. 启动从节点
sudo systemctl start postgresql

三、验证集群

  1. 查看主节点和从节点状态

在主节点上,使用以下命令查看复制状态:

SELECT * FROM pg_stat_replication;

在从节点上,可以执行以下命令查看是否处于恢复模式:

SELECT pg_is_in_recovery();

结语

通过以上步骤,我们成功搭建了一个基本的PostgreSQL集群。这样的集群架构提高了数据库的可用性和数据的安全性。在实际应用中,还可以根据业务需求进行更多的优化与调整,例如使用负载均衡器、设置自动故障切换等功能,以实现更为复杂和高效的数据库集群系统。希望这篇文章能对你搭建PostgreSQL集群有所帮助。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部