2012年4月24日火曜日

[PostgreSQL] pg_rman

http://code.google.com/p/pg-rman/
http://se-suganuma.blogspot.jp/2010/12/pgrmanpostgresql.html
http://d.hatena.ne.jp/interdb/20091210/1260410830
http://postgresql.g.hatena.ne.jp/pgsql/20091209
--

$ export BACKUP_PATH=/home/go/data/backup/pg9139


$ pg_rman backup -b full


备份时, 按指定规则删除过期或多余的备份

保留至前1天的最新的1个验证过的备份
$ pg_rman backup -b full --keep-data-generations=1 --keep-data-days=2
Start                   Status
================================
2012-04-25 10:03:08     OK <= 今天, 本次创建的备份
2012-04-24 10:02:28     OK <= 前一天, 保留
2012-04-24 09:00:00     OK <= 前一天, 保留
2012-04-24 07:01:10     OK <= 前一天, 删除

保留今天最新的1个备份, 其余全部删除
$ pg_rman backup -b full --keep-data-generations=1 --keep-data-days=0
Start                   Status
================================
2012-04-25 10:03:08     OK <= 今天, 本次创建的备份
2012-04-25 10:02:28     OK <= 今天, 保留
2012-04-24 09:00:00     OK <= 前一天, 删除


保留前1天最新的0个备份, 其余全部删除
1. 如果存在今天的全备份, 则删除至前一天为止所有备份
2. 如果不存在今天的全备份, 则保留前一天最新的1个备份
$ pg_rman backup -b full --keep-data-generations=0 --keep-data-days=1


其余全部删除并创建新备份
$ pg_rman backup -b full --keep-data-generations=0 --keep-data-days=0


Start                   Status
================================
2012-04-25 10:03:08     OK <= 今天, 本次创建的备份
2012-04-25 10:02:28     OK <= 今天, 保留
2012-04-24 09:00:00     OK <= 前一天, 删除


$ pg_rman show
$ pg_rman show -a
$ pg_rman show "2012"
$ pg_rman show "2012-04"
$ pg_rman show "2012-04-23"
$ pg_rman show "2012-04-23 04"
$ pg_rman show "2012-04-23 04:12"
$ pg_rman show "2012-04-23 04:12:42"
$ pg_rman show timeline

$ pg_rman validate
$ pg_rman validate "2012-04-23 04:12:42"


删除备份
$ pg_rman delete "2012-04-23 04:00:00"

1. 指定时间必须是 full 备份的时间
2. 删除的是指定时间之前的所有备份 (full, incremental, archive)


0 件のコメント:

コメントを投稿