Run Manual Backup

This section describes how to manually run a backup of a database instance.  

Prerequisites

Do not stop the database while a backup is in progress.

Do not add or remove nodes on the archive volume or on the data volume being backed up while the backup is in progress.

Procedure

This procedure can be carried out using the Administration API.

The examples in this procedure are written using Bash on a Linux terminal. You can also use other interfaces and languages to execute the curl commands.

Placeholder values are styled as Bash variables, starting with the dollar sign ($) and using UPPERCASE characters. Replace the placeholders with your own values before executing the curl command.

  1. Get information about the database by sending a GET request to the /api/v1/databases endpoint. For example:

    curl -k -X "GET" \
    "https://$EXASOL_IP/api/v1/databases" \
    -H "accept: application/json" \
    -H "Authorization: Basic $AUTH_TOKEN"

    The response will include the following:

    • Database ID
    • Database name
    • Database version
    • Provider type
    • Number of clusters in the database
    • Number of clusters running
    • Volumes

    Additional database parameters and hardware details may be included in the response depending on the configuration and platform.

  2. Each backup is written to an archive volume. By default, an S3 bucket is created during deployment and configured as a remote archive volume. The name of the remote archive volume is cloud_data_remote_volume.

    To get information about the existing archive volumes for the database, send a GET request to the /api/v1/databases/DATABASE_ID/volumes endpoint. For example:

    curl -k -X "GET" \
    "https://$EXASOL_IP/api/v1/databases/$DATABASE_ID/volumes" \
      -H "accept: application/json" \
      -H "Authorization: Basic $TOKEN"
  3. To create a backup, send a PUT request to the /api/v1/databases/DATABASE_ID/backups/start endpoint.

    You must specify the backup level (level) and expiration time (expire) as a part of the request.

    • The backup level parameter indicates if this is a full or incremental backup. For more information about backup types, see Backup Essentials.
    • The expiration time parameter determines when the backup is considered invalid and can be automatically cleaned up. Expiration time is given in the format #w #d #h #m.

    For example:

    curl -k -X "PUT" \
    "https://$EXASOL_IP/api/v1/databases/$DATABASE_ID/backups/start" \
    -H "accept: application/json" \
    -H "Authorization: Basic $TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
    "backupVolumeId": 10002,
    "backupVolumeName": "r0002",
    "level": 0,
    "expire": "1w"
    }'

Abort Backup

To abort a running backup, send a PUT request to the /api/v1/databases/DATABASE_ID/backups/abort endpoint. For example:

curl -k -X "PUT" \
"https://$EXASOL_IP/api/v1/databases/$DATABASE_ID/backups/abort" \
-H "accept: application/json" \
-H "Authorization: Basic $TOKEN"