MyDumper's logo MyDumper's logo

Compression and external commands

It is possible to change what mydumper is writing and what myloader is receiving, with --exec-per-thread and --exec-per-thread-extension.

When you use mydumper -c/--compress, mydumper internally set:

--exec-per-thread="/usr/bin/gzip -c"
--exec-per-thread-extension=".gz"

On myloader it will automatically detect the extension and use:

--exec-per-thread="/usr/bin/gzip -c -d"
--exec-per-thread="/usr/bin/zstd -c -d"

to decompress the files by default. However, if you need to change to a different location of the executable, parameters or use a different compression software, you need to set both options:

--exec-per-thread
--exec-per-thread-extension

Example

If you want to compress with bzip2, you need to run on mydumper with this parameters, for example:

mydumper -o data --clear -T sakila.film \
         --exec-per-thread="/usr/bin/bzip2" \
         --exec-per-thread-extension=".bz2"

You will get this backup files:

-rw-r--r-- 1 circleci circleci   520 Jul 16 13:59 metadata
-rw-r----- 1 circleci circleci 11500 Jul 16 13:59 sakila.film.00000.sql.bz2
-rw-r----- 1 circleci circleci 11360 Jul 16 13:59 sakila.film.00001.sql.bz2
-rw-r----- 1 circleci circleci   758 Jul 16 13:59 sakila.film-schema.sql.bz2
-rw-r----- 1 circleci circleci   322 Jul 16 13:59 sakila-schema-create.sql.bz2

On myloader then you can use this options:

myloader -d data -o \
         --exec-per-thread="/usr/bin/bzip2 -d" \
         --exec-per-thread-extension=".bz2"