Backups are enabled by default. The PostgreSQL instance will be backed up daily at a randomly chosen time between 22:00 and 4:00. The backup is done using pg_basebackup tool which supports Point-in-Time Recovery. This approach allows to make a backup of an online database with minimum performance hit. It also guarantees that the changes made to the data during the backup process will also end up in the backup files.

You can specify a different backup time and interval using the following backup configuration:

kind: VSHNPostgreSQL
  name: pgsql-app1-prod
  namespace: <your-namespace>
      schedule: 0 22 * * * (1)
1 The schedules for your backups.

Listing Backups

Get an overview of all backups performed of your database instance:

$ kubectl -n <your-namespace> get vshnpostgresbackups
BACKUP NAME                                 DATABASE INSTANCE   STORED TIME               STATUS     AGE
pgsql-app1-prod-pk8k4-2023-03-05-13-05-00   pgsql-app1-prod     2023-03-05T13:05:15.755Z  Completed  38s
pgsql-app1-dev-pk8k4-2023-03-01-16-52-11    pgsql-app1-dev                                Failed     28s
The list will show all backups from all instances in this namespace. In the example above there are two database instances with one backup each.

Backup Details

Learn more about a chosen backup:

$ kubectl -n <your-namespace> get vshnpostgresbackups pgsql-app1-prod-pk8k4-2023-03-05-13-05-00 -oyaml
kind: VSHNPostgresBackup
  name: pgsql-app1-prod-pk8k4-2023-03-05-13-05-00 (1)
  namespace: <your-namespace>
  databaseInstance: pgsql-app1-prod (2)
    failure: "" (3)
    jobPod: pgsql-app1-prod-pk8k4-backup-27967024-6xjpq
    status: Completed
      end: "2023-03-05T13:05:15.61228Z"
      start: "2023-03-05T13:05:09.519369Z"
      stored: "2023-03-05T13:05:15.755Z" (4)
1 The name of the backup.
2 The name of the database instance of this backup.
3 A failure message if the backup job failed.
4 The date and time of the backup.