Giter Club home page Giter Club logo

pg_rman's Introduction

pg_rman

pg_rman is an online backup and restore tool for PostgreSQL.

The goal of the pg_rman project is to provide a method for online backup and PITR that is as easy as pg_dump. Also, it maintains a backup catalog per database cluster. Users can maintain old backups including archive logs with one command.

Branches

There are several branches within pg_rman repository in order to work with different PostgreSQL server versions without introducing server version check code blocks. Please choose a branch to match the PostgreSQL version you will be building pg_rman against.

  • master : branch for PostgreSQL 15beta Test
  • REL_14_STABLE : branch for PostgreSQL 14 Test
  • REL_13_STABLE : branch for PostgreSQL 13 Test
  • REL_12_STABLE : branch for PostgreSQL 12 Test
  • REL_11_STABLE : branch for PostgreSQL 11 Test
  • REL_10_STABLE : branch for PostgreSQL 10 Test

How to use

To take an online backup, use the backup command:

$ pg_rman backup --backup-mode=full --with-serverlog
INFO: copying database files
INFO: copying archived WAL files
INFO: copying server log files
INFO: backup complete
INFO: Please execute 'pg_rman validate' to verify the files are correctly copied.

To list all the backups taken so far, use the show command:

$ pg_rman show
 =====================================================================
 StartTime            EndTime              Mode    Size   TLI  Status
 =====================================================================
 2015-03-27 14:59:47  2015-03-27 14:59:49  FULL  3404kB     3  OK
 2015-03-27 14:59:19  2015-03-27 14:59:20  ARCH    26kB     3  OK
 2015-03-27 14:59:00  2015-03-27 14:59:01  ARCH    26kB     3  OK
 2015-03-27 14:58:46  2015-03-27 14:58:48  FULL  3516kB     3  OK
 2015-03-27 11:43:31  2015-03-27 11:43:32  INCR    54kB     1  OK
 2015-03-27 11:43:19  2015-03-27 11:43:20  INCR    69kB     1  OK
 2015-03-27 11:43:04  2015-03-27 11:43:05  INCR   151kB     1  OK
 2015-03-27 11:42:56  2015-03-27 11:42:56  INCR    96kB     1  OK
 2015-03-27 11:34:55  2015-03-27 11:34:58  FULL  5312kB     1  OK

To restore from a backup, use the restore command. Up to PostgreSQL11, note that pg_rman itself generates the recovery.conf file required to perform PostgreSQL PITR.

$ pg_ctl stop -m immediate
$ pg_rman restore
$ cat $PGDATA/recovery.conf
# recovery.conf generated by pg_rman 1.3.12
restore_command = 'cp /home/postgres/arclog/%f %p'
recovery_target_timeline = '1'
$ pg_ctl start

After to PostgreSQL12, note that pg_rman itself added PostgreSQL PITR related options to postgresql.conf file and generates the recovery.signal file in sub directory of PGBASE

To see more options to use with each command, run pg_rman --help.

Also, see the documentation for detailed usage:

http://ossc-db.github.io/pg_rman/index.html

How to build and install from source code

Go to the top directory of pg_rman source tree and run the following commands:

 $ make
 # make install

The following packages need to be installed as a prerequisite.

  • zlib-devel

How to run regression tests

Start PostgreSQL server and run the below command.

 $ make installcheck

pg_rman's People

Contributors

amitlan avatar bwtakacy avatar mikecaat avatar mooninsung avatar oknj avatar atorik avatar xctools avatar huangfumingyue avatar vinpokale avatar ooyamams avatar michaelpq avatar lincuiping avatar zwyan0 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.