• PostgreSQL 16 发布,更可靠更稳健


    📢📢📢📣📣📣
    哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
    一位上进心十足的【大数据领域博主】!😜😜😜
    中国DBA联盟(ACDU)成员,目前服务于工业互联网
    擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
    ✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
    ❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

    前言

    2023年9月14日 - PostgreSQL 全球开发集团重磅宣布发布 PostgreSQL 16,这是世界上最先进的开源数据库的最新版本!

    📣1 .新版本概述

    在这里插入图片描述

    PostgreSQL 16提高了性能,在查询并行性、批量数据加载和逻辑复制方面有显著改进。此版本为开发人员和管理员提供了许多功能,包括更多 SQL/JSON 语法、针对工作负载的新监控统计数据,以及定义访问控制规则以管理大型队列策略的更大灵活性。PostgreSQL 核心团队成员 Dave Page 表示:“随着关系数据库模式的发展,PostgreSQL 在大规模搜索和管理数据方面不断提高性能。” “PostgreSQL 16 为用户提供了更多方法来扩展和横向扩展其工作负载,同时为他们提供了获得见解和优化数据管理方式的新方法。”PostgreSQL 是一种以其可靠性和稳健性而闻名的创新数据管理系统,受益于全球开发者社区超过 25 年的开源开发,已成为各种规模组织的首选开源关系数据库。

    本人也是pg的忠实爱好者,特总结了以下pg16新特性

    ✨ 1.1 性能改进

    PostgreSQL 16在x86和ARM架构中都引入了使用SIMD的CPU加速,从而在处理ASCII和JSON字符串以及执行数组和子转换搜索时提高了性能

    ✨ 1.2 逻辑复制

    PostgreSQL 16中对逻辑复制有一些访问控制改进,包括新的预定义角色pg_create_subscription,它允许用户创建新的逻辑订阅。最后,此版本开始添加对双向逻辑复制的支持,引入了在来自不同发布者的两个表之间复制数据的功能。

    ✨ 1.3 开发者经验

    PostgreSQL 16 改进了对文本排序规则的一般支持 ,它提供了文本排序的规则。PostgreSQL 16 默认情况下构建 ICU 支持,从环境中确定默认的 ICU 区域设置,并允许用户定义自定义 ICU 排序规则。

    ✨1.4 监控

    调整数据库工作负载性能的一个关键方面是了解 I/O 操作对系统的影响。PostgreSQL 16 引入了 pg_stat_io关键 I/O 指标的新来源,用于对 I/O 访问模式进行精细分析。

    ✨1.5 访问控制和安全

    PostgreSQL 16 提供了更细粒度的访问控制选项并增强了其他安全功能。pg_hba.conf该 版本改进了文件的管理 pg_ident.conf ,包括允许用户和数据库名称的正则表达式匹配以及包含外部配置文件的指令.

    📣2 .PG16部署

    ✨2.1 安装包下载

    官网下载安装包,本次使用源码安装的方式
    https://www.postgresql.org/ftp/source/v16.0/

    在这里插入图片描述

    ✨2.2 创建用户

    groupadd -g 60000 pgsql
    useradd -u 60000 -g pgsql pgsql
    echo “beijing” | passwd --stdin pgsql

    在这里插入图片描述

    ✨2.3 创建目录

    mkdir /soft
    mkdir -p /postgresql/{pgdata,archive,scripts,backup,pg16,soft}
    chown -R pgsql:pgsql /postgresql
    chown -R pgsql:pgsql /soft
    chmod -R 775 /postgresql

    在这里插入图片描述

    ✨2.4 编译

    [root@centos79 ~]# cp /opt/postgresql-16.0.tar.gz /soft
    [root@centos79 ~]# chown -R pgsql:pgsql /soft
    [root@centos79 ~]# cp /opt/postgresql-16.0.tar.gz /postgresql/soft/
    [root@centos79 ~]# su - pgsql
    Last login: Mon Sep 25 08:04:41 CST 2023 on pts/0
    [pgsql@centos79 ~]$ cd /postgresql/soft/
    [pgsql@centos79 soft]$ ll
    total 31528
    -rw-r–r–. 1 pgsql pgsql 32283370 Sep 25 08:04 postgresql-16.0.tar.gz
    [pgsql@centos79 soft]$ tar zxvf postgresql-16.0.tar.gz

    [pgsql@centos79 soft]$ cd postgresql-16.0/
    [pgsql@centos79 postgresql-16.0]$ ll
    total 876
    -rw-r–r–. 1 pgsql pgsql 365 Sep 12 04:25 aclocal.m4
    drwxrwxr-x. 2 pgsql pgsql 4096 Sep 12 04:28 config
    -rwxr-xr-x. 1 pgsql pgsql 584200 Sep 12 04:25 configure
    -rw-r–r–. 1 pgsql pgsql 87156 Sep 12 04:25 configure.ac
    drwxrwxr-x. 61 pgsql pgsql 4096 Sep 12 04:28 contrib
    -rw-r–r–. 1 pgsql pgsql 1192 Sep 12 04:25 COPYRIGHT
    drwxrwxr-x. 3 pgsql pgsql 4096 Sep 12 04:28 doc
    -rw-r–r–. 1 pgsql pgsql 4288 Sep 12 04:25 GNUmakefile.in
    -rw-r–r–. 1 pgsql pgsql 277 Sep 12 04:25 HISTORY
    -rw-r–r–. 1 pgsql pgsql 64592 Sep 12 04:29 INSTALL
    -rw-r–r–. 1 pgsql pgsql 1875 Sep 12 04:25 Makefile
    -rw-r–r–. 1 pgsql pgsql 101920 Sep 12 04:28 meson.build
    -rw-r–r–. 1 pgsql pgsql 6266 Sep 12 04:25 meson_options.txt
    -rw-r–r–. 1 pgsql pgsql 1213 Sep 12 04:25 README
    drwxrwxr-x. 16 pgsql pgsql 4096 Sep 12 04:29 src

    yum install gcc
    yum install zlib-devel
    ./configure --prefix=/postgresql/pg16 --without-readline

    在这里插入图片描述
    make -j 4 && make install

    在这里插入图片描述

    ✨2.5 配置环境变量

    [pgsql@centos79 ~]$ cd
    [pgsql@centos79 ~]$ pwd
    /home/pgsql
    
    cat >> ~/.bash_profile <<"EOF"
    export LANG=en_US.UTF-8
    export PS1="[\u@\h \W]\$ "
    export PGPORT=5432
    export PGDATA=/postgresql/pgdata
    export PGHOME=/postgresql/pg16
    export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
    export PATH=$PGHOME/bin:$PATH:.
    export DATE=`date +"%Y%m%d%H%M"`
    export MANPATH=$PGHOME/share/man:$MANPATH
    export PGHOST=$PGDATA
    export PGUSER=postgres
    export PGDATABASE=postgres
    alias psql='rlwrap psql' 
    EOF
    
    [pgsql@centos79 ~]$ source  ~/.bash_profile
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    ✨2.6 初始化安装

    su - pgsql
    /postgresql/pg16/bin/initdb -D /postgresql/pgdata -E UTF8 --locale=en_US.utf8 -U postgres

    在这里插入图片描述
    /postgresql/pg16/bin/pg_ctl -D /postgresql/pgdata -l logfile start

    📣3.PG16启动使用

    [root@centos79 /]# su - pgsql
    [pgsql@centos79 ~]$ pg_ctl start
    [pgsql@centos79 ~]$ pg_ctl status
    [pgsql@centos79 ~]$ pg_ctl stop
    [pgsql@centos79 ~]$ netstat -anp | grep 5432

    在这里插入图片描述

    [pgsql@centos79 ~]$ cd /postgresql/pgdata/pg_log
    [pgsql@centos79 pg_log]$ ll
    total 4
    -rw-------. 1 pgsql pgsql 618 Sep 25 08:28 postgresql-Mon.log
    [pgsql@centos79 pg_log]$ more postgresql-Mon.log
    2023-09-25 08:28:45.167 CST [14533] LOG:  starting PostgreSQL 16.0 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit
    2023-09-25 08:28:45.168 CST [14533] LOG:  listening on IPv4 address "0.0.0.0", port 5432
    2023-09-25 08:28:45.169 CST [14533] LOG:  listening on IPv6 address "::", port 5432
    2023-09-25 08:28:45.170 CST [14533] LOG:  listening on Unix socket "/postgresql/pgdata/.s.PGSQL.5432"
    2023-09-25 08:28:45.173 CST [14537] LOG:  database system was shut down at 2023-09-25 08:25:07 CST
    2023-09-25 08:28:45.175 CST [14533] LOG:  database system is ready to accept connections
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    [pgsql@centos79 ~]$ psql
    psql (16.0)
    Type "help" for help.
    
    postgres=# \l
                                                          List of databases
       Name    |  Owner   | Encoding | Locale Provider |  Collate   |   Ctype    | ICU Locale | ICU Rules |   Access privileges   
    -----------+----------+----------+-----------------+------------+------------+------------+-----------+-----------------------
     postgres  | postgres | UTF8     | libc            | en_US.utf8 | en_US.utf8 |            |           | 
     template0 | postgres | UTF8     | libc            | en_US.utf8 | en_US.utf8 |            |           | =c/postgres          +
               |          |          |                 |            |            |            |           | postgres=CTc/postgres
     template1 | postgres | UTF8     | libc            | en_US.utf8 | en_US.utf8 |            |           | =c/postgres          +
               |          |          |                 |            |            |            |           | postgres=CTc/postgres
    (3 rows)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    数据分析必备:6大步骤+5大类型+2大分析方法
    初识猿如意开发工具
    uniapp(uncloud) 使用生态开发接口详情5(云公共模块)
    UE5在UI上播放视频带声音的解决方案
    详解 HBase 的常用 API
    VR虚拟展厅的亮点是什么?有哪些应用?
    惠及6亿人 投资98亿 沿江高铁武宜段最新进展来了!
    365包包模式讲解
    YOLOV:图像对象检测器在视频对象检测方面表现也很不错
    63. 不同路径 II
  • 原文地址:https://blog.csdn.net/weixin_41645135/article/details/133229801