侧边栏壁纸
  • 累计撰写 7 篇文章
  • 累计创建 14 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux安装PostgreSQL

Shihd
2024-02-07 / 0 评论 / 0 点赞 / 49 阅读 / 6845 字 / 正在检测是否收录...

说明

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版本

pg-yum安装选择linux版本.jpg

配置相关参数

pg-yum安装脚本配置.jpg

系统内执行脚本

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

二进制已编译包安装

可自行上网查询尝试

0

评论区