Skip to content

pgmoneta/pgmoneta

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, 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

Documentation

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

See Architecture for the architecture of pgmoneta.

Tested platforms

Compiling the source

pgmoneta requires

dnf install git gcc clang clang-analyzer 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 gcc 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

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 cmake -DCMAKE_C_COMPILER=clang -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.

License

BSD-3-Clause