当前位置:网站首页>Postgresql 13 安装
Postgresql 13 安装
2022-07-05 14:21:00 【脑子进水养啥鱼?】
一、概述
本文档介绍 Linux 平台 PostgreSQL 的两种安装方式,rmp 安装和源码安装。
二、rpm 安装
rpm 安装包是提前编译好的,所以安装过程较快,但其路径也是固定的,不够灵活。
2.1 操作系统环境
RHEL/CentOS 7-x86_64
2.2 安装包
1.postgresql13-13.6-1PGDG.rhel7.x86_64.rpm
2.postgresql13-contrib-13.6-1PGDG.rhel7.x86_64.rpm
3.postgresql13-libs-13.6-1PGDG.rhel7.x86_64.rpm
4.postgresql13-server-13.6-1PGDG.rhel7.x86_64.rpm
安装包描述:
- 1.PostgreSQL 客户端程序包。如果你想在本地或远程 PostgreSQL 服务器上操作 PostgreSQL 数据库,你需要这个包。如果要安装 postgresql13-server 包,也需要安装此包。
- 2.PostgreSQL 扩展包。包含了 PostgreSQL 发行版中包含的各种扩展模块。
- 3.共享 lib 库包。客户端程序或接口连入数据库,或使用其他 PostgreSQL lib库,需要安装此包。
- 4.PostgreSQL 服务端安装包。包包含创建和运行 PostgreSQL 服务器所需的程序,这将允许您创建和维护 PostgreSQL 数据库。
2.3 安装步骤
1)关闭SELinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce 0
cat /etc/selinux/config | grep SELINUX=disabled
getenforce
2)防火墙配置
--关闭防火墙
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
--添加数据库端口号(防火墙不可关闭时)
firewall-cmd --add-port=5432/tcp
firewall-cmd --permanent --add-port=5432/tcp
firewall-cmd --reload
firewall-cmd --list-ports | grep 5432
3)参数限制配置
vi /etc/security/limits.conf
#for pg13
postgres soft core unlimited
postgres hard nproc unlimited
postgres soft nproc unlimited
postgres hard memlock unlimited
postgres hard nofile 1024000
postgres soft memlock unlimited
postgres soft nofile 1024000
postgres hard stack 65536
postgres soft stack 65536
4)时区检查配置
--检查时区
timedatectl
--修改时区为上海
timedatectl set-timezone Asia/Shanghai
--修改时区为香港
timedatectl set-timezone Asia/Hong_Kong
5)创建系统用户
groupdel postgres
userdel postgres
groupadd postgres
useradd -g postgres postgres
passwd postgres
6)创建数据目录
mkdir /data/pg13/{
dbbak,archive} -p
chown postgres:postgres /data -R
7)安装软件
rpm -ivh postgresql13-*
8)添加环境变量
su - postgres
vi /home/postgres/.bash_profile
export PGHOME=/usr/pgsql-13
export PGDATA=/data/pg13/data
export PATH=$PGHOME/bin:$PATH:$HOME/bin
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
export PATH=/usr/pgsql-13/bin:$PATH
source /home/postgres/.bash_profile
9)初始化数据库
initdb -A scram-sha-256 -W
ll /data/pg13/data
10)启动数据库
pg_ctl start
pg_ctl status
11)安装完成后的参数配置
psql 连入数据库配置
alter system set listen_addresses = '*';
alter system set max_connections = 2000;
alter system set superuser_reserved_connections = 10;
alter system set shared_buffers = '16GB'; #推荐物理内存1/4
alter system set effective_cache_size = '32GB'; #推荐物理内存的1/2
alter system set maintenance_work_mem = '2GB';
alter system set autovacuum_work_mem = '1GB';
alter system set effective_io_concurrency = 0;
alter system set checkpoint_completion_target = 0.8;
alter system set checkpoint_timeout = '30min';
alter system set log_destination = 'csvlog';
alter system set logging_collector = on;
alter system set log_directory = 'logs';
alter system set log_filename = 'postgresql-%a.log';
alter system set log_rotation_age = '1d';
alter system set log_rotation_size = 0;
alter system set log_truncate_on_rotation = on;
alter system set log_statement = 'ddl';
alter system set log_connections = on;
alter system set log_disconnections = on;
alter system set log_min_duration_statement = '5s';
alter system set log_checkpoints = on;
alter system set log_error_verbosity = verbose;
alter system set log_line_prefix = '%m [%p] %q %u %d %a %r %e ';
alter system set min_wal_size ='8GB'; #推荐 max_wal_size 的 1/4
alter system set max_wal_size ='32GB'; #推荐 shared_buffers 的 2 倍
alter system set archive_mode = on;
alter system set archive_command = 'cp %p /data/pg13/archive/%f;find /data/pg13/archive/ -type f -mtime +7 -exec rm -f {} \'; alter system set archive_timeout = '30min';
12)修改 pg_hba.conf
vi $PGDATA/pg_hba.conf
host all all 0.0.0.0/0 scram-sha-256
pg_ctl restart
13)设置开机自启动
root用户下配置
方式一:脚本
vi /etc/rc.d/rc.local
su - postgres -c '/usr/pgsql-13/bin/pg_ctl start -D /data/pg13/data/'
chmod +x /etc/rc.d/rc.local
方式二:服务
vi /usr/lib/systemd/system/postgresql-13.service
Environment=PGDATA=/data/pg13/data/
systemctl enable postgresql-13.service
systemctl is-enabled postgresql-13.service
14)安装配置说明
安装完成后,可使用 pg_config 命令查看默认路径,默认的编译参数等信息。
[[email protected] ~]$ pg_config
BINDIR = /usr/pgsql-13/bin
DOCDIR = /usr/pgsql-13/doc
HTMLDIR = /usr/pgsql-13/doc/html
INCLUDEDIR = /usr/pgsql-13/include
PKGINCLUDEDIR = /usr/pgsql-13/include
INCLUDEDIR-SERVER = /usr/pgsql-13/include/server
LIBDIR = /usr/pgsql-13/lib
PKGLIBDIR = /usr/pgsql-13/lib
LOCALEDIR = /usr/pgsql-13/share/locale
MANDIR = /usr/pgsql-13/share/man
SHAREDIR = /usr/pgsql-13/share
SYSCONFDIR = /etc/sysconfig/pgsql
PGXS = /usr/pgsql-13/lib/pgxs/src/makefiles/pgxs.mk
CONFIGURE = '--enable-rpath' '--prefix=/usr/pgsql-13' '--includedir=/usr/pgsql-13/include' '--mandir=/usr/pgsql-13/share/man' '--datadir=/usr/pgsql-13/share' '--libdir=/usr/pgsql-13/lib' '--with-icu' '--with-llvm' '--with-perl' '--with-python' '--with-tcl' '--with-tclconfig=/usr/lib64' '--with-openssl' '--with-pam' '--with-gssapi' '--with-includes=/usr/include' '--with-libraries=/usr/lib64' '--enable-nls' '--enable-dtrace' '--with-uuid=e2fs' '--with-libxml' '--with-libxslt' '--with-ldap' '--with-selinux' '--with-systemd' '--with-system-tzdata=/usr/share/zoneinfo' '--sysconfdir=/etc/sysconfig/pgsql' '--docdir=/usr/pgsql-13/doc' '--htmldir=/usr/pgsql-13/doc/html' 'CFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' 'LLVM_CONFIG=/usr/lib64/llvm5.0/bin/llvm-config' 'CLANG=/opt/rh/llvm-toolset-7/root/usr/bin/clang' 'PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig' 'PYTHON=/usr/bin/python3'
CC = gcc -std=gnu99
CPPFLAGS = -D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include
CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic
CFLAGS_SL = -fPIC
LDFLAGS = -L/usr/lib64/llvm5.0/lib -L/usr/lib64 -Wl,--as-needed -Wl,-rpath,'/usr/pgsql-13/lib',--enable-new-dtags
LDFLAGS_EX =
LDFLAGS_SL =
LIBS = -lpgcommon -lpgport -lpthread -lselinux -lxslt -lxml2 -lpam -lssl -lcrypto -lgssapi_krb5 -lz -lreadline -lrt -ldl -lm
VERSION = PostgreSQL 13.6
BINDIR:可执行文件位置。
DOCDIR:文档文件位置。
HTMLDIR:HTML 文档文件位置。
INCLUDEDIR:客户端接口的 C 头文件的位置。
PKGINCLUDEDIR:其它 C 头文件的位置。
INCLUDEDIR-SERVER:服务器编程的 C 头文件的位置。
LIBDIR:对象代码库的位置。
PKGLIBDIR:动态可载入模块的位置,或者服务器可能搜索它们的位置(其它架构独立数据文件可能也被安装在这个目录)。
LOCALEDIR:区域支持文件的位置(如果在PostgreSQL被编译时没有配置区域支持,这将是一个空字符串)。
MANDIR:手册页的位置。
SHAREDIR:架构独立支持文件的位置。
SYSCONFDIR:系统范围配置文件的位置。
PGXS:扩展 makefile 的位置。
CONFIGURE:当PostgreSQL被配置编译时给予configure脚本的选项。这可以被用来重新得到相同的配置,或者找出是哪个选项编译了一个二进制包(不过注意二进制包通常包含厂商相关的自定补丁)。
CC:用来编译PostgreSQL的CC变量值。这显示被使用的 C 编译器。
CPPFLAGS:用来编译PostgreSQL的CPPFLAGS变量值。这显示在预处理时需要的 C 编译器开关(典型的是-I开关)。
CFLAGS:用来编译PostgreSQL的CFLAGS变量值。这显示被使用的 C 编译器开关。
CFLAGS_SL:用来编译PostgreSQL的CFLAGS_SL变量值。这显示被用来编译共享库的额外 C 编译器开关。
LDFLAGS:用来编译PostgreSQL的LDFLAGS变量值。这显示链接器开关。
LDFLAGS_EX:用来编译PostgreSQL的LDFLAGS_EX变量值。这只显示被用来编译可执行程序的链接器开关。
LDFLAGS_SL:用来编译PostgreSQL的LDFLAGS_SL变量值。这只显示被用来编译共享库的链接器开关。
LIBS:用来编译PostgreSQL的LIBS变量值。这通常包含用于链接到PostgreSQL中的外部库的-l开关。
VERSION:PostgreSQL的版本。
15)卸载
root用户下配置
--停库
systemctl stop postgresql-13.service
ps -ef|grep post
--备份原数据(确认不要可删掉)
mv /data/ /data20220616
--卸载
rpm -e --nodeps `rpm -qa | grep postgresql`
userdel -r postgres
rpm -qa |grep -ie "postgre|pg"
find / -name post
三、源码安装
3.1 操作系统环境
RHEL/CentOS 7-x86_64
3.2 安装包
postgresql-13.6.tar.bz2
postgresql-13.6.tar.bz2.md5
postgresql-13.6.tar.bz2.sha256
postgresql-13.6.tar.gz
postgresql-13.6.tar.gz.md5
postgresql-13.6.tar.gz.sha256
安装包描述:
- 上述为两种打包方式的源码安装包及其校验码,本次选择 postgresql-13.6.tar.gz 安装包。
3.3 安装步骤
1)关闭SELinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce 0
cat /etc/selinux/config | grep SELINUX=disabled
getenforce
2)防火墙配置
--关闭防火墙
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
--添加数据库端口号(防火墙不可关闭时)
firewall-cmd --add-port=5432/tcp
firewall-cmd --permanent --add-port=5432/tcp
firewall-cmd --reload
firewall-cmd --list-ports | grep 5432
3)参数限制配置
vi /etc/security/limits.conf
#for pg13
postgres soft core unlimited
postgres hard nproc unlimited
postgres soft nproc unlimited
postgres hard memlock unlimited
postgres hard nofile 1024000
postgres soft memlock unlimited
postgres soft nofile 1024000
postgres hard stack 65536
postgres soft stack 65536
4)时区检查配置
--检查时区
timedatectl
--修改时区为上海
timedatectl set-timezone Asia/Shanghai
--修改时区为香港
timedatectl set-timezone Asia/Hong_Kong
5)创建系统用户
groupdel postgres
userdel postgres
groupadd postgres
useradd -g postgres postgres
passwd postgres
6)创建数据目录
mkdir /app/pg13 -p
mkdir /data/pg13/{
dbbak,archive} -p
chown postgres:postgres /app/pg13 -R
chown postgres:postgres /data -R
7)安装依赖包
yum install -y make gcc gcc-c++ readline-devel zlib-devel gzip bzip2 perl-ExtUtils-Embed libperl-dev python-devel tcl-devel libxml2-devel libxslt-devel pam-devel openldap-devel libuuid-devel uuid uuid-devel openssl openssl-devel
make gcc gcc-c++:编译安装需要
gzip bzip2:解压需要
readline-devel:支持箭头键来找回和编辑之前的命令
zlib-devel:支持pg_dump和pg_restore中使用zlib压缩归档
perl-ExtUtils-Embed libperl-dev:支持PL/Perl服务器端编程语言
python-devel:支持PL/Python服务器端编程语言
tcl-devel:支持PL/Tcl过程语言
libxml2-devel:支持处理 XML
libxslt-devel:支持使用XSLT将XML转换成其他格式的程序
pam-devel openldap-devel:支持使用Kerberos、OpenLDAP和/或PAM服务的认证
libuuid-devel uuid uuid-devel:支持生成UUID
openssl openssl-devel:支持加密的客户端连接
llvm llvm-devel:llvm库,支持基于LLVM的JIT编译
8)编译安装
上传源码安装包,解压编译安装
tar -xzvf postgresql-13.6.tar.gz
cd postgresql-13.6
./configure --prefix=/app/pg13 --with-perl --with-python --with-tcl --with-openssl --with-pam --with-gssapi --enable-nls --with-uuid=e2fs --with-libxml --with-libxslt --with-ldap
make&&make install
–prefix
把所有文件装在目录 PREFIX 中而不是 /usr/local/pgsql 中,实际的文件会安装到数个子目录中。
–with-perl
制作 PL/Perl 服务器端编程语言。
–with-python
制作 PL/Python 服务器端编程语言。
–with-tcl
制作 PL/Tcl 服务器编程语言。
–with-openssl
编译 SSL(加密)连接支持。
–with-pam
使用 PAM(可插拔身份验证模块)支持构建。
–with-gssapi
构建支持 GSSAPI 身份验证。
–enable-nls
打开本地语言支持(NLS),也就是以非英文显示程序消息的能力。
–with-uuid
使用指定的 UUID 库编译 uuid-ossp 模块(提供生成 UUID 的函数)。
–with-libxml
使用 libxml2 构建,启用 SQL/XML 支持。
–with-libxslt
使用 libxslt 构建,使 xml2 模块能够执行 XML 的 XSL 转换。 --with-libxml 也必须指定。
–with-ldap
为认证和连接参数查找编译 LDAP 支持。
8)添加环境变量
su - postgres
vi /home/postgres/.bash_profile
export PGHOME=/app/pg13
export PGDATA=/data/pg13/data
export PATH=$PGHOME/bin:$PATH:$HOME/bin
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
export PATH=/app/pg13/bin:$PATH
source /home/postgres/.bash_profile
9)初始化数据库
initdb -A scram-sha-256 -W
ll /data/pg13/data
10)启动数据库
pg_ctl start
pg_ctl status
11)安装完成后的参数配置
psql 连入数据库配置
alter system set listen_addresses = '*';
alter system set max_connections = 2000;
alter system set superuser_reserved_connections = 10;
alter system set shared_buffers = '16GB'; #推荐物理内存1/4
alter system set effective_cache_size = '32GB'; #推荐物理内存的1/2
alter system set maintenance_work_mem = '2GB';
alter system set autovacuum_work_mem = '1GB';
alter system set effective_io_concurrency = 0;
alter system set checkpoint_completion_target = 0.8;
alter system set checkpoint_timeout = '30min';
alter system set log_destination = 'csvlog';
alter system set logging_collector = on;
alter system set log_directory = 'logs';
alter system set log_filename = 'postgresql-%a.log';
alter system set log_rotation_age = '1d';
alter system set log_rotation_size = 0;
alter system set log_truncate_on_rotation = on;
alter system set log_statement = 'ddl';
alter system set log_connections = on;
alter system set log_disconnections = on;
alter system set log_min_duration_statement = '5s';
alter system set log_checkpoints = on;
alter system set log_error_verbosity = verbose;
alter system set log_line_prefix = '%m [%p] %q %u %d %a %r %e ';
alter system set min_wal_size ='8GB'; #推荐 max_wal_size 的 1/4
alter system set max_wal_size ='32GB'; #推荐 shared_buffers 的 2 倍
alter system set archive_mode = on;
alter system set archive_command = 'cp %p /data/pg13/archive/%f;find /data/pg13/archive/ -type f -mtime +7 -exec rm -f {} \'; alter system set archive_timeout = '30min';
12)修改 pg_hba.conf
vi $PGDATA/pg_hba.conf
host all all 0.0.0.0/0 scram-sha-256
pg_ctl restart
13)设置开机自启动
root 用户下配置
vi /etc/rc.d/rc.local
su - postgres -c '/app/pg13/bin/pg_ctl start -D /data/pg13/data/'
chmod +x /etc/rc.d/rc.local
14)卸载
root 用户下配置
--停库
pg_ctl stop
ps -ef|grep post
--备份原数据(确认不要可删掉)
mv /data/pg13/data/ /data/pg13/data20220616
--清理用户及目录
userdel -r postgres
find / -name post*
rm -rf /app/
rm -rf /data/
边栏推荐
- 矩阵链乘 - 动态规划实例
- Time to calculate cron expression based on cronsequencegenerator
- 怎么叫一手一机的功能方式
- What are the advantages and characteristics of SAS interface
- World Environment Day | Chow Tai Fook serves wholeheartedly to promote carbon reduction and environmental protection
- 申请代码签名证书时如何选择合适的证书品牌?
- Webrtc learning (II)
- C - Divisors of the Divisors of An Integer Gym - 102040C
- Lepton 无损压缩原理及性能分析
- The IPO of Ruineng industry was terminated: the annual revenue was 447million and it was planned to raise 376million
猜你喜欢
Scenario based technology architecture process based on tidb - Theory
TiFlash 面向编译器的自动向量化加速
What is the future development trend of neural network Internet of things
Thymeleaf th:classappend属性追加 th:styleappend样式追加 th:data-自定义属性
Chow Tai Fook fulfills the "centenary commitment" and sincerely serves to promote green environmental protection
Which Internet companies are worth going to in Shenzhen for software testers [Special Edition for software testers]
Thymeleaf 模板的创建与使用
周大福践行「百周年承诺」,真诚服务推动绿色环保
How to deeply understand the design idea of "finite state machine"?
TiFlash 源码解读(四) | TiFlash DDL 模块设计及实现分析
随机推荐
R语言使用nnet包的multinom函数构建无序多分类logistic回归模型、使用coef函数获取模型中每个变量(自变量改变一个单位)对应的对数优势比(log odds ratio)
The speed monitoring chip based on Bernoulli principle can be used for natural gas pipeline leakage detection
循环不变式
Thymeleaf 使用后台自定义工具类处理文本
Linux下mysql数据库安装教程
TiFlash 源码解读(四) | TiFlash DDL 模块设计及实现分析
R language ggplot2 visualization: gganimate package is based on Transition_ The time function creates dynamic scatter animation (GIF) and uses shadow_ Mark function adds static scatter diagram as anim
How does redis implement multiple zones?
基于 TiDB 场景式技术架构过程 - 理论篇
R language ggplot2 visualization: use ggplot2 to visualize the scatter diagram, and use the labs parameter to customize the X axis label text (customize X axis labels)
Hongmeng fourth training
R語言ggplot2可視化:可視化折線圖、使用theme函數中的legend.position參數自定義圖例的比特置
What are the advantages and characteristics of SAS interface
CYCA少儿形体礼仪 宁波市培训成果考核圆满落幕
R language uses the polR function of mass package to build an ordered multi classification logistic regression model, and uses the coef function to obtain the log odds ratio corresponding to each vari
家用电器行业商业供应链协同平台解决方案:供应链系统管理精益化,助推企业智造升级
最长公共子序列 - 动态规划
Use the word "new" to attract curious people
R语言ggplot2可视化密度图:按照分组可视化密度图、自定义配置geom_density函数中的alpha参数设置图像透明度(防止多条密度曲线互相遮挡)
美国费城发生“安全事故” 2名警察遭枪杀