Skip to content

Manage backups created by gpbackup on Greenplum clusters.

License

Notifications You must be signed in to change notification settings

woblerr/gpbackman

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