Skip to content

Use the xbcloud binary with Swift

Create a full backup with Swift

The following example shows how to make a full backup and upload it to Swift.

$ xtrabackup --backup --stream=xbstream --extra-lsndir=/tmp --target-dir=/tmp | \
xbcloud put --storage=swift \
--swift-container=test \
--swift-user=test:tester \
--swift-auth-url=http://192.168.8.80:8080/ \
--swift-key=testing \
--parallel=10 \
full_backup

The following OpenStack environment variables are also recognized and mapped automatically to the corresponding swift parameters (--storage=swift):

  • OS_AUTH_URL

  • OS_TENANT_NAME

  • OS_TENANT_ID

  • OS_USERNAME

  • OS_PASSWORD

  • OS_USER_DOMAIN

  • OS_USER_DOMAIN_ID

  • OS_PROJECT_DOMAIN

  • OS_PROJECT_DOMAIN_ID

  • OS_REGION_NAME

  • OS_STORAGE_URL

  • OS_CACERT

Restore with Swift

$ xbcloud get [options] <name> [<list-of-files>] | xbstream -x

The following example shows how to fetch and restore the backup from Swift:

$ xbcloud get --storage=swift \
--swift-container=test \
--swift-user=test:tester \
--swift-auth-url=http://192.168.8.80:8080/ \
--swift-key=testing \
full_backup | xbstream -xv -C /tmp/downloaded_full

$ xbcloud delete --storage=swift --swift-user=xtrabackup \
--swift-password=xtrabackup123! --swift-auth-version=3 \
--swift-auth-url=http://openstack.ci.percona.com:5000/ \
--swift-container=mybackup1 --swift-domain=Default

Command-line options

xbcloud has the following command line options:

–storage(=[swift|s3|google])

Cloud storage option. xbcloud supports Swift, MinIO, and AWS S3. The default value is swift.

–swift-auth-url()

The URL of the Swift cluster

–swift-storage-url()

The xbcloud tries to get the object-store URL for a given region (if any are specified) from the keystone response. You can override that URL by passing –swift-storage-url=URL argument.

–swift-user()

The Swift username (X-Auth-User, specific to Swift)

–swift-key()

The Swift key/password (X-Auth-Key, specific to Swift)

–swift-container()

The container to back up into (specific to Swift)

–parallel(=N)

The maximum number of concurrent upload/download requests. The default value is 1.

–cacert()

The path to the file with CA certificates

–insecure()

Do not verify server’s certificate

Swift authentication options

The Swift specification describes several authentication options. The xbcloud tool can authenticate against keystone with API version 2 and 3.

–swift-auth-version()

Specifies the swift authentication version. The possible values are: 1.0 - TempAuth, 2.0 - Keystone v2.0, and 3 - Keystone v3. The default value is 1.0.

For v2 additional options are:

–swift-tenant()

Swift tenant name

–swift-tenant-id()

Swift tenant ID

–swift-region()

Swift endpoint region

–swift-password()

Swift password for the user

For v3 additional options are:

–swift-user-id()

Swift user ID

–swift-project()

Swift project name

–swift-project-id()

Swift project ID

–swift-domain()

Swift domain name

–swift-domain-id()

Swift domain ID

Get expert help

If you need assistance, visit the community forum for comprehensive and free database knowledge, or contact our Percona Database Experts for professional support and services.