暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

postgresql 15 源码安装

原创 zhou 2024-04-14
363

目标

在 centos 7.9 源码安装PG15.6

用户准备

#groupdel postgres
#userdel postgres
getent group | grep 1001
groupadd -g 1001 postgres
useradd -g 1001 -u 1001 postgres
echo "postgres" | passwd --stdin postgres

下载源码

wget https://ftp.postgresql.org/pub/source/v15.6/postgresql-15.6.tar.gz

安装依赖包

yum install -y readline readline-devel flex bison openssl openssl-devel git 
yum install -y gcc gcc-c++  epel-release llvm5.0 llvm5.0-devel clang \
libicu-devel perl-ExtUtils-Embed zlib-devel openssl openssl-devel \
pam-devel libxml2-devel libxslt-devel openldap-devel systemd-devel \
tcl-devel python-devel python3-devel lz4 lz4-devel uuid libuuid-devel

编译

#--with-segsize= 设定 segment size ,以 gigabytes(GB) 为单位,默认为 1GB ,大型的表会按 segsize 被分割成多个文件
#--with-blocksize= 指定块大小,是表内存储和 I/O 的基本单位,默认 8Kbytes ,通常无需变更,取值范围 1-32KB
#--with-wal-segsize= 设置 WAL(Write-Ahead Logging) 的 segment size ,以 megabytes(MB) 为单位,默认 16MB ,取值范围 1-64MB

tar zxf postgresql-15.6.tar.gz
cd postgresql-15.6
./configure --prefix=/usr/local/pgsql-15.6 \
--with-blocksize=8  --with-wal-blocksize=8  -with-segsize=1 --with-wal-segsize=16 \
--with-pgport=5432 --with-openssl \
--with-lz4 --with-perl --with-libxml --with-libxslt \
--with-pam --with-ldap --with-python --with-systemd 

安装

make -j4 world-bin && make install-world-bin
make distclean

数据库目录规划

mkdir -p /data/pgdata
chown postgres.postgres -R /data/pgdata

环境变量

vi /etc/profile
export PATH=/usr/local/pgsql-15.6/bin:$PATH
export PGPORT=5432
export PGDATA=/data/pgdata

初始化

su - postgres 
source /etc/profile
initdb -E UTF8 --locale=C -D /data/pgdata

service文件

vi /usr/lib/systemd/system/postgresql-15.service
[Unit]
Description=PostgreSQL 15 database server
Documentation=https://www.postgresql.org/docs/15/static/
After=syslog.target
After=network-online.target
[Service]
Type=notify
User=postgres
Group=postgres
Environment=PGDATA=/data/pgdata
OOMScoreAdjust=-1000
Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj
Environment=PG_OOM_ADJUST_VALUE=0
#ExecStartPre=/usr/local/pgsql-15.6/bin/postgresql-15-check-db-dir ${PGDATA}
ExecStart=/usr/local/pgsql-15.6/bin/postmaster -D ${PGDATA}
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=0
TimeoutStartSec=0
TimeoutStopSec=1h
[Install]
WantedBy=multi-user.target

开机启动

systemctl enable postgresql-15
systemctl start postgresql-15
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论