【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.conf archive_mode = on archive_command = 'cp %p /home/postgres/archive/%f' wal_level = archive [postgres@wallet01 ~]$ pg_ctl restart waiting for server to shut down....... done server stopped server 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 init INFO: 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=full INFO: copying database files INFO: copying archived WAL files INFO: backup complete INFO: Please execute 'pg_rman validate' to verify the files are correctly copied. [postgres@wallet01 ~]$ pg_rman validate INFO: validate: "2019-04-12 16:02:15" backup and archive log files by CRC INFO: 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=incremental INFO: copying database files INFO: copying archived WAL files INFO: backup complete INFO: Please execute 'pg_rman validate' to verify the files are correctly copied. [postgres@wallet01 ~]$ pg_rman validate INFO: validate: "2019-04-12 16:15:12" backup and archive log files by CRC INFO: 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 OK 2019-04-12 16:02:15 2019-04-12 16:03:21 FULL 1572MB 1 OK [postgres@wallet01 ~]$ pg_rman backup --backup-mode=archive INFO: copying archived WAL files INFO: backup complete INFO: Please execute 'pg_rman validate' to verify the files are correctly copied. [postgres@wallet01 ~]$ pg_rman validate INFO: validate: "2019-04-12 16:30:04" archive log files by CRC INFO: 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 OK 2019-04-12 16:15:12 2019-04-12 16:15:17 INCR 248MB 1 OK 2019-04-12 16:02:15 2019-04-12 16:03:21 FULL 1572MB 1 OK [postgres@wallet01 ~]$ pg_ctl stop -m fast waiting for server to shut down...... done server 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-copy WARNING: pg_controldata file "/var/lib/pgsql/9.6/data/global/pg_control" does not exist INFO: the recovery target timeline ID is not given INFO: use timeline ID of latest full backup as recovery target: 1 INFO: calculating timeline branches to be used to recovery target point INFO: searching latest full backup which can be used as restore start point INFO: 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 files INFO: clearing restore destination INFO: validate: "2019-04-12 16:02:59" backup and archive log files by SIZE INFO: backup "2019-04-12 16:02:59" is valid INFO: restoring database files from the full mode backup "2019-04-12 16:02:59" INFO: searching incremental backup to be restored INFO: validate: "2019-04-12 16:15:12" backup and archive log files by SIZE INFO: backup "2019-04-12 16:15:12" is valid INFO: restoring database files from the incremental mode backup "2019-04-12 16:15:12" INFO: searching backup which contained archived WAL files to be restored INFO: backup "2019-04-12 16:15:12" is valid INFO: restoring WAL files from backup "2019-04-12 16:15:12" INFO: validate: "2019-04-12 16:30:04" archive log files by SIZE INFO: backup "2019-04-12 16:30:04" is valid INFO: restoring WAL files from backup "2019-04-12 16:30:04" INFO: restoring online WAL files and server log files INFO: generating recovery.conf INFO: restore complete HINT: Recovery will start automatically when the PostgreSQL server is started. [postgres@wallet01 ~]$ pg_ctl start server starting [postgres@wallet01 ~]$ pg_ctl status pg_ctl: server is running (PID: 29889) /usr/pgsql-9.6/bin/postgres
分享名称:【PostgreSQL】数据库备份与恢复(pg_rman)
URL链接:http://scyanting.com/article/goghes.html