当前位置:网站首页>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/
边栏推荐
- How to protect user privacy without password authentication?
- 汇编语言 assembly language
- R language uses boxplot function in native package (basic import package, graphics) to visualize box plot
- R language uses the multinom function of NNET package to build an unordered multi classification logistic regression model, and uses the coef function to obtain the log odds ratio corresponding to eac
- mysql8.0JSON_CONTAINS的使用说明
- Thymeleaf th:with局部变量的使用
- R language ggplot2 visual density map: Visual density map by group and custom configuration geom_ The alpha parameter in the density function sets the image transparency (to prevent multiple density c
- MySQL user-defined function ID number to age (supports 15 / 18 digit ID card)
- 最长公共子序列 - 动态规划
- 2022年国内正规的期货公司平台有哪些啊?方正中期怎么样?安全可靠吗?
猜你喜欢
Tdengine biweekly selection of community issues | phase III
申请代码签名证书时如何选择合适的证书品牌?
How to deeply understand the design idea of "finite state machine"?
Loop invariant
网上电子元器件采购商城:打破采购环节信息不对称难题,赋能企业高效协同管理
How to introduce devsecops into enterprises?
魅族新任董事長沈子瑜:創始人黃章先生將作為魅族科技產品戰略顧問
Guofu hydrogen energy rushes to the scientific and Technological Innovation Board: it plans to raise 2billion yuan, and 360million yuan of accounts receivable exceed the revenue
CyCa children's physical etiquette Ningbo training results assessment came to a successful conclusion
【学习笔记】阶段测试1
随机推荐
How does redis implement multiple zones?
最简单不用证书也可以多开功能的方式
SAS接口有什么优势特点
03_ Dataimport of Solr
CYCA少儿形体礼仪 宁波市培训成果考核圆满落幕
网上电子元器件采购商城:打破采购环节信息不对称难题,赋能企业高效协同管理
How to deeply understand the design idea of "finite state machine"?
R language ggplot2 visualization: visual line graph, using legend in theme function The position parameter defines the position of the legend
魅族新任董事长沈子瑜:创始人黄章先生将作为魅族科技产品战略顾问
做自媒體視頻二次剪輯,怎樣剪輯不算侵權
【学习笔记】图的连通性与回路
让秒杀狂欢更从容:大促背后的数据库(下篇)
R语言使用ggplot2包的geom_histogram函数可视化直方图(histogram plot)
Why do mechanical engineers I know complain about low wages?
不相交集
Matrix chain multiplication dynamic programming example
基于伯努利原理的速度监测芯片可用于天然气管道泄露检测
周大福践行「百周年承诺」,真诚服务推动绿色环保
01. Solr7.3.1 deployment and configuration of jetty under win10 platform
循环不变式