千家信息网

【PostgreSQL】数据库备份与恢复(pg_rman)

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,[root@wallet01 ~]# rpm -ivh pg_rman-1.3.8-1.pg96.rhel6.x86_64.rpm[root@wallet01 ~]# su - postgres[po
千家信息网最后更新 2025年01月19日【PostgreSQL】数据库备份与恢复(pg_rman)
[root@wallet01 ~]# rpm -ivh pg_rman-1.3.8-1.pg96.rhel6.x86_64.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


0