postgresql-14.6数据库主从部署

安装包准备:

postgresql-14.6.tar.gz

zlib-1.2.11.tar.gz

1、安装postgresql数据库

1)创建用户

groupadd postgres

useradd postgres -g postgres

#麒麟服务器无需执行下面两步,会自动创建

mkdir /home/postgres

chown -R postgres:postgres /home/postgres

2)安装zlib依赖(麒麟V10无需执行,系统已默认安装)

#检查是否安装zlib、zlib-devel
rpm -qa |grep zlib

#没有安装的话执行以下离线安装步骤
tar xf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
./configure
make && make install

3)安装pg数据库

1. 解压

tar xf postgresql-14.6.tar.gz

cd postgresql-14.6/

2. 预配置

./configure --prefix=/data/pgsql --without-readline

3. 编译并安装

make && make install

4. 创建数据目录及日志目录

cd /data
mkdir -p pgsql/{data,logs}
chown -R postgres:postgres pgsql/

5. 初始化数据库

su - postgres

#设置当前服务器字符集为zh_CN.utf8
export LC_ALL=zh_CN.utf8
locale
#初始化数据库
cd /data/pgsql/
./bin/initdb -E utf8 -D /data/pgsql/data/

6. 启动数据库

./bin/pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logs/pgsql.log start

7. 配置文件修改

cd /data/pgsql

vim data/postgresql.conf

listen_addresses = '*'

 

vim data/pg_hba.conf

host all all 0.0.0.0/0 trust

8. 重启服务

./bin/pg_ctl -D /data/pgsql/data/ stop

./bin/pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logs/pgsql.log start

9. 环境变量配置

vim ~/.bash_profile

export PGHOME=/data/pgsql
export PGDATA=/data/pgsql/data
export LC_ALL=zh_CN.utf8
PATH=$PATH:$PGHOME/bin

4)主从配置

从节点安装重复上面安装步骤(无需执行初始化操作)

1. 主库创建具有流复制的用户

#登录数据库

psql -h 127.0.0.1 -U postgres -p 5432

#执行sql

CREATE ROLE repl login replication encrypted password 'qaz#WSX123'

2. 修改配置文件,开启归档

vim data/postgresql.conf

# 启用归档模式
archive_mode = on
# 归档命令
archive_command = 'test ! -f /data/pgsql/pgwal/%f && cp %p /data/pgsql/pgwal/%f'
# 启用流复制
wal_level = replica
# 允许最多2个并发WAL发送进程
max_wal_senders = 2
# 保留最少2GB的WAL文件
wal_keep_size = 2GB
wal_sender_timeout = 60s

3. 修改pg_hba.conf添加从库IP

vim data/pg_hba.conf

host replication repl 73.134.32.102/24 md5

4. 重启主库

./bin/pg_ctl -D /data/pgsql/data/ stop

./bin/pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logs/pgsql.log start

5. 从库配置

拷贝主节点数据至从库(#从节点执行)

pg_basebackup -h 73.134.32.101 -U repl -D /data/pgsql/data/ --write-recovery-conf --progress --verbose

从节点配置文件修改

vim data/postgresql.conf

# 恢复最新的数据
recovery_target_timeline = 'latest'
# 主库连接信息
primary_conninfo = 'host=73.134.32.101 port=5432 user=repl password=qaz#WSX123'
# 最大连接数,大于主库
max_connections = 500
# 开启数据归并支持数据查询
hot_standby = on
# 流备份最大延迟时间
max_standby_streaming_delay = 30s
# 向主库反馈本机状态间隔时间
wal_receiver_status_interval = 10s
# 出现错误向主机反馈
hot_standby_feedback = on

启动从节点数据库

pg_ctl -D /data/pgsql/data/ -l /data/pgsql/logs/pgsql.log start

6. 主从同步验证

主库执行sql

select client_addr,sync_state from pg_stat_replication;

在主库创建用户或数据库,并于从节点上查看是否同步

主节点创建数据库和用户角色

从节点查询结果

5)登录数据库创建账号和数据库

psql -h 127.0.0.1 -U postgres -p 5432

CREATE USER kong WITH PASSWORD 'Hzsun88994788';

CREATE DATABASE kong OWNER kong;

\q退出

#数据库字符集查看

show server_encoding;
posted @ 2025-08-19 17:19  太阳的阳ฅ  阅读(47)  评论(0)    收藏  举报