E.31. Postgres Pro Enterprise 9.6.2.1

Release date: 2017-03-24

E.31.1. Overview

This release is based on Postgres Pro Enterprise 9.6.1.2 and PostgreSQL 9.6.2. Major enhancements over Postgres Pro Enterprise 9.6.1.2 include:

  • Added multimaster extension.

    This extension enables you to set up shared-nothing clusters with synchronous multi-master replication. Such clusters provide OLTP scalability for read transactions, ensure fault tolerance and automatic node recovery, and enable Postgres Pro Enterprise online upgrades. (See Section F.31.)

  • Added failover algorithm for libpq connections.

  • Added aqo extension for adaptive query optimization.

    Based on the collected statistics on query execution, aqo improves cardinality estimation, which can speed up subsequent queries. (See Section F.2.)

  • Implemented declarative syntax for partitioning.

    The pg_pathman extension can now perform range and hash partitioning as part of the CREATE TABLE query. Partition management can be done with various forms of ALTER TABLE. (See Section F.39.2.6.)

  • Added mamonsu monitoring service, which is implemented as a Zabbix agent.

    Using mamonsu, you can monitor multiple PostgreSQL and system metrics and visualize the collected data in comprehensive graphs. If required, you can extend mamonsu with your own custom plugins. (See mamonsu.)

  • Added pg_wait_sampling extension for sampling-based statistics of wait events.

    With this extension, you can get an insight into the server activity, including the current wait events for all processes and background workers. (See Section F.51.)

  • Added support for timestamp output in the pg_xlogdump application.

  • Added support for one-time background jobs in pgpro_scheduler.

    You can now submit jobs for immediate or delayed one-time execution in parallel with the scheduled jobs. (See pgpro_scheduler.)

  • Updated the pg_probackup backup manager to version 1.1.0, which offers the following enhancements:

    • Added retention show and retention purge commands to implement retention policy.

    • Added support for incremental backup of compressed page files. Compressed files are the feature of the Postgres Pro Enterprise.

    • Fixed validate command. The backup_id parameter is optional now.

    • Added other miscellaneous cleanup and portability fixes.

  • Improved compressed tablespaces:

    • Added function cfs_garbage_ratio, which returns garbage ratio for a given relation.

    • Improved stability on the server hard reset or process killed by SIGTERM.

  • Bug Fixes:

    • Added a fix for WAL optimization on creating indexes.

    • Fixed incorrect xmin, xmax values in autonomous transactions.

    • Fixed submit_job and set_job_attribute pgpro_scheduler functions on Microsoft Windows systems.

    • Resolved the issue of data corruption in compressed tablespaces.

  • Module pg_pathman has been updated to version 1.3 (see Section F.39.1.1).

  • The sr_plan module is now initialized independently for each database instance.

  • Syntax for covering indexes has been changed. Now the keyword INCLUDING is replaced by INCLUDE. The previous syntax still works, but is deprecated (see Section 11.6).

  • RHEL-based distributions are installed in a separate location, so the Postgres Pro database can be installed in parallel with an existing PostgreSQL database.

  • Improved the algorithm of automatic TCP-port selection for the case of parallel installation of different versions of the product on Windows systems.

E.31.2. Migration to Version 9.6.2.1

A dump/restore using pg_dumpall, or use of pg_upgrade, is required for those wishing to migrate data from any previous major release.

Dump/restore is necessary when migrating from PostgreSQL or Postgres Pro Standard edition.

For upgrades from previous releases of Postgres Pro Standard or PostgreSQL 9.6.x, some catalog changes should be applied.

If you use binary packages, and your database is in the default location, this upgrade should be performed automatically. If you've created your database in a non-default location, running initdb manually, you should run the pgpro_upgrade script provided in this distribution.

Before running the script, you should stop the postgres service. The script should be run on behalf of the user owning the database (typically postgres), and the PGDATA environment variable should be set to the directory where the database resides.