pgsql集群搭建配置主从复制,openEuler、centos安装pgsql14.7

本文详细介绍了如何在Linux上单机部署PostgreSQL14.7,包括下载、安装、配置、用户管理、数据库初始化、防火墙设置和集群搭建(一主两从)。

一、单机部署

本机ip:192.168.59.128,配置中该ip需要切换为真是本机ip

1、下载对应版本

dnf update
wget https://ftp.postgresql.org/pub/source/v14.7/postgresql-14.7.tar.gz

2、安装gcc、zlib

(个人安装时gcc版本为10.3.1)

yum install gcc
yum install zlib-devel

3、解压

tar -zxvf postgresql-14.7.tar.gz

4、编译

./configure
make
make install

5、创建用户和组

groupadd postgres
useradd -g postgres postgres
passwd postgres

6、初始化数据库

#创建数据目录
mkdir /usr/local/pgsql/data
#赋权限
chown postgres /usr/local/pgsql/data
#切换用户
 su - postgres

初始化目录

 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

7、启动数据库

/usr/local/pgsql
### Docker 环境下 PostgreSQL 主从集群配置方法 1. **创建网络**:创建一个 Docker 网络,用于主从节点之间的通信。 ```bash docker network create db ``` 2. **编写 Docker Compose 文件**:定义主库和从库的服务配置。 ```yaml version: '3' services: master: image: postgres:latest container_name: postgres_master environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: mydb volumes: - ./master_data:/var/lib/postgresql/data networks: - db ports: - "5432:5432" command: postgres -c wal_level=logical -c max_wal_senders=10 -c wal_keep_segments=64 slave: image: postgres:latest container_name: postgres_slave environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: mydb volumes: - ./slave_data:/var/lib/postgresql/data networks: - db depends_on: - master ``` 3. **部署主库**:启动主库容器。 ```bash docker-compose up -d master ``` 4. **配置主库**:进入主库容器,修改 `postgresql.conf` 和 `pg_hba.conf` 文件。 ```bash docker exec -it postgres_master bash ``` 在 `postgresql.conf` 中添加或修改以下参数: ```plaintext wal_level = logical max_wal_senders = 10 wal_keep_segments = 64 ``` 在 `pg_hba.conf` 中添加允许从库连接的规则: ```plaintext host replication replica <slave_ip>/32 trust ``` 重启主库容器: ```bash docker restart postgres_master ``` 5. **部署从库**:启动从库容器。 ```bash docker-compose up -d slave ``` 6. **配置从库**:进入从库容器,使用 `pg_basebackup` 命令从主库复制数据。 ```bash docker exec -it postgres_slave bash pg_basebackup -h <master_ip> -U replica -D /var/lib/postgresql/data -X stream -P ``` 创建 `recovery.conf` 文件: ```plaintext standby_mode = 'on' primary_conninfo = 'host=<master_ip> port=5432 user=replica password=replica' ``` 重启从库容器: ```bash docker restart postgres_slave ``` 7. **测试同步**:在主库插入数据,检查从库是否同步。 ### Docker 环境下 PostgreSQL 主备架构配置方法 主备架构的配置与主从集群类似,主要区别在于备库不对外提供读写服务,仅作为主库的备份。 1. **创建网络**:同主从集群配置。 2. **编写 Docker Compose 文件**:定义主库和备库的服务配置。 ```yaml version: '3' services: primary: image: postgres:latest container_name: postgres_primary environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: mydb volumes: - ./primary_data:/var/lib/postgresql/data networks: - db ports: - "5432:5432" command: postgres -c wal_level=hot_standby -c max_wal_senders=10 -c wal_keep_segments=64 standby: image: postgres:latest container_name: postgres_standby environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: mydb volumes: - ./standby_data:/var/lib/postgresql/data networks: - db depends_on: - primary ``` 3. **部署主库**:同主从集群配置。 4. **配置主库**:同主从集群配置,但 `wal_level` 可以设置为 `hot_standby`。 5. **部署备库**:同主从集群配置。 6. **配置备库**:同主从集群配置,但在 `recovery.conf` 中可以设置 `hot_standby = on` 以支持只读查询。 7. **测试同步**:同主从集群配置
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个小白QAQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值