pgmoneta is a backup / restore solution for PostgreSQL.
pgmoneta is named after the Roman Goddess of Memory.
- Full backup
- Restore
- Compression (gzip, zstd, lz4, bzip2)
- AES encryption support
- Symlink support
- WAL shipping support
- Hot standby
- Prometheus support
- Remote management
- Offline mode
- Transport Layer Security (TLS) v1.2+ support
- Daemon mode
- User vault
pgmoneta makes use of
- Process model
- Shared memory model across processes
- libev for fast network interactions
- Atomic operations are used to keep track of state
See Architecture for the architecture of pgmoneta.
pgmoneta requires
- gcc 8+ (C17)
- cmake
- make
- libev
- OpenSSL
- zlib
- zstd
- lz4
- bzip2
- systemd
- rst2man
- libssh
- libcurl
- libarchive
- pandoc
- texlive
dnf install git gcc cmake make libev libev-devel openssl openssl-devel systemd systemd-devel zlib zlib-devel libzstd libzstd-devel lz4 lz4-devel libssh libssh-devel libcurl libcurl-devel python3-docutils libatomic bzip2 bzip2-devel libarchive libarchive-devel
Alternative clang 8+ can be used.
The following commands will install pgmoneta in the /usr/local
hierarchy.
git clone https://github.com/pgmoneta/pgmoneta.git
cd pgmoneta
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
make
sudo make install
See RPM for how to build a RPM of pgmoneta.
The following commands will create a DEBUG
version of pgmoneta.
git clone https://github.com/pgmoneta/pgmoneta.git
cd pgmoneta
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
Remember to set the log_level
configuration option to debug5
.
Contributions to pgmoneta are managed on GitHub.com
Contributions are most welcome !
Please, consult our Code of Conduct policies for interacting in our community.
Consider giving the project a star on GitHub if you find it useful. And, feel free to follow the project on Twitter as well.