About pg_upgrade v17

The pg_upgrade executable is distributed with EDB Postgres Advanced Server and is installed as part of the Database Server component. You don't need to further install or configure it.

The pg_upgrade utility performs an in-place transfer of existing data between EDB Postgres Advanced Server and any later version.

Before performing a version upgrade, pg_upgrade verifies that the old cluster and the new cluster are compatible.

When pg_upgrade starts, it performs a compatibility check to ensure that all required executables are present and contain the expected version numbers. The verification process also checks the old and new $PGDATA directories to ensure that the expected files and subdirectories are in place. If the verification process succeeds, pg_upgrade starts the old postmaster and runs pg_dumpall --schema-only to capture the metadata contained in the old cluster. The script produced by pg_dumpall is used in later to re-create all user-defined objects in the new cluster.

The script produced by pg_dumpall re-creates only user-defined objects and not system-defined objects. The new cluster already contains the system-defined objects created by the latest version of EDB Postgres Advanced Server.

After extracting the metadata from the old cluster, pg_upgrade performs the bookkeeping tasks required to sync the new cluster with the existing data.

pg_upgrade runs the pg_dumpall script against the new cluster to create empty database objects of the same shape and type as those found in the old cluster. Then, pg_upgrade links or copies each table and index from the old cluster to the new cluster.

If you're upgrading to EDB Postgres Advanced Server and installed the edb_dblink_oci or edb_dblink_libpq extension, drop the extension before performing an upgrade. To drop the extension, connect to the server with the psql or PEM client, and invoke the commands:

DROP EXTENSION edb_dblink_oci;
DROP EXTENSION edb_dblink_libpq;

When you finish upgrading, you can use the CREATE EXTENSION command to add the current versions of the extensions to your installation.

If you're utilizing EDB Postgres Advanced Server on Windows, make sure that adminpack extension is deleted from each database because this feature is removed from this version without any alternative.

DROP EXTENSION adminpack;
Note

If the upgrade involves a change in the on-disk representation of database objects or data, or if it involves a change in the binary representation of data types, pg_upgrade can't perform the upgrade. To upgrade, you have to pg_dump the old data and then import that data to the new cluster.