在线安装与配置Postgresql 12.1最新版本的详细指南

发表时间: 2019-12-10 23:27

Postgresql-12.1最新版本在线安装以及配置使用全流程

Postgresql-12.1简单介绍

PostgreSQL 12.1 已经发布,该版本在各方面都得到了加强,包括显著地提升查询性能,特别是对大数据集,总的空间利用率方面。

这个版本主要几大特点如下

  • 全面的性能提升, 尤其是对索引和分区子系统

  • 对SQL标准一致性增强,优化 公共表达式,也称之为 WITH 查询

  • 授权控制,支持 OpenLDAP 模块

  • 系统管理优化,无感重建索引

  • JSON查询增强优化

    当然,除此之外还有许多新特性,在此不再赘述。

安装方式选择

二进制下载编译

下载仓库,在线安装

通过下载最新仓库Repository 在线安装,支持相关服务、客户端、以及相关插件,并且能通过更新仓库获取最新支持版本,推荐下载仓库安装。

在线仓库安装支持系统
  • Red Hat Enterprise Linux

  • CentOS

  • Scientific Linux

  • Oracle Linux

  • Fedora

yum源仓库添加

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