开始
为什么是源码安装呢?因为我个人比较喜欢呗!因为工作需要呗!
正文
安装环境
| 内存要求 | 磁盘要求 | 操作系统 | postgresql |
|---|---|---|---|
| 16G | 100G空闲空间 | UOS1060 | 14.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