## E.16. Postgres Pro Enterprise 9.6.2.1

Release date: 2017-03-24

### E.16.1. Overview

This release is based on Postgres Pro Enterprise 9.6.1.2 and Postgres Pro Standard 9.6.2.1.

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.30.)

- 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.38.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.50.)

- 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. This release adds 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.

### E.16.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.