Skip to content

Manage backups created by gpbackup on Greenplum clusters.

License

Notifications You must be signed in to change notification settings

woblerr/gpbackman

Folders and files

NameName
Last commit message
Last commit date

Latest commit

fc96157 · Feb 8, 2025
Feb 8, 2025
Dec 3, 2024
Nov 11, 2023
Feb 6, 2025
Dec 3, 2024
Oct 15, 2024
Feb 5, 2025
Aug 12, 2023
Feb 7, 2025
Feb 6, 2025
Dec 3, 2024
Feb 6, 2025
Feb 6, 2025
Feb 7, 2025
Feb 5, 2025
Oct 19, 2024
Feb 6, 2025
Feb 5, 2025
Aug 12, 2023

Repository files navigation

gpBackMan

Actions Status Coverage Status Go Report Card

gpBackMan is designed to manage backups created by gpbackup on Greenplum clusters.

The utility works with gpbackup_history.db SQLite history database format.

The utility provides functionality for migrating data from the old gpbackup_history.yaml YAML format to the new one. If you are using an old gpbackup version that supports only YAML format, then use gpBackMan <= v0.6.0.

gpBackMan provides the following features:

  • display information about backups;
  • display the backup report for existing backups;
  • delete existing backups from local storage or using storage plugins (for example, S3 Storage Plugin);
  • delete all existing backups from local storage or using storage plugins older than the specified time condition;
  • clean deleted backups from the history database;
  • migrate history database from gpbackup_history.yaml format to gpbackup_history.db SQLite format.

Commands

Introduction

Available commands and global options:

./gpbackman --help
gpBackMan - utility for managing backups created by gpbackup

Usage:
  gpbackman [command]

Available Commands:
  backup-clean    Delete all existing backups older than the specified time condition
  backup-delete   Delete a specific existing backup
  backup-info     Display information about backups
  completion      Generate the autocompletion script for the specified shell
  help            Help about any command
  history-clean   Clean deleted backups from the history database
  history-migrate Migrate history database
  report-info     Display the report for a specific backup

Flags:
  -h, --help                       help for gpbackman
      --history-db string          full path to the gpbackup_history.db file
      --log-file string            full path to log file directory, if not specified, the log file will be created in the $HOME/gpAdminLogs directory
      --log-level-console string   level for console logging (error, info, debug, verbose) (default "info")
      --log-level-file string      level for file logging (error, info, debug, verbose) (default "info")
  -v, --version                    version for gpbackman

Use "gpbackman [command] --help" for more information about a command.

Detail info about commands

Description of each command:

Getting Started

Building and running

git clone https://github.com/woblerr/gpbackman.git
cd gpbackman
make build
./gpbackman <flags>

Running as docker container

Environment variables supported by this image:

  • TZ - container's time zone, default Etc/UTC;
  • GPBACKMAN_USER - non-root user name for execution of the command, default gpbackman;
  • GPBACKMAN_UID - UID of internal ${GPBACKMAN_USER} user, default 1001;
  • GPBACKMAN_GID - GID of internal ${GPBACKMAN_USER} user, default 1001.

Build container

make docker

or manual:

docker build  -f Dockerfile  -t gpbackman .

Run container

docker run \
  --name gpbackman \
  -v /data/master/gpseg-1/gpbackup_history.db:/data/master/gpseg-1/gpbackup_history.db
  gpbackman \
  gpbackman backup-info \
  --history-db /data/master/gpseg-1/gpbackup_history.db

Running tests

Run the unit tests:

make test

Run the end-to-end tests:

make test-e2e