重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

【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)
文章地址:http://cqcxhl.com/article/goghes.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP