二进制安装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: 
posted @ 2025-06-30 11:05  白日梦不要钱  阅读(112)  评论(0)    收藏  举报