postgresql 源码安装

108 阅读3分钟

开始

为什么是源码安装呢?因为我个人比较喜欢呗!因为工作需要呗!

正文

安装环境

内存要求磁盘要求操作系统postgresql
16G100G空闲空间UOS106014.11

开始安装

配置环境变量

# 打开配置文件
vim /etc/profile
# 配置环境变量
export PGPORT=1981
export PG_HOME=/usr/local/postgres14.11
export PGDATA=$PG_HOME/data
export PATH=$PG_HOME/bin:$PATH
export LD_LIBRARY_PATH=$PG_HOME/lib
export LANG=en_US.utf8

创建用户组和用户

# 创建用户组
groupadd postgres
# 创建用户并指定用户组
useradd -g postgres postgres
# 给postgres用户设置密码
passwd postgres

操作系统内核参数配置(根据PG版本、实际机器配置和业务体量配置)

# vim /etc/sysctl.conf

# 最大共享内存段大小
kernel.shmmax=68719476739(默认值)
# 可以使用的共享内存的总量
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 配置生效

编译环境依赖包

最小依赖

gcc C 编译器
gcc-c++ C++编译器
zlib-devel zlib开发库
readline-devel 提供命令行界面历史记录和补全功能的开发库

其它依赖

perl-ExtUtils-Embed perl语言依赖
pam-devel linux可插入认证模块
libxml2-devel 解析XML文档的函数库
libxslt-devel 利用Python执行xml格式转换
openldap-devel 开放的Internet标准,支持跨平台的Internet协议
python-devel python扩展开发库
openssl-devel 加密库
cmake 跨平台的安装(编译)工具

Postgresql 安装

# 创建安装目录
mkdir /usr/local/postgres14.11
# 将新建的目postgresql目录授权给postgres用户
chown -R postgres.postgres postgres14.11
# 将实现准备好的安装包拷贝到你自己制定的目录,比如放在 /soft/postgres14.11目录中,解压
tar -xf  postgresql-14.11.tar.gz
# 进入解压目录
cd postgresql-14.11

# configure 常用配置选项: 
# --prefix: 指定安装路径
# --with-openssl: 对openssl进行扩展支持
# --with-python: 对python进行扩展支持
# --with-perl: 对perl进行扩展支持
# --with-xml: 对xml进行扩展支持
# --with-pgport: 1981
# --with-blocksize:这是表中的存储和 I/O 默认值为 8 KB。查询数据量大的话可以设置大一些
./configure --prefix=/opt/postgresql/14.11

# 编译全部可用功能
make
# 把所有编译好的进行安装(建目录+拷贝)
make install

检查版本,如果正常显示说明环境变量配置成功。

psql --version

数据库初始化

# 切换到postgres用户
su postgres
# 创建数据目录
mkdir /usr/local/postgres14.11/data
# 初始化数据库集簇
initdb -D $PGDATA -W
# pg_ctl -D /usr/local/postgres14.11/data -l logfile start
# 启动数据库集簇(因为配置了环境变量,可以直接pg_ctl start启动)
pg_ctl start

初始化后会提示两次输入密码来设置数据库的登录密码。

数据库的启动、重启和停止

# 启动
pg_ctl start
# 重启
pg_ctl restart
# 停止
pg_ctl stop

其中关闭和重启选项中的shutdown modes包括smart、fast、immediate;

smart是最安全的关闭方法,等待所有客户端连接关闭之后才关闭;

fast是用的生产中最多的,自动杀掉连接,回滚未完成事务

immediate相当于kill -9;

对应的语句:

pg_ctl stop -ms
pg_ctl stop -mf
pg_ctl stop -mi