MDBX_COPY(1)

NAME
mdbx_copy - MDBX environment copy tool

SYNOPSIS
mdbx_copy [-V] [-q] [-c] [-d] [-p] [-n] src_path [dest_path]

DESCRIPTION
The mdbx_copy utility copies an MDBX environment. The environment can be copied regardless of whether it is currently in use. No lockfile is created, since it gets recreated at need. If dest_path is specified it must be the path of an empty directory for storing the backup. Otherwise, the backup will be written to stdout.

OPTIONS

-V  Write the library version number to the standard output, and exit.

-q  Be quiet.

-c  Compact while copying. Only current data pages will be copied; freed or unused pages will be omitted from the copy. This option will slow down the backup process as it is more CPU-intensive. Currently it fails if the environment has suffered a page leak.

-d  Alters geometry to enforce the copy to be a dynamic size DB, which could be growth and shrink by reasonable steps on the fly.

-p  Use read transaction parking/ousting during copying MVCC-snapshot. This allows the writing transaction to oust the read transaction used to copy the database if copying takes so long that it will interfere with the recycling old MVCC snapshots and may lead to an overflow of the database. However, if the reading transaction is ousted the copy will be aborted until successful completion. Thus, this option allows copy the database without interfering with write transactions and a threat of database overflow, but at the cost that copying will be aborted to prevent such conditions.

-u  Warms up the DB before copying via notifying OS kernel of subsequent access to the database pages.

-U  Warms up the DB before copying, notifying the OS kernel of subsequent access to the database pages, then forcibly loads ones by sequential access and tries to lock database pages in memory.

-n  Open MDBX environment(s) which do not use subdirectories. This is legacy option. For now MDBX handles this automatically.

DIAGNOSTICS
Exit status is zero if no errors occur. Errors result in a non-zero exit status and a diagnostic message being written to standard error.

CAVEATS
This utility can trigger significant file size growth if run in parallel with write transactions, because pages which they free during copying cannot be reused until the copy is done.

SEE ALSO
mdbx_dump(1), mdbx_chk(1), mdbx_stat(1), mdbx_load(1) mdbx_drop(1)

AUTHOR
Howard Chu of Symas Corporation <http://www.symas.com>, Leonid Yuriev <https://gitflic.ru/user/erthink>