1、部署Postgres
1.1准备rpm安装包并安装依赖
rpm包下载地址:Index of /pub/repos/yum/14/redhat/rhel-7-x86_64/ (postgresql.org)
su - postgres
cd /usr/pgsql-14/bin && ./initdb --username=postgres -D /data1/pgsql/data --encoding=UTF8 --lc-collate=en_US.UTF-8 --lc-ctype=en_US.UTF-8
yum install libxslt libicu python36-libs python2-libs https://libperl.so
1.2创建安装目录并上传目录,安装rpm包
mkdir /data1/pgsql
cd /data/pgsql/pgsql数据库安装包/ && rpm -ivh *.rpm
1.3创建数据目录
mkdir -p /data1/pgsql/{log,bin,data} && chown -R postgres:postgres /data1/pgsql
chmod -R 755 /data1/pgsql
1.4初始化PG数据库
su - postgres
cd /usr/pgsql-14/bin && ./initdb --username=postgres -D /data1/pgsql/data --encoding=UTF8 --lc-collate=en_US.UTF-8 --lc-ctype=en_US.UTF-8
1.5修改配置
切回root用户 sudo -i
vim /data1/pgsql/data/postgresql.conf
(下列配置为16G机器配置)
listen_addresses = '*'
port = 6543
max_connections = 2000
shared_buffers = 4GB
maintenance_work_mem = 256MB
wal_buffers = 8MB
effective_cache_size = 2GB
wal_level = replica
wal_log_hints = on
max_wal_senders = 16
hot_standby = on
1.6修改为远程无密码可登录
vim /data1/pgsql/data/pg_hba.conf
86行:host all all 0.0.0.0/0 trust
1.7修改密码
su - postgres
cd /usr/pgsql-14/bin
./pg_ctl -D /data1/pgsql/data -l /data1/pgsql/log/pgsql.log start
psql -h localhost -p 6543 -U postgres
ALTER USER postgres WITH PASSWORD '****';
1.8修改回远程需密码可登录
vim /data1/pgsql/data/pg_hba.conf
86行:host all all 0.0.0.0/0 md5
1.9重启数据库生效文件
./pg_ctl -D /data1/pgsql/data -l /data1/pgsql/log/pgsql.log stop
./pg_ctl -D /data1/pgsql/data -l /data1/pgsql/log/pgsql.log start
1.10配置启动关闭命令
cd /data1/pgsql/bin
vim start_EWL_PGS.sh
su - postgres -c "/usr/pgsql-14/bin/pg_ctl -D /data1/pgsql/data -l /data1/pgsql/log/pgsql.log start"
vim stop_EWL_PGS.sh
su - postgres -c "/usr/pgsql-14/bin/pg_ctl -D /data1/pgsql/data -l /data1/pgsql/log/pgsql.log stop"
chown -R postgres:postgres /data1/pgsql
chmod -R 755 /data1/pgsql
2、配置主从
psql -h localhost -p 6543 -U postgres
(主库配置)
#创建复制用户
create user --replication -P -e ****
密码;****
#复制用户添加到配置文件pg_hba.conf中
vi /data1/pgsql/data/pg_hba.conf
host replication **** 0.0.0.0/0 md5
#重启
cd /data1/pgsql/bin
sh stop_EWL_PGS.sh
sh start_EWL_PGS.sh
(从库配置)
#备份旧数据
mv /data1/pgsql/data /data1/pgsql/data.bak
#使用pg_basebackup工具进行备份
pg_basebackup -h 10.10.54.197 -D /data1/pgsql/data -U replica -P -v -R -X stream -C -S pgstandby2
Password:****
#当备份结束后,从数据库的data_directory已经有数据,并且一个standby.signal被创建。
#启动从服务器
SELECT * FROM pg_stat_wal_receiver;