PostgreSQL 13 源码安装(#1.1)-202103

PostgreSQL 13 源码安装(#1.1)-202103

 

环境:

OS:RedHat 8.3

DB:PostgreSQL 13

  

1.安装前准备

1.1 DB软件包准备

# 官方地址下载源码,防止源码串改风险

PostgreSQL 源码下载地址:https://ftp.postgresql.org/pub/source/v13.1/postgresql-13.1.tar.bz2

RedHat 8.3 ISO 下载地址:rhel-8.3-x86_64-dvd.iso

源码安装官方地址: https://www.postgresql.org/docs/13/installation.html

 

1.2 系统软件包准备

1.2.1 编译安装所需软件包

bison flex readline-devel zlib-devel gcc make

1.2.2 批量使用yum安装所需软件包

yum install -y bison flex readline-devel zlib-devel gcc make

1.2.3 批量检查是否已经安装所需软件包

for i in \

bison flex readline-devel zlib-devel gcc make

do

rpm -q $i &>/dev/null || F="$F $i"

done ;echo $F;unset F

# 返回结果为空,证明所需软件包已经安装完毕

1.2.4 RedHat 8.3 yum本地源配置

# 如不会配置redhat 8 yum源,可以参考 1.2.4 。redhat 8 与 redhat 7 配置略有不同

参考:https://zhuanlan.zhihu.com/p/181575209 或搜索:红帽RedHat Linux 8本地Yum源配置方法 - 知乎

 

1.3 系统环境准备

1.3.1 创建软件安装组和用户

groupadd --gid 501 postgres

useradd --uid 502 --gid postgres --groups postgres pg13

passwd pg13

1.3.2 创建软件安装目录和赋权

SFOT目录

mkdir -p /db/pg13/soft

chown -R pg13:postgres /db/pg13/soft

chmod -R 700 /db/pg13/soft

DB目录

mkdir -p /db/pg13/data

chown -R pg13:postgres /db/pg13/data

chmod -R 700 /db/pg13/data

1.3.3 创建软件安装用户环境变量

su - pg13

export PS1="$USER@`/bin/hostname -s`-> "

export PGHOME=/db/pg13/soft

export PGDATA=/db/pg13/data

export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin:$PGDATA/bin:

export DATE=`date +"%Y%m%d%H%M"`

export LANG=en_US.utf8

# libpq.so.5

export LD_LIBRARY_PATH=/db/pg13/soft/lib

alias rm='rm -i'

alias ll='ls -lh'

unalias vi

 

1.4 系统资源环境准备

1.4.1 内核参数限制(省略)

# 内核参数比较复杂,现阶段仅限于学习,暂时不涉及。有想学习的同学建议查看德哥的blog《DBA不可不知到操作系统内核参数》

1.4.2 配置OS资源限制

# vi /etc/security/limits.conf

# nofile超过1048576的话,一定要先将sysctl的fs.nr_open设置为更大的值,并生效后才能继续设置nofile.

pg13 soft    nofile  1024000

pg13 hard    nofile  1024000

pg13 soft    nproc   unlimited

pg13 hard    nproc   unlimited

pg13 soft    core    unlimited

pg13 hard    core    unlimited

pg13 soft    memlock unlimited

pg13 hard    memlock unlimited

#备注:关注一下/etc/security/limits.d目录中的文件内容,会覆盖limits.conf的配置

1.4.3 配置OS禁用防火墙与禁用selinux

# a)禁用防火墙

systemctl stop firewalld

# 检查防火墙状态

systemctl status firewalld

# Active: inactive (dead)表示防火墙已关闭

# 关闭开机启动防火墙服务

systemctl disable firewalld.service

# 检查防火墙开机服务

systemctl  is-enabled firewalld.service

# disabled 表示开机启动已关闭

# b)禁用selinux

# vi /etc/sysconfig/selinux 

SELINUX=disabled

SELINUXTYPE=targeted

1.4.4 关闭不必要的OS服务

# 关闭 NetworkManager

systemctl mask NetworkManager.service

systemctl stop NetworkManager.service

systemctl disable NetworkManager.service

1.4.5 关闭transparent_hugepage、numa

# a)关闭transparent_hugepage

grub2-editenv - set "$(grub2-editenv - list | grep kernelopts) transparent_hugepage=never"

# 检查transparent_hugepage是否关闭

grub2-editenv - list | grep kernelopts

# transparent_hugepage=never说明已经关闭

reboot 后生效

# 检查是否已关闭transparent_hugepage

cat /sys/kernel/mm/transparent_hugepage/enabled

always madvise [never]

# always madvise [never] 说明transparent_hugepage已经关闭

# b)关闭numa

vi /etc/sysctl.conf

kernel.numa_balancing = 0

sysctl -p 生效

1.4.6 IPC(共享内存和信号量)控制

echo RemoveIPC=no >> /etc/systemd/logind.conf

# 当用户创建不正确或无法更改时,建议RemoveIPC=no(系统用户不受影响)

# 如设置on,可能因为信号量被随机删除,引起服务器崩溃。

 

2.执行安装

2.1 PostgreSQL源码软件解压

su - pg13

tar -xvf postgresql-13.1.tar.gz

2.2  编译安装执行

运行configure程序配置编译选项(默认选项)

su - pg13

cd /db/pg13/soft/postgresql-13.1

./configure --prefix=/db/pg13/soft  

 

2.3 编译与安装过程

su - pg13

# gmake编译

gmake

# All of PostgreSQL successfully made. Ready to install.表示编译成功 

 

# 使用gmake install进行安装 

gmake install

# PostgreSQL installation complete.表示安装成功 

 

3.初始化数据库

initdb -D $PGDATA -W

 

4.配置数据库

使用默认配置开启数据库,后续在进行配置优化

 

5.启动数据库并验证

5.1 启停数据库

pg_ctl -D $PGDATA -l logfile start

pg_ctl -D $PGDATA status

pg_ctl -D $PGDATA stop -m fast

 

5.2 登陆验证

psql -U pg13 -d postgres -h 127.0.0.1 -p 5432

# -U 系统用户

# -d 数据库名

# -h ip地址

pg13@pgdb01-> psql -U pg13 -d postgres -h 127.0.0.1 -p 5432

psql (13.1)

Type "help" for help.

 

postgres=# \x

Expanded display is on.

postgres=# \l

List of databases

-[ RECORD 1 ]-----+--------------

Name              | postgres

Owner             | pg13

Encoding          | UTF8

Collate           | en_US.utf8

Ctype             | en_US.utf8

Access privileges | 

-[ RECORD 2 ]-----+--------------

Name              | template0

Owner             | pg13

Encoding          | UTF8

Collate           | en_US.utf8

Ctype             | en_US.utf8

Access privileges | =c/pg13      +

                  | pg13=CTc/pg13

-[ RECORD 3 ]-----+--------------

Name              | template1

Owner             | pg13

Encoding          | UTF8

Collate           | en_US.utf8

Ctype             | en_US.utf8

Access privileges | =c/pg13      +

                  | pg13=CTc/pg13

 

# 至此postgresql源码安装已经完成。

# 希望对大家学习有所帮忙

 

附录:

错误1

configure: error: in `/db/pg13/soft/postgresql-13':

configure: error: no acceptable C compiler found in $PATH

See `config.log' for more details

# 报错原因:缺少gcc包

# 解决:安装gcc包

 

错误2

 pg13@pgdb01-> psql

psql: error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory

# 报错原因:psql未发现libpq.so.5文件

# 解决:故在用户环境变量中增加声明

pg13@pgdb01-> find /db -name libpq.so.5

/db/pg13/soft/postgresql-13.1/src/interfaces/libpq/libpq.so.5

/db/pg13/soft/lib/libpq.so.5

export LD_LIBRARY_PATH=/db/pg13/soft/lib

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值