[PostgreSQL] Database backup and recovery (pg_rman)
[root@wallet01] # rpm-ivh pg_rman-1.3.8-1.pg96.rhel6.x8664.rpm [root @ wallet01 ~] # su-postgres [postgres@wallet01 ~] $mkdir archive [postgres@wallet01 ~] $mkdir backup [postgres@wallet01 ~] $vi / var/lib/pgsql/9.6/data/postgresql.confarchive_mode = onarchive_command ='cp% p / home/postgres/archive/%f' wal_level = archive [postgres@wallet01 ~] $pg_ctl restartwaiting for server to shut down. Doneserver stoppedserver starting [postgres@wallet01 ~] $export PGDATA=/var/lib/pgsql/9.6/data [postgres@wallet01 ~] $export ARCLOG_PATH=/home/postgres/ Archive [Postgres @ wallet01 ~] $export BACKUP_PATH=/home/postgres/backup [postgres@wallet01 ~] $pg_rman initINFO: ARCLOG_PATH is set to'/ home/postgres/archive'INFO: SRVLOG_PATH is set to'/ var/lib/pgsql/9.6/data/pg_log' [postgres@wallet01 ~] $pg_rman Backup--backup-mode=fullINFO: copying database filesINFO: copying archived WAL filesINFO: backup completeINFO: Please execute 'pg_rman validate' to verify the files are correctly copied. [postgres@wallet01 ~] $pg_rman validateINFO: validate: "2019-04-12 16:02:15" backup and archive log files by CRCINFO: backup "2019-04-12 16:02:15" is valid [postgres@wallet01 ~] $pg_rman show==== StartTime EndTime Mode Size TLI Status = 2019-04-12 16:02:15 2019-04-12 16:03:21 FULL 1572MB 1 OK [postgres@wallet01 ~] $pg_rman backup--backup-mode=incrementalINFO: copying database filesINFO: copying archived WAL filesINFO: backup completeINFO: Please execute 'pg_rman validate' to verify the files are correctly copied. [postgres@wallet01 ~] $pg_rman validateINFO: validate: "2019-04-12 16:15:12" backup and archive log files by CRCINFO: backup "2019-04-12 16:15:12" is valid [postgres@wallet01 ~] $pg_rman show==== StartTime EndTime Mode Size TLI Status = 2019-04-12 16:15:12 2019-04-12 16:15:17 INCR 248MB 1 OK2019-04-12 16:02:15 2019-04-12 16:03:21 FULL 1572MB 1 OK [postgres@wallet01 ~] $pg_rman backup--backup-mode=archiveINFO: copying archived WAL filesINFO: backup completeINFO: Please execute 'pg_rman validate' to verify the files are correctly copied. [ Postgres@wallet01 ~] $pg_rman validateINFO: validate: "2019-04-12 16:30:04" archive log files by CRCINFO: backup "2019-04-12 16:30:04" is valid [postgres@wallet01 ~] $pg_rman show==== StartTime EndTime Mode Size TLI Status = 2019-04-12 16:30:04 2019-04-12 16:30:06 ARCH 33MB 1 OK2019-04-12 16:15:12 2019-04-12 16: 15:17 INCR 248MB 1 OK2019-04-12 16:02:15 2019-04-12 16:03:21 FULL 1572MB 1 OK [postgres@wallet01] $pg_ctl stop-m fastwaiting for server to shut down. Doneserver stopped [postgres@wallet01] $mv archive archive_ backup [Postgres @ wallet01 ~] $mkdir archive [postgres@wallet01 ~] $cd / var/lib/pgsql/9.6 [postgres@wallet01 9.6] $mv data data_ backup [Postgres @ wallet01 9.6] $mkdir data [postgres@wallet01 9.6] $chmod-R 0700 data [postgres@wallet01 ~] $pg_rman restore-hard-copyWARNING: pg_controldata file "/ var/lib/pgsql/9.6/data/global/pg_control "does not existINFO: the recovery target timeline ID is not givenINFO: use timeline ID of latest full backup as recovery target: 1INFO: calculating timeline branches to be used to recovery target pointINFO: searching latest full backup which can be used as restore start pointINFO: found the full backup can be used as base in recovery:" 2019-04-12 16:02:59 "INFO: copying online WAL files and server log filesINFO: clearing restore destinationINFO: validate:" 2019-04-12 16:02:59 "backup and archive log files by SIZEINFO: backup" 2019-04- 12 16:02:59 "is validINFO: restoring database files from the full mode backup" 2019-04-12 16:02:59 "INFO: searching incremental backup to be restoredINFO: validate:" 2019-04-12 16:15:12 "backup and archive log files by SIZEINFO: backup" 2019-04-12 16:15:12 "is validINFO: restoring database files from the incremental mode backup" 2019-04-12 16:15:12 "INFO: searching backup which contained archived WAL files to be restoredINFO: backup" 2019-04-12 16: 15:12 "is validINFO: restoring WAL files from backup" 2019-04-12 16:15:12 "INFO: validate:" 2019-04-12 16:30:04 "archive log files by SIZEINFO: backup" 2019-04-12 16:30:04 "is validINFO: restoring WAL files from backup" 2019-04-12 16:30:04 "INFO: restoring online WAL files and server log filesINFO: generating recovery.confINFO: restore completeHINT: Recovery will start automatically when the PostgreSQL server is started. [postgres@wallet01 ~] $pg_ctl Startserver starting [postgres@wallet01 ~] $pg_ctl statuspg_ctl: server is running (PID: 29889) / usr/pgsql-9.6/bin/postgres