libmdbx/src/man1/mdbx_copy.1

68 lines
1.8 KiB
Groff
Raw Normal View History

.\" Copyright 2015-2021 Leonid Yuriev <leo@yuriev.ru>.
.\" Copyright 2012-2015 Howard Chu, Symas Corp. All Rights Reserved.
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
2015-01-07 16:49:50 +03:00
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
mdbx: release v0.9.3 Acknowledgements: ----------------- - [Mahlon E. Smith](http://www.martini.nu/) for [FreeBSD port of libmdbx](https://svnweb.freebsd.org/ports/head/databases/mdbx/). - [장세연](http://www.castis.com) for bug fixing and PR. - [Clément Renault](https://github.com/Kerollmops/heed) for [Heed](https://github.com/Kerollmops/heed) fully typed Rust wrapper. - [Alex Sharov](https://github.com/AskAlexSharov) for bug reporting. - [Noel Kuntze](https://github.com/Thermi) for bug reporting. Removed options and features: ----------------------------- - Drop `MDBX_HUGE_TRANSACTIONS` build-option (now no longer required). New features: ------------- - Package for FreeBSD is available now by Mahlon E. Smith. - New API functions to get/set various options (https://github.com/erthink/libmdbx/issues/128): - the maximum number of named databases for the environment; - the maximum number of threads/reader slots; - threshold (since the last unsteady commit) to force flush the data buffers to disk; - relative period (since the last unsteady commit) to force flush the data buffers to disk; - limit to grow a list of reclaimed/recycled page's numbers for finding a sequence of contiguous pages for large data items; - limit to grow a cache of dirty pages for reuse in the current transaction; - limit of a pre-allocated memory items for dirty pages; - limit of dirty pages for a write transaction; - initial allocation size for dirty pages list of a write transaction; - maximal part of the dirty pages may be spilled when necessary; - minimal part of the dirty pages should be spilled when necessary; - how much of the parent transaction dirty pages will be spilled while start each child transaction; - Unlimited/Dynamic size of retired and dirty page lists (https://github.com/erthink/libmdbx/issues/123). - Added `-p` option (purge subDB before loading) to `mdbx_load` tool. - Reworked spilling of large transaction and committing of nested transactions: - page spilling code reworked to avoid the flaws and bugs inherited from LMDB; - limit for number of dirty pages now is controllable at runtime; - a spilled pages, including overflow/large pages, now can be reused and refunded/compactified in nested transactions; - more effective refunding/compactification especially for the loosed page cache. - Added `MDBX_ENABLE_REFUND` and `MDBX_PNL_ASCENDING` internal/advanced build options. - Added `mdbx_default_pagesize()` function. - Better support architectures with a weak/relaxed memory consistency model (ARM, AARCH64, PPC, MIPS, RISC-V, etc) by means [C11 atomics](https://en.cppreference.com/w/c/atomic). - Speed up page number lists and dirty page lists (https://github.com/erthink/libmdbx/issues/132). - Added `LIBMDBX_NO_EXPORTS_LEGACY_API` build option. Fixes: ------ - Fixed missing cleanup (null assigned) in the C++ commit/abort (https://github.com/erthink/libmdbx/pull/143). - Fixed `mdbx_realloc()` for case of nullptr and `MDBX_AVOID_CRT=ON` for Windows. - Fixed the possibility to use invalid and renewed (closed & re-opened, dropped & re-created) DBI-handles (https://github.com/erthink/libmdbx/issues/146). - Fixed 4-byte aligned access to 64-bit integers, including access to the `bootid` meta-page's field (https://github.com/erthink/libmdbx/issues/153). - Fixed minor/potential memory leak during page flushing and unspilling. - Fixed handling states of cursors's and subDBs's for nested transactions. - Fixed page leak in extra rare case the list of retired pages changed during update GC on transaction commit. - Fixed assertions to avoid false-positive UB detection by CLANG/LLVM (https://github.com/erthink/libmdbx/issues/153). - Fixed `MDBX_TXN_FULL` and regressive `MDBX_KEYEXIST` during large transaction commit with `MDBX_LIFORECLAIM` (https://github.com/erthink/libmdbx/issues/123). - Fixed auto-recovery (`weak->steady` with the same boot-id) when Database size at last weak checkpoint is large than at last steady checkpoint. - Fixed operation on systems with unusual small/large page size, including PowerPC (https://github.com/erthink/libmdbx/issues/157). TODO: ----- - Engage new terminology (https://github.com/erthink/libmdbx/issues/137). - Resolve few TODOs (https://github.com/erthink/libmdbx/issues/124, https://github.com/erthink/libmdbx/issues/127, https://github.com/erthink/libmdbx/issues/115). - Finalize C++ API. - Packages for [ROSA Linux](https://www.rosalinux.ru/), [ALT Linux](https://www.altlinux.org/), Fedora/RHEL, Debian/Ubuntu. Change-Id: I414b8ef2e4b90e04fb344779c0e3f1b4bd1c06be
2021-02-02 22:18:21 +03:00
.TH MDBX_COPY 1 "2021-02-02" "MDBX 0.9.3"
2015-01-07 16:49:50 +03:00
.SH NAME
2017-05-24 01:42:10 +03:00
mdbx_copy \- MDBX environment copy tool
2015-01-07 16:49:50 +03:00
.SH SYNOPSIS
.B mdbx_copy
2015-01-07 16:49:50 +03:00
[\c
.BR \-V ]
[\c
2019-12-05 01:43:57 +03:00
.BR \-q ]
[\c
2015-01-07 16:49:50 +03:00
.BR \-c ]
[\c
.BR \-n ]
2019-12-05 01:43:57 +03:00
.B src_path
2015-01-07 16:49:50 +03:00
[\c
2019-12-05 01:43:57 +03:00
.BR dest_path ]
2015-01-07 16:49:50 +03:00
.SH DESCRIPTION
The
.B mdbx_copy
2017-05-24 01:42:10 +03:00
utility copies an MDBX environment. The environment can
2015-01-07 16:49:50 +03:00
be copied regardless of whether it is currently in use.
No lockfile is created, since it gets recreated at need.
If
2019-12-05 01:43:57 +03:00
.I dest_path
2015-01-07 16:49:50 +03:00
is specified it must be the path of an empty directory
for storing the backup. Otherwise, the backup will be
written to stdout.
.SH OPTIONS
.TP
.BR \-V
Write the library version number to the standard output, and exit.
.TP
2019-12-05 01:43:57 +03:00
.BR \-q
Be quiet.
.TP
2015-01-07 16:49:50 +03:00
.BR \-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.
2015-01-07 16:49:50 +03:00
.TP
.BR \-n
Open MDBX environment(s) which do not use subdirectories.
This is legacy option. For now MDBX handles this automatically.
2015-01-07 16:49:50 +03:00
.SH 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.
.SH 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.
.SH "SEE ALSO"
.BR mdbx_dump (1),
.BR mdbx_chk (1),
.BR mdbx_stat (1),
.BR mdbx_load (1)
2015-01-07 16:49:50 +03:00
.SH AUTHOR
2019-12-05 01:43:57 +03:00
Howard Chu of Symas Corporation <http://www.symas.com>,
Leonid Yuriev <https://github.com/erthink>