XBSTREAM(1)

πŸ“¦
version 9.7.1_rc1 Β· 4 versions
, in arch rolling, ubuntu stonking

πŸ¦‹ XBSTREAM(1) β€” okay bestie, it's xbstream from Percona XtraBackup πŸ’–

Hiii so this is the manual page for xbstream, aka the little streaming icon of Percona XtraBackup. Buckle up, it's giving archive-format-glow-up ✨


🌸 NAME 🌸

xbstream β€” Percona xbstream Documentation

So here's the tea β˜• bestie: to support simultaneous compression and streaming, a whole new custom streaming format called xbstream got introduced to Percona XtraBackup, on top of the TAR format. Why, you ask? Because traditional archive formats like tar, cpio and their little friends literally could not do the thing β€” they did not allow streaming dynamically generated files, for example dynamically compressed files 😭. Rude of them, honestly.

The other advantages xbstream has over traditional streaming/archive formats? Say it with me πŸ‘‘

  • ability to stream multiple files concurrently β€” so yeah, you can totally use streaming in the xbstream format together with the --parallel option πŸ”₯
  • more compact data storage ✨

This utility has a tar-like interface, so if you already vibe with tar you're gonna eat this up:

  • with the -x option it extracts files from the stream read from its standard input to the current directory β€” unless you specified otherwise with the -c option. Support for parallel extraction with the --parallel option has been implemented in Percona XtraBackup 2.4.7.
  • with the -c option it streams files specified on the command line to its standard output.
  • with the --decrypt=ALGO option specified, xbstream will automatically decrypt encrypted files when extracting input stream. The supported values for this option are: AES128, AES192, and AES256. Either --encrypt-key or --encrypt-key-file options must be specified to provide the encryption key, but not both 🚨. This option has been implemented in Percona XtraBackup 2.4.7.
  • with the --encrypt-threads option you can specify the number of threads for parallel data encryption. The default value is 1. This option has been implemented in Percona XtraBackup 2.4.7.
  • the --encrypt-key option is used to specify the encryption key that will be used. It can't be used with the --encrypt-key-file option because they are mutually exclusive πŸ™…β€β™€οΈ. This option has been implemented in Percona XtraBackup 2.4.7.
  • the --encrypt-key-file option is used to specify the file that contains the encryption key. It can't be used with the --encrypt-key option because they are mutually exclusive πŸ™…β€β™€οΈ. This option has been implemented in Percona XtraBackup 2.4.7.

The utility also tries to minimize its impact on the OS page cache by using the appropriate posix_fadvise() calls when available. Considerate king behavior, honestly πŸ’…

When compression is enabled with xtrabackup, all data is being compressed β€” including the transaction log file and meta data files β€” using the specified compression algorithm. The only currently supported algorithm is quicklz. That's it, that's the list, no cap.

The resulting files have the qpress archive format, i.e., every *.qp file produced by xtrabackup is essentially a one-file qpress archive and can be extracted and uncompressed by the qpress file archiver πŸŽ€. This means that there is no need to decompress the entire backup to restore a single table like you'd have to with tar.gz. Obsessed with the efficiency, fr fr.

To decompress individual files, run xbstream with the --decompress option. You may control the number of threads used for decompressing by passing the --decompress-threads option 🧡✨

Also, files can be decompressed using the qpress tool that can be downloaded from here. Qpress supports multi-threaded decompression. Slay.


πŸ‘‘ AUTHOR πŸ‘‘

Percona LLC and/or its affiliates


2009-2022, Percona LLC and/or its affiliates


okay that's the whole page, you read it, you understood it, you're basically a streaming format expert now 🌈

And that's a wrap on xbstream bestie!! 🫢 This was pulled from manual version 8.0, dated Jul 06, 2026 β€” mwah, go stream something πŸ’–πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from