Top Banner
Percona XtraBackup Backup To Cloud Storage 1
14

Percona XtraBackup Backup to Cloud Storage (Swift)

Jan 25, 2017

Download

Data & Analytics

Kenny Gryp
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Percona XtraBackup Backup to Cloud Storage (Swift)

Percona XtraBackup Backup To Cloud Storage

1

Page 2: Percona XtraBackup Backup to Cloud Storage (Swift)

Kenny GrypPrincipal Architect

2

Page 3: Percona XtraBackup Backup to Cloud Storage (Swift)

An open source, free MySQL® hot backupsoftware that performs non-blockingbackups for InnoDB and XtraDB databasesfor Percona Server, Oracle MySQL &MariaDBPercona XtraBackup

3

Page 4: Percona XtraBackup Backup to Cloud Storage (Swift)

Swift is a highly available, distributedobject/blob storeAKA. OpenStack Object StorageSwift

4

Page 5: Percona XtraBackup Backup to Cloud Storage (Swift)

Percona XtraBackup - 2.2Online Backup

Multi Threaded

Compression

Encryption

Streaming Backups

Delta/Incremental Support

Partial Backup/Restore

5

Page 6: Percona XtraBackup Backup to Cloud Storage (Swift)

Percona XtraBackup - 2.3innobackupex is no longer, all built in xtrabackup!

Support for immediate backup streaming to Swift

Currently Beta

Planned to be in OpenStack Trove Liberty in the future (Tesora)

Amazon S3 support will be added in the future.

6

Page 7: Percona XtraBackup Backup to Cloud Storage (Swift)

Configuring Percona XtraBackup[xtrabackup]compresscompress-threads=4encrypt=AES256encrypt-key='VERY_VERY_VERY_VERY_INSECURE_KEY'encrypt-threads=4stream=xbstream

[xtrabackup_decompress_decrypt]decompressdecompress-threads=4decrypt=AES256

7

Page 8: Percona XtraBackup Backup to Cloud Storage (Swift)

Configuring Percona XtraBackup[xtrabackup]compresscompress-threads=4encrypt=AES256encrypt-key='VERY_VERY_VERY_VERY_INSECURE_KEY'encrypt-threads=4stream=xbstream

[xtrabackup_decompress_decrypt]decompressdecompress-threads=4decrypt=AES256

[xbcloud]parallel=4storage=swiftswift-auth-url=http://swift:8080/swift-auth-version=1.0 # 1.0-TempAuth, 2.0-Keystone_v2.0, 3-Keystone_v3swift-user="test:tester"swift-key=testingswift-container=Backup

8

Page 9: Percona XtraBackup Backup to Cloud Storage (Swift)

Taking Full BackupBackup:

export date=`date '+%Y-%M-%d_%H-%M-%S'`xtrabackup --backup | xbcloud put "Full/$date"

Show Backup:

swift list Backup

9

Page 10: Percona XtraBackup Backup to Cloud Storage (Swift)

Recovering Full BackupGet Data:

mkdir /restorexbcloud get Full/2015-05-22_23-05-55 | xbstream -x -v -C /restore

Decompress & Decrypt:

xtrabackup --defaults-group-suffix=_decompress_decrypt --target-dir=/restore

Prepare the backup (in this example, with incremental support):

xtrabackup --prepare --apply-log-only --target-dir=/restore

Copy Back:

xtrabackup --copy-back --target-dir=/restorechown -R mysql:mysql /var/lib/mysql

10

Page 11: Percona XtraBackup Backup to Cloud Storage (Swift)

Taking Incremental BackupMore Challenging to get LSN, with encrypted backups

export incrdate=`date '+%Y-%M-%d_%H-%M-%S'`xtrabackup --backup \ --incremental-lsn=`xtrabackup_swift_encrypted_incremental_lsn \ Backup Full/2015-05-22_23-05-55` | \ xbcloud put "Incremental/$incrdate"

11

Page 12: Percona XtraBackup Backup to Cloud Storage (Swift)

Getting LSN For IncrementalEncrypted Backupsxtrabackup_swift_encrypted_incremental_lsn:

#!/bin/bash

container=$1backuppath=$2encryptionkey=/root/swift.keytmpdir=`mktemp -d`

( swift download -o - $container \ $backuppath/xtrabackup_checkpoints.xbcrypt.00000000000000000000; swift download -o - $container \ $backuppath/xtrabackup_checkpoints.xbcrypt.00000000000000000001) |xbstream -x -C $tmpdir

cat $tmpdir/xtrabackup_checkpoints.xbcrypt | \ xbcrypt -d -a AES256 -f $encryptionkey | \ grep to_lsn | awk '{print $3}'

rm -rf $tmpdir

12

Page 13: Percona XtraBackup Backup to Cloud Storage (Swift)

Recover Incremental BackupLets get the incremental from Swift:

Decompress & Decrypt:

xtrabackup --defaults-group-suffix=_decompress_decrypt \ --target-dir=/restore_incremental

Apply the incremental on the already prepared full

xtrabackup --prepare --apply-log-only \ --target-dir=/restore/ --incremental-dir=/restore_incremental

Restore:

xtrabackup --copy-back --target-dir=/restore

mkdir /restore_incrementalxbcloud get Incremental/2015-36-22_23-36-54 | xbstream -x -v -C /restore_incremental

13

Page 14: Percona XtraBackup Backup to Cloud Storage (Swift)

Percona XtraBackupBackup To Cloud Storage

Download beta today:

https://www.percona.com/blog/2015/05/20/percona-xtrabackup-

2-3-1-beta1-is-now-available/

Feedback appreciated!

Questions?

Don't forget to rate talks with the Percona Live Amsterdam App!

Kenny Gryp (@gryp)

14