重庆思庄Oracle、Redhat认证学习论坛
标题:
Postgres主从模式部署
[打印本页]
作者:
mahan
时间:
2024-8-4 13:05
标题:
Postgres主从模式部署
一
准备工作
首先安装依赖包:
yum -y install readline-devel zlib-devel
二
部署工作
2.1 安装postgresql
将postgresql的包上传到(/tmp)文件夹中进行解压。
postgresql的离线包到官方网站下载:
https://www.postgresql.org/
tar -xzvf postgresql-13.3.tar.gz
2.2 创建postgresql的安装目录
mkdir /data01/postgresql /data01目录下创建postgresql
2.3 生成makefile
需要到解压的目录下操作:
./configure --prefix=/data01/postgresql //需要到解压的目录下操作
2.4 编译安装
在解压的目录下执行:
make && make install //在解压的目录下执行
2.5 安装工具集
PS:进入到解压后的目录下的contrib文件夹。
cd /data01/postgresql-11.7/contrib //进入到解压后的目录下的contrib文件夹
make && make install
2.6 创建postgresql用户
groupadd postgres
useradd -g postgres postgres
为了安全考虑,postgresql不允许使用root用户操作数据库,我们在系统中为了使用postgresql添加一个用户postgres:
也可以是其他用户名,但是习惯上大家都是创建postgres用户作为数据库的超级用户。
初始化数据库时,就以这个用户作为数据库的超级用户。
2.7 修改data目录的用户为postgres
cd /data01/postgresql //进入到安装的postgresql目录
mkdir data //在postgresql目录下创建data文件夹
chown -R postgres:postgres /data01/postgresql/data
2.8 修改环境变量
su - postgres
vim /home/postgres/.bash_profile
添加环境变量:
export PGHOME=/data01/postgresql
export PGDATA=/data01/postgresql/data
export PATH=$PGHOME/bin:$PATH
export MANPATH=$PGHOME/share/man:$MANPATH
export LANG=en_US.utf8
export DATE=`date +"%Y-%m-%d %H:%M:%S"`
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
alias rm='rm -i'
alias ll='ls -lh'
保存后使环境变量立即生效,否则initdb命令会找不到:
source /home/postgres/.bash_profile
2.9 初始化数据库
initdb -D /data01/postgresql/data/
2.10 启动数据库
su - postgres
cd /home/postgres //logfile需要在postgres的用户目录下创建
pg_ctl -D /data01/postgresql/data/ -l logfile start
查看5432端口是否已经启动:
netstat -nltp|grep 5432
2.1-2.10,主库备库服务器上都要操作。
2.11 主库修改/data01/postgresql/data/pg_hba.conf文件,允许备库IP通过复制用户访问数据库
2.12 主库修改/data01/postgresql/data/postgresql.conf
listen_addresses= '*'
wal_level = replica
max_connections = 10000
archive_mode = on
archive_command = 'cp %p /data01/postgresql/archive/%f'
max_wal_senders= 10
wal_keep_size = 1000 # in megabytes; 0 disables
max_slot_wal_keep_size = 10 # in megabytes; -1 disables
wal_sender_timeout = 120s # in milliseconds; 0 disables
hot_standby = on
2.13 修改完后重启主库服务
pg_ctl -D /data01/postgresql/data/ -l logfile restart
2.14 备库使用pg_basebackup命令将主节点的data同步过来
pg_basebackup -h 192.XXX.XXX.208 -p 5432 -U postgres -P -X stream -D /data01/postgresql/data -R
欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/)
Powered by Discuz! X3.2