二进制安装postgresql
创建数据库用户和组
useradd postgres
passwd postgres
安装依赖包
yum groupinstall -y "Development Tools" "Legacy UNIX Compatibility" -y
yum install -y bison flex readline* zlib-devel gcc* gmake -y
创建目录并授权
mkdir -p /usr/local/pg12
mkdir -p /pgdata/12/data
mkdir -p /archive
chown -R postgres. /pgdata
chown -R postgres. /archive
chown -R postgres. /usr/local/pg12
chmod 700 /pgdata/12/data -R
系统参数优化
# vi /etc/sysctl.conf
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.sem = 50100 64128000 50100 1280
fs.file-max = 7672460
net.ipv4.ip_local_port_range = 9000 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
# sysctl -p
# vi /etc/security/limits.conf
* soft nofile 131072
* hard nofile 131072
* soft nproc 131072
* hard nproc 131072
* soft core unlimited
* hard core unlimited
* soft memlock 50000000
* hard memlock 50000000
建议关闭numa
设置IO策略为deadline(机械)或者noop(SSD)
源码安装pg
上传软件至/opt,并解压
tar xf postgresql-12.6.tar.gz
cd postgresql-12.6
./configure --prefix=/usr/local/pg12 --with-pgport=1921
gmake world
gmake install-world
设置环境变量
su - postgres
$ vim .bash_profile
export PGDATA=/pgdata/12/data
export LANG=en_US.utf8
export PGHOME=/usr/local/pg12
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export DATE=`date +"%Y%m%d%H%M"`
export PATH=$PGHOME/bin:$PATH:.
export MANPATH=$PGHOME/share/man:$MANPATH
export PGUSER=postgres
$ source .bash_profile
[postgres@pg1 ~]$ psql --version
psql (PostgreSQL) 12.6
初始化数据
su - postgres
# 简易初始化
initdb -D /pgdata/12/data -W
# 生产建议
initdb -A md5 -D $PGDATA -E utf8 --locale=C -W
# 启动
[postgres@pg1 ~]$ pg_ctl -D /pgdata/12/data/ start -l logfile
# 操作体验
[postgres@pg1 ~]$ psql
Password for user postgres:
浙公网安备 33010602011771号