pgmoneta
pgmoneta
is a backup / restore solution for PostgreSQL.
pgmoneta
is named after the Roman Goddess of Memory.
Features
- Full backup
- Restore
- Compression (gzip, zstd, lz4)
- Symlink support
- Prometheus support
- Remote management
- Transport Layer Security (TLS) v1.2+ support
- Daemon mode
- User vault
See Getting Started on how to get started with pgmoneta
.
See Configuration on how to configure pgmoneta
.
Overview
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
- The PostgreSQL command line tools
See Architecture for the architecture of pgmoneta
.
Tested platforms
Compiling the source
pgmoneta
requires
dnf install git gcc cmake make libev libev-devel openssl openssl-devel systemd systemd-devel zlib zlib-devel libzstd libzstd-devel lz4 lz4-devel python3-docutils
Alternative clang 8+ can be used.
Release build
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
Note, that pgmoneta
requires PostgreSQL 10 or later to run as the command line tools
are required. These can be installed from the PostgreSQL YUM repository, or from the
official distribution repository, if supported, like
dnf install -y postgresql
See RPM for how to build a RPM of pgmoneta
.
Debug build
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
.
Contributing
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.