说明
Linux下安装PostgreSQL有yum、源码和二进制已编译包安装三种方式,此处着重说明源码安装
源码安装
涉及到CentOS基础优化的,请参考《CentOS基础设置和优化》
安装依赖
# 安装依赖
yum install -y net-tools sysstat \
iotop libXp redhat-lsb gdb xorg-x11-xauth \
vim lrzsz tree wget numactl \
gcc gcc-c++ \
hwloc smartmontools \
libxml2 libxml2-devel \
openssl openssl-devel \
python python-devel \
readline readline-devel \
uuid uuid-devel \
git \
zlib zlib-devel
创建相关目录
# 修改文件和目录的所有者和所属组为postgres
chown -R postgres:postgres /ssd
# 切换postgres用户
sudo su - postgres
# 创建相关目录
mkdir /ssd/database/
mkdir /ssd/database/pg12data
mkdir /ssd/database/pg12arch
mkdir /ssd/software
配置环境变量
vi ~/.bash_profile
export PGPORT=5434
export PGDATA=/ssd/database/pg12data
export PGARCH=/ssd/database/pg12arch
export PGHOME=/ssd/database/pg12home
export LD_LIBRARY_PATH=/ssd/database/pg12home/lib
export PATH=$PGHOME/bin:$PATH
PATH=$PATH:$HOME/.local/bin:$HOME/bin
# 刷新使生效
source ~/.bash_profile
安装PostgreSQL
下载源码并放到/ssd/software目录中
# 进入软件下载目录
cd /ssd/software
# 解压
tar -xzvf postgresql-12.6.tar.gz
# 进入postgresql-12.6目录
cd /ssd/software/postgresql-12.6/
# 生成Makefile
./configure --prefix=/ssd/database/pg12home --with-python --with-ossp-uuid --with-libxml --with-openssl --enable-dtrace --enable-debug
# 编译
make
# 安装
make install
安装扩展
contrib
contrib包含了一些额外的模块和扩展,由PostgreSQL社区提供和维护。可以增强PostgreSQL的功能,提供更多的特性和功能。例如,hstore扩展提供了一种存储键值对的数据类型。btree_gist扩展提供了一些新的索引操作符和索引类型
# 进入contrib目录
cd /ssd/software/postgresql-12.6/contrib/
# 编译
make
# 安装
make install
pgfincore
pgfincore适用于数据预热,当数据库启动时,查询效率是会慢的,这样能够提升效率,适用于对查询效率要求比较高,查询的数据比较固定,且系统的读写频率不高的情况下使用。下载插件并放到/ssd/software目录中
# 进入软件下载目录
cd /ssd/software
# 解压
tar -xzvf pgfincore.tar.gz
# 进入pgfincore-master目录
cd /ssd/software/pgfincore-master
# 编译
make
# 安装
make install
pg-hostname
pg-hostname用于获取和设置数据库服务器的主机名。下载插件并放到/ssd/software目录中
# 进入软件下载目录
cd /ssd/software
# 解压
tar -xzvf pg-hostname.tar.gz
# 进入pg-hostname-master目录
cd /ssd/software/pg-hostname-master
# 编译
make
# 安装
make install
pg_repack
pg_repack适用于用于重新组织和重建PostgreSQL数据库系统表的工具。下载插件并放到/ssd/software目录中
# 进入软件下载目录
cd /ssd/software
# 解压
unzip pg_repack-1.4.6.zip
# 进入pg_repack-1.4.6目录
cd /ssd/software/pg_repack-1.4.6
# 编译
make
# 安装
make install
创建数据库并启动
# 进入bin目录
cd $PGHOME/bin/
# 初始化数据库
./initdb -D $PGDATA
# 启动数据库
pg_ctl start
# 查看启动状态
pg_ctl status
修改配置
# 进入配置目录
cd /ssd/database/pg12data/
# 修改监听IP地址,将listen_addresses = '*'放开
vi postgresql.conf
# 修改身份验证和权限,在IPv4后增加一行host all all 0.0.0.0/0 md5
vi pg_hba.conf
# 重启数据库使配置生效
pg_ctl restart
创建扩展
# 进入psql,执行以下SQL
psql
-- 用于查看共享缓冲区使用情况的模块
CREATE EXTENSION pg_buffercache;
-- 用于统计SQL语句执行情况的模块
CREATE EXTENSION pg_stat_statements;
-- 用于预加载经常访问的表到操作系统的cache或PG的shared buffer,从而减少检查系统重启对应用的影响
CREATE EXTENSION pg_prewarm;
-- 用于用户将文件作为表来处理,可以读取文件数据,并将文件内容作为查询结果返回的模块
CREATE EXTENSION file_fdw;
-- 用于检查表的可见性图(VM)和页面级可见性信息的模块
CREATE EXTENSION pg_visibility;
-- 用于加解密的模块
CREATE EXTENSION pgcrypto;
-- 用于显示指定表的行锁定信息的函数
CREATE EXTENSION pgrowlocks;
-- 用于数据预热
CREATE EXTENSION pgfincore;
-- 用于获取和设置数据库服务器的主机名
CREATE EXTENSION hostname;
-- 用于重新组织和重建PostgreSQL数据库系统表的工具
CREATE EXTENSION pg_repack;
-- 创建一个名为file_fdw_server的服务器,使用file_fdw作为FOREIGN DATA WRAPPER
CREATE SERVER file_fdw_server FOREIGN DATA WRAPPER file_fdw;
yum安装
可参考官网教程
选择Linux版本
配置相关参数
系统内执行脚本
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql12-server
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
sudo systemctl enable postgresql-12
sudo systemctl start postgresql-12
二进制已编译包安装
可自行上网查询尝试
评论区