一、版本说明
centos 7.9
postgresql 12.2
二、配置系统基本环境
# 1.创建postgres用户
groupadd postgres
useradd -g postgres postgres
echo "666666" | passwd postgres --stdin
# 2.配置用户环境变量
su - postgres
cat >> ~/.bash_profile << EOF
export PGPORT=1922
export PG_HOME=/usr/local/pg12.2
export PATH=\$PG_HOME/bin:\$PATH
export PGDATA=/data
export LD_LIBRATY_PATH=$PG_HOME/lib
export LANG=en_US.utf8
EOF
exit
# 3. root用户创建目录
mkdir -m 755 -p /data /usr/local/pg12.2
chown -R postgres:postgres /data
chown -R postgres:postgres /usr/local/pg12.2
# 3. 配置系统参数
vi /etc/sysctl.conf
# (默认) 最大共享内存段大小
kernel.shmmax=68719476736
#(默认)可以使用的共享内存的总量
kernel.shmall=4294967296
#整个系统共享内存段的最大数目
kernel.shmmni=4096
#每个信号对象集的最大信号对象数
kernel.sem=50100 64128000 50100 1280
#文件句柄的最大数量。
fs.file-max=7672460
#应用程序可使用的IPv4端口范围
net.ipv4.ip_local_port_range=9000 65000
#套接字接收缓冲区大小的缺省值
net.core.rmem_default=1048576
#套接字发送缓冲区大小的缺省值
net.core.wmem_default=262144
#套接字发送缓冲区大小的最大值
net.core.wmem_max=1048576
#配置生效
sysctl-p
# 4. 安装依赖包
yum install -y gcc gcc-c++ zib-devel readline-devel perl-ExtUtils-Embed pam-devel libxml22-devel libxslt-devel openldap-devel python-devel openssl--devel cmake
三、源码安装
1. 下载源码
yum install -y wget bzip2
su - postgres
wget https://ftp.postgresql.org/pub/source/v12.2/postgresql-12.2.tar.bz2
tar xjvf postgresql*.bz2
cd postgresql-12.2
2. 编译安装
# --with-blocksize :如果数据库需要经常做插入的操作,数据量增长非常快,尽量把此参数设大一点,经常做小数据查询、更新且内存不是非常大的时候可以设小一点,默认8K即可。
# 生产环境不要加 -enable-dtrace-enable-debug
./configure --prefix=/usr/local/pg12.2 --with-pgport=1922 --enable-thread-safety --with-wal-blocksize=16 --with-blocksize=8 --enable-dtrace --enable-debug
make && make install
四、数据库集簇初始化流程
initdb -D $PGDATA -W --data-checksums
# 启动数据库集簇
pg_ctl -D $PGDATA start