本文介绍RDS for PostgreSQL各版本的说明。

Release notes 20160801

Postgis由2.1.7升级到2.2.2。新创建的PostGIS插件,默认为2.2.2版本。

已创建的PostGIS 2.1.7插件,可以使用下面的命令进行升级。

说明 建议升级前对应用程序进行测试,以防止新版本的PostGIS与应用不兼容。
-- Upgrade PostGIS (includes raster)
ALTER EXTENSION postgis UPDATE TO "2.2.2";
-- Upgrade Topology 
ALTER EXTENSION postgis_topology UPDATE TO "2.2.2"; 
-- Upgrade US Tiger Geocoder
ALTER EXTENSION postgis_tiger_geocoder UPDATE TO "2.2.2";

Release notes 20160701

语法

  • set支持多变量,例如set par1=val1, par2=val2
  • 新增 rds discard all 语法支持,(支持proxy透明连接池,清除virtual pid和virtual cancel key)。
  • 新增语法,支持创建rds_superuser用户:

    CREATE ROLE | ALTER ROLE | CEATE GROUP xxx [WITH] RDS_SUPERUSER

高可用

  • HA透明切换,不需要用户重连。
  • Proxy透明化。

流复制

  • WAL Sender限速功能,解决多实例xlog数据同步网卡竞争问题。
  • 通过alidecode支持逻辑增量复制,从RDS增量复制到其他库,或者通过alidecode将MYSQL全量复制到RDS PG。

管理

  • 限制logger打印一行日志的最大长度为2K,降低频繁长SQL对性能的影响。
  • 允许RDS SUPERUSER 执行create extension创建插件。
  • max_connect 软开关,允许不重启数据库集群的情况下,动态调整连接数。
  • 新增OOM信号,异步监测PG实例的内存使用情况,terminate更彻底,降低内存开销。
  • 允许有rds_superuser权限的用户执行 REASSIGN OWNED BY 等命令。
  • 在非超级用户创建数据库时,指定tablespace为pg_default时不报错。
  • 降低OOM概率。
  • 防止因log空间写满。

安全

  • 避免由于PostgreSQL Replication机制导致HA切换后的数据丢失,内核中自动将hash index调整为b-tree index,unlogged table调整为普通table。
  • 普通用户执行create extension或alter extension时,如果触发了触发器、规则、函数,则以非超级用户权限执行。
  • 修复security definer陷阱(触发器、rule)。
  • 禁用unencrypted password,禁用pg_hba.conf password,增加用户密码复杂度限制。
  • 修复pg_authid MD5码安全漏洞。

性能

  • 创建数据库优化,数据文件预分配,减少inode写操作,降低IO hang。
  • checkpoint 优化,减少fsync时需要刷dirty page的量,减少因data=ordered造成的写metadata 需要刷dirty page导致IO HANG的概率。
  • clog优化,clog buffer加大,同时将fsync延迟到checkpoint做。

插件

支持的extension列表。

  • 社区版本插件
    plpgsql,  
     pg_stat_statements,  
     btree_gin,  
     btree_gist,  
     chkpass,  
     citext,  
     cube,  
     dblink,  
     dict_int,  
     earthdistance,  
     hstore,intagg,  
     intarray,  
     isn,  
     ltree,  
     pgcrypto,  
     pgrowlocks,  
     pg_prewarm,  
     pg_trgm,  
     postgres_fdw,  
     sslinfo,  
     tablefunc,  
     tsearch2,  
     unaccent,  
     pgstattuple,  
     "uuid-ossp"    注意:uuid-ossp前后必须带上双引号
  • 新增插件
    postgis,  
     postgis_topology,  
     fuzzystrmatch,  
     postgis_tiger_geocoder,  
     plperl,  
     pltcl,  
     plv8,  
     plls,  
     plcoffee,  
     zhparser,支持自定义分词  
     pgrouting,  
     rdkit,  
     pg_hint_plan,  
     jsonbx,  
     www_fdw,  
     oss_fdw,  
     pg_rewind

支持通过dblink、postgres_fdw访问本实例的其他数据库

监控

  • 错误

  • 空间

    • 剩余空间
    • 数据目录空间
    • XLOG目录空间(区分已归档和未归档)
  • 垃圾数据

    • 表膨胀
    • 索引膨胀
    • deadtuple
    • 未引用的大对象
  • 运行情况

    • 数据库年龄
    • 长事务与2PC
    • 序列耗尽
    • unlogged table
    • hash index
  • 性能视图

    • 备库延迟
    • 流复制SLOT延迟
    • 缓存命中率
    • 事务回滚比例
    • 锁等待
    • 慢SQL
    • TOP SQL
    • 连接数
    • 实例内存使用情况
    • 实例CPU使用情况
    • 实例IOPS使用情况
  • 配置

    • 用户密码到期时间
    • 主备配置不一致
    • 主备配置文件不一致