Charmed PostgreSQL K8s How-to - Migrate database data using backup/restore

Migrate database data using ‘backup/restore’

This is a guide for migrating data from modern charms. To migrate legacy charms data, refer to the guide Migrate data via pg_dump.

This Charmed PostgreSQL K8s operator is able to restore its own backups stored on S3-compatible storage. The same restore approach is applicable to restore backups made by a different installation of Charmed PostgreSQL, or even another PostgreSQL charm. (The backups have to be created manually using pgBackRest!)

Warning: The Canonical Data Team describes here the general approach and does NOT support nor guarantee the restoration results.

Always test a migration in a safe environment before performing it in production!

Prerequisites

  • Check your application compatibility with Charmed PostgreSQL K8s before migrating production data from legacy charm
  • Make sure PostgreSQL versions are identical before the migration

Migrate database data

Below is the general approach to the migration (see warning above!):

  1. Retrieve root/admin-level credentials from the legacy charm.

    See examples here.

  2. Install pgBackRest inside the old charm OR nearby.

    Ensure the version is compatible with pgBackRest in the new Charmed PostgreSQL K8s revision you are going to deploy! See examples here.

    Note: You can use charmed-postgresql SNAP/ROCK directly. More details here.

  3. Configure storage for database backup (local or remote, S3-based is recommended).

  4. Create a first full logical backup during the off-peak

    See an example of backup command here.

  5. Migrate this backup to the Charmed PostgreSQL installation in your test environment.

  6. Perform all the necessary tests to make sure your application accepted the new database

  7. Schedule and perform the final production migration, re-using the last steps above.


Do you have questions? Contact us if you are interested in such a data migration!