Make a Streaming Backup

Stream mode sends the backup to STDOUT in the xbstream format instead of copying it to the directory named by the first argument. You can pipe the output to a local file, or, across the network, to another server.

To extract the resulting xbstream file, you must use the xbstream utility: xbstream -x <  backup.xbstream.

Examples of Using xbstream

Task Command
Stream the backup into an archive named backup.xbstream xtrabackup --backup --stream=xbstream --target-dir=./ > backup.xbstream
Stream the backup into a compressed archive named backup.xbstream xtrabackup --backup --stream=xbstream --compress --target-dir=./ > backup.xbstream
Encrypt the backup $ xtrabackup –backup –stream=xbstream ./ > backup.xbstream gzip - | openssl des3 -salt -k “password” > backup.xbstream.gz.des3
Unpack the backup to the current directory xbstream -x <  backup.xbstream
Send the backup compressed directly to another host and unpack it xtrabackup --backup --compress --stream=xbstream --target-dir=./ | ssh user@otherhost "xbstream -x"
Send the backup to another server using netcat.

On the destination host:

$ nc -l 9999 | cat - > /data/backups/backup.xbstream

On the source host:

$ xtrabackup --backup --stream=xbstream ./ | nc desthost 9999
Send the backup to another server using a one-liner: $ ssh user@desthost “( nc -l 9999 > /data/backups/backup.xbstream & )” && xtrabackup –backup –stream=xbstream ./ | nc desthost 9999
Throttle the throughput to 10MB/sec using the pipe viewer tool [1] $ xtrabackup –backup –stream=xbstream ./ | pv -q -L10m ssh user@desthost “cat - > /data/backups/backup.xbstream”
Checksumming the backup during the streaming:

On the destination host:

$ nc -l 9999 | tee >(sha1sum > destination_checksum) > /data/backups/backup.xbstream

On the source host:

$ xtrabackup --backup --stream=xbstream ./ | tee >(sha1sum > source_checksum) | nc desthost 9999

Compare the checksums on the source host:

$ cat source_checksum
65e4f916a49c1f216e0887ce54cf59bf3934dbad  -

Compare the checksums on the destination host:

$ cat destination_checksum
65e4f916a49c1f216e0887ce54cf59bf3934dbad  -
Parallel compression with parallel copying backup xtrabackup --backup --compress --compress-threads=8 --stream=xbstream --parallel=4 --target-dir=./ > backup.xbstream

Footnotes

[1]Install from the official site or from the distribution package (apt install pv)

See also

More information about streaming and compressing backups
Section Streaming Backups

Contact Us

For free technical help, visit the Percona Community Forum.
To report bugs or submit feature requests, open a JIRA ticket.
For paid support and managed or professional services, contact Percona Sales.