二进制安装pg库

pg库下载地址:

通过网盘分享的文件:二进制安装PG库
链接: https://pan.baidu.com/s/1jxoA4V51YEqmYE6-VlOhHQ?pwd=dzsx 提取码: dzsx

一、部署步骤

1.  主机初始化

   ·  请注意主机初始化,主节点和从节点操作步骤一样(如只部署单节点。则只在一个节点上行执行以下操作)

  1.1  关闭防火墙

  *   root 用户下执行

##安装Vim编辑器
yum install -y vim

##安装ifconfig
yum install -y net-tools

## 关闭防火墙

systemctl stop firewalld.service

## 开机启动关闭防火墙

systemctl disable firewalld.service
  1.2  关闭SELinux

 *   root 用户下执行

## 关闭SELinux

sed -i '/SELINUX=/d' /etc/selinux/config
echo "SELINUX=disabled" >> /etc/selinux/config

## 查看SELinux配置

cat /etc/selinux/config|grep -v ^#|grep -v '^$'
1.3  配置内核参数

 *   root 用户下执行

## 修改内核参数
echo " fs.file-max = 76724200 
kernel.sem = 10000 10240000 10000 1024 
kernel.shmmni = 4096 
kernel.shmall = 1073741824 
kernel.shmmax = 4398046511104 
net.ipv4.ip_local_port_range = 9000 65500 
net.core.rmem_default = 262144 
net.core.wmem_default = 262144 
net.core.rmem_max = 4194304 
net.core.wmem_max = 4194304 
fs.aio-max-nr = 40960000 
vm.dirty_ratio=20 
vm.dirty_background_ratio=3 
vm.dirty_writeback_centisecs=100 
vm.dirty_expire_centisecs=500 
vm.swappiness=10 
vm.min_free_kbytes=524288">> /etc/sysctl.d/99-sysctl.conf && sysctl --system
1.4  重启操作系统

 *   root 用户下执行

## 重启操作系统,让配置生效
 reboot

二、安装postgres 数据库

   ·  请注意数据库安装,主节点和从节点安装步骤一样(如只部署单节点。则只在一个节点上行执行以下操作)

 1.  安装依赖包

 *   root 用户下执行

yum install -y libicu-devel libxslt python-devel glibc-devel libmpc

2.  安装rpm包

## 注意安装顺序,root用户执行
rpm -ivh postgresql12-libs-12.4-1PGDG.rhel7.x86_64.rpm
yum install -y postgresql12-12.4-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql12-server-12.4-1PGDG.rhel7.x86_64.rpm
yum install -y postgresql12-contrib-12.4-1PGDG.rhel7.x86_64.rpm
rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
rpm -ivh libedit-devel-3.0-12.20121213cvs.el7.x86_64.rpm
rpm -ivh llvm5.0-*
yum install -y devtoolset-7-*
rpm -ivh llvm-toolset-7-*
yum install -y postgresql12-devel-12.4-1PGDG.rhel7.x86_64.rpm
rpm -ivh pg_repack12-1.4.6-1.rhel7.x86_64.rpm
rpm -ivh python2-psycopg2-2.8.5-2.rhel7.x86_64.rpm
yum install -y postgresql12-plpython-12.4-1PGDG.rhel7.x86_64.rpm
rpm -ivh llvm-toolset-7.0-clang-devel-7.0.1-1.el7.x86_64.rpm --nodeps
rpm -ivh scl-utils-20130529-19.el7.x86_64.rpm --nodeps
rpm -ivh llvm-toolset-7-clang-libs-5.0.1-4.el7.x86_64.rpm —nodeps 

3.  建数据库目录

##root用户执行
useradd postgres
mkdir -p /data/pgsql/data
mkdir -p /data/pgsql/arclog
chown -R postgres:postgres /data/pgsql/

4.  修改环境变量

 *   root 用户下执行

echo 'export PGHOME=/usr/pgsql-12/
export PGDATA=/data/pgsql/data
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
export PATH=$PGHOME/bin:$PATH'>>/etc/profile

*    环境变量生效

source /etc/profile

*    postgres用户执行

##重请注意标红部分为修改后的值
su - postgres 

cat .bash_profile 
[ -f /etc/profile ] && source /etc/profile
PGDATA=/data/pgsql/data 
export PGDATA
# If you want to customize your settings,
# Use the file below. This is not overridden
# by the RPMS.
[ -f /var/lib/pgsql/.pgsql_profile ] && source /var/lib/pgsql/.pgsql_profile

*    环境变量生效

## 重启使部分参数生效
source .bash_profile

5.  初始化数据库

*    postgres用户执行

initdb -k -E UTF8 --locale=C --lc-ctype=zh_CN.UTF8 -D /data/pgsql/data

6.  启动数据库

*    postgres用户执行

pg_ctl start -D /data/pgsql/data/

三、主节点配置

*    主节点配置的操作请都在主节点执行

 1.  创建复制用户

*    用户/密码:repuser/repuser

[root@pg ~]# su - postgres 
Last login: Mon Aug  9 16:53:35 CST 2021 on pts/0

-bash-4.2$ createuser -U postgres repuser -P -c 5 --replication
Enter password for new role: 
Enter it again: 

 2.  设置超级用户密码

*    postgres用户执行

-bash-4.2$ psql
psql (12.4)
Type "help" for help.
postgres=# alter user postgres with password 'MA2518985l@pg';
ALTER ROLE

 3.  配置pg_hba.conf

*    postgres用户执行

*    pg_hba.conf 在/data/pgsql/data目录下

## 请注意192.168.56.221 为本配置文档中的从节点ip地址,请根据实际情况配置

host replication repuser 27.132.130.186/32  md5 ###(如果现场部署单机版pg库此配置不添加)
host    all             all             0.0.0.0/0              md5

4.  配置postgres.conf

*    postgres用户执行

*    postgres.conf 在/data/pgsql/data目录下

listen_addresses = '*'  
archive_mode = on 
archive_command = 'test ! -f /data/pgsql/arclog/%f && cp %p /data/pgsql/arclog/%f'
wal_level = replica  
wal_keep_segments = 16  
wal_sender_timeout = 60s
max_connections = 500  

5.  重启主节点数据库

*    postgres用户执行

pg_ctl restart -D /data/pgsql/data/

   ·  到此单节点pg部署完毕。以下从节点不必执行

6.  从库验证是否能够登陆到主库

·    请在从节点的postgres用户执行,本配置文档中主节点的ip地址为:192.168.56.222

-bash-4.2$ psql -h 192.168.56.222 -U postgres
Password for user postgres: 
psql (12.4)
Type "help" for help.

postgres=# 

四、从节点配置

·    从节点配置的操作请都在从节点执行

1从库验证是否能够登陆到主库

*    postgres用户执行

-bash-4.2$ pg_ctl stop -D /data/pgsql/data/
waiting for server to shut down.... done
server stopped

2清空从节点数据文件目录中的内容

*    postgres用户执行

-bash-4.2$ rm -rf /data/pgsql/data/*
-bash-4.2$ cd /data/pgsql/data/
-bash-4.2$ ll
total 0

3.  从主机点获取数据

*    postgres用户执行

主节点ip:192.168.56.222

复制用户:repuser

数据文件目录:/data/pgsql/data

-bash-4.2$ pg_basebackup -h 192.168.56.222 -p 5432 -U repuser -Fp -Xs -Pv -R -D /data/pgsql/data
Password: 输入repuser的密码,3.3.1章节创建的
pg_basebackup: initiating base backup, waiting for checkpoint to complete
pg_basebackup: checkpoint completed
pg_basebackup: write-ahead log start point: 0/3000060 on timeline 1
pg_basebackup: starting background WAL receiver
pg_basebackup: created temporary replication slot "pg_basebackup_21167"
25312/25312 kB (100%), 1/1 tablespace                                         
pg_basebackup: write-ahead log end point: 0/3000138
pg_basebackup: waiting for background process to finish streaming ...
pg_basebackup: syncing data to disk ...
pg_basebackup: base backup completed

4.  编辑standby.signal

*    postgres用户执行

standby.signal 在/data/pgsql/data目录下

# 添加
standby_mode = 'on'

5改从节点postgres.conf

*    postgres用户执行

主节点ip:192.168.56.222。请根据实际情况进行修改。

其他地方请按照文档内容修改

primary_conninfo = 'host=27.132.130.185 port=5432 user=repuser password=MA2518985l@pg'
recovery_target_timeline = latest
hot_standby = on
max_standby_streaming_delay = 30s 
wal_receiver_status_interval = 10s 
hot_standby_feedback = on 

6.  从节点启动

*    postgres用户执行

-bash-4.2$ pg_ctl -D /data/pgsql/data -l logfile start

waiting for server to start...... done
server started

7.  验证主从关系

*    请在主节点的postgres 用户下执行

-bash-4.2$ psql
psql (12.4)
Type "help" for help.

postgres=# select client_addr,sync_state from pg_stat_replication;
  client_addr   | sync_state 
----------------+------------
 192.168.56.221 | async
(1 row)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值