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

发布时间:2020-02-28 17:03:07 作者:NOGYMS
来源:网络 阅读:557
[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


推荐阅读:
  1. Oracle 之数据库备份与恢复
  2. postgresql使用pg_rman备份恢复

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

postgresql pg_rman gr

上一篇:Linux进入单用户模式加密

下一篇:服务器安装windows2016选择磁盘时报错不能将系统安装

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》