pgsql集群搭建配置主从复制,openEuler、centos安装pgsql14.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/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
# 连接数据库
psql
# 修改密码
ALTER USER postgres WITH PASSWORD 'postgres';

8、修改配置文件

vim /usr/local/pgsql/data/postgresql.conf
# 修改listen_address
listen_addresses = '*'
# 编辑pg_hba.conf文件设置密码访问
vim /usr/local/pgsql/data/pg_hba.conf
# 末尾添加一行
host  all  all 192.168.59.128/24 md5

9、重启服务


# 切换用户
su - postgres
# 停止服务
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile stop
#启动服务
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

10、开放防火墙

#开放端口
sudo firewall-cmd --zone=public --permanent --add-port=5432/tcp
#重启
sudo firewall-cmd --reload

11、创建开机启动

#添加脚本文件
vim /etc/profile.d/postgresql.sh

添加进以下内容到该文件

export PATH=$PATH:/usr/local/pgsql/bin
11.1创建启动文件
cd /usr/lib/systemd/system
vim postgresql.service
添加下面内容到postgresql.service文件
[Unit]
Description=PostgreSQL database server
After=network.target
[Service]
Type=forking

User=postgres
Group=postgres
OOMScoreAdjust=-1000
Environment=PGDATA=/usr/local/pgsql/data
Environment=PGPORT=5432

ExecStart=/usr/local/pgsql/bin/pg_ctl start -D ${PGDATA} -l ${PGDATA}/logfile -s -o "-p ${PGPORT}" -w -t 300 
ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D ${PGDATA} -l ${PGDATA}/logfile -s -m fast
ExecReload=/usr/local/pgsql/bin/pg_ctl reload -D ${PGDATA} -l ${PGDATA}/logfile -s

TimeoutSec=300

[Install]
WantedBy=multi-user.target

11.2 设置自启动

chmod a+x postgresql.service 
systemctl enable postgresql.service
 systemctl start postgresql.service

二、集群搭建

一主两从搭建集群,三台机器ip分别为:
192.168.59.128
192.168.59.134
192.168.59.135
注意:从库不进行初始化,如果初始化之后,关掉数据库,并删除data目录

1、主节点:创建用于主从访问的用户

psql
create role repl login replication encrypted password 'postgres';

2、主节点:编辑文件/usr/local/pgsql/data/pg_hba.conf,允许从节点读取wal文件

host    replication    repl    192.168.59.128/32    trust
host    replication    repl    192.168.59.134/32    trust
host    replication    repl    192.168.59.135/32    trust

3、从节点:

#root用户下赋权限给postgres用户
chown postgres /usr/local/pgsql/
#切换到postgres用户
su - postgres
# 进入目录
cd /usr/local/pgsql/
# 创建数据文件
mkdir data
# 给data目录赋750或者700权限(其他权限会导致启动报错权限问题)
chmod 750 data
# 从主节点同步数据
pg_basebackup -h 192.168.59.128 -U repl -D /usr/local/pgsql/data -X stream  -P -R
# 编辑文件/usr/local/pgsql/data/postgresql.conf,加入下面内容
primary_conninfo = 'host=192.168.59.128 port=5432 user=repl password=postgres'
hot_standby = on
#启动数据库
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您好!关于 pgsql安装主从复制,我可以为您提供一些基本的指导。 首先,您需要下载并安装 PostgreSQL 数据库。您可以从 PostgreSQL 官方网站(https://www.postgresql.org/download/)下载适合您操作系统的安装程序,并按照安装向导进行安装安装完成后,您需要进行一些配置以启用主从复制。以下是一个简单的步骤: 1. 确保主服务器(Master)和从服务器(Slave)都具有相同的 PostgreSQL 版本,并且网络连通正常。 2. 在主服务器上,您需要修改 `postgresql.conf` 文件,启用 WAL(Write-Ahead Logging)并配置一个唯一标识符(通常称为“复制标识符”)。在文件中找到 `wal_level` 参数,并将其设置为 `replica` 或 `logical`。然后找到 `max_wal_senders` 参数,并将其设置为允许的最大连接数。 3. 在主服务器上,您还需要修改 `pg_hba.conf` 文件以允许从服务器连接到主服务器。添加一条适当的条目来授权从服务器的 IP 地址或主机名。 4. 在从服务器上,修改 `postgresql.conf` 文件。找到 `hot_standby` 参数,并将其设置为 `on`。然后找到 `primary_conninfo` 参数,配置主服务器的连接信息,包括主服务器的IP地址、端口号和复制标识符。 5. 在从服务器上,创建一个空的 `recovery.conf` 文件,并添加以下配置: ``` standby_mode = 'on' primary_conninfo = 'host=<主服务器IP地址> port=<主服务器端口号> user=<用户名> password=<密码> application_name=<复制标识符>' ``` 替换 `<主服务器IP地址>`、`<主服务器端口号>`、`<用户名>`、`<密码>` 和 `<复制标识符>` 为实际的值。 6. 启动主服务器和从服务器。 完成以上步骤后,从服务器就会连接到主服务器并开始复制数据。您可以通过在主服务器上执行一些写操作,然后在从服务器上验证数据是否同步来确认主从复制是否正常工作。 这只是一个简单的介绍,具体的配置可能会因您的需求和环境而有所不同。如果您需要进一步的指导或有其他问题,请随时提问!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一个小白QAQ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值