PostgreSQL 12.1 已经发布,该版本在各方面都得到了加强,包括显著地提升查询性能,特别是对大数据集,总的空间利用率方面。
这个版本主要几大特点如下
全面的性能提升, 尤其是对索引和分区子系统
对SQL标准一致性增强,优化 公共表达式,也称之为 WITH 查询
授权控制,支持 OpenLDAP 模块
系统管理优化,无感重建索引
JSON查询增强优化
当然,除此之外还有许多新特性,在此不再赘述。
通过下载最新仓库Repository 在线安装,支持相关服务、客户端、以及相关插件,并且能通过更新仓库获取最新支持版本,推荐下载仓库安装。
Red Hat Enterprise Linux
CentOS
Scientific Linux
Oracle Linux
Fedora
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-6-x86_64/pgdg-redhat-repo-latest.noarch.rpm
服务端安装
yum install postgresql12-server
客户端安装
yum install postgresql12-server
更新数据保存位置
vi /usr/lib/systemd/system/postgresql-12.service
找到Environment=PGDATA=/var/lib/pgsql/12/data/,将当前数据保存位置更新成自己指定位置
reboot系统
默认保存位置/var/lib/pgsql/12/data
启动服务
配置特定网段访问
允许所有IP 都可以连接
listen_addresses
参数含义:指定数据库用来监听客户端连接的TCP/IP地址。
参数优化:如需接受其他Client的连接请求,需修改为*
max_connections
参数含义:数据库可以同时建立的最大的客户端连接的数目。
参数优化:根据业务应用情况和主机配置设置。不宜设置过大,如连接数大于一定数量(与机器配置相关)时,会因为进程上下文的频繁切换导致性能降低。
shared_buffers
参数含义:数据库共享内存缓冲区大小,决定有多少内存可以被PostgreSQL用于缓存数据,该缓冲区为所有连接共用。
参数优化:服务器内存较小时设置为服务器内存的25%-40%,内存较大时可适当设置。
work_mem
参数含义:内部排序和哈希操作可使用的工作内存大小。
参数优化:全局设置此参数可能会导致内存使用率过高,即当同时有多个会话进行排序操作时,每个会话会分配到这个参数大小的内存。设置不宜过大。如果要使用语句中有较大的排序操作,可以在会话级别设置该参数(如:set work_men = ‘2GB’)。
初始化数据库
/usr/pgsql-12/bin/postgresql-12-setup initdb
启动以及开机自启
systemctl start postgresql-12systemctl enable postgresql-12
配置文件postgresql.conf基本属性修改
前面所述,数据存储文件位置默认为/var/lib/pgsql/12/data/
配置文件pg_hba.conf配置网络访问权限
host all all 192.10.99.0/24 trust
其意义是允许 192.10.99网段的IP 连接此服务器上的PG.
host all all 0.0.0.0/0 trust
配置完毕务必重启应用
systemctl restart postgresql-12
查看防火墙访问端口列表
firewall-cmd --zone=public --list-ports
添加5432端口
firewall-cmd --zone=public --add-port=5432/tcp --permanent
重启防火墙
firewall-cmd --reload
默认密码修改
# 默认密码为空,切换到postgres用户
su postgres
# 进入pg数据库,默认密码为空
psql -U postgres
# 更新密码
ALTER USER postgres with encrypted password 'xxx';
# 退出
\q;
数据库以及用户创建
psql -U postgres;create user username with password 'xxx';create database blog owner username ;grant all privileges on database blog to username ;
扩展安装
postgresql程序不包含uuid生成函数,需安装插件包添加uuid生成函数 uuid_generate_v4() 。
#安装拓展包yum install postgresql12-devel
数据库切换命令:
\c database_name
为当前数据库创建函数
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
验证函数
select uuid_generate_v4()
postgresql切换到需要安装插件的数据库
插件安装
yum -y install postgresql12-contrib