不可轻言放弃,否则对不起自己!

rman备份与恢复-5

上一篇 / 下一篇  2011-06-07 14:04:27 / 个人分类:数据库

RMAN实战
实战1
要求
1 、每天夜间1点执行;
2 、数据库全备,同时备份控制文件及归档日志文件,备份文件保存至:/opt/oracle/rman目录下,并在完成归档日志文件备份后,自动删除已备份的归档日志;
3 、备份保留7天,过期则自动删除;
4 、保留操作日志备查;

RMAN脚本
oracle@mmsg:~/rman> more back_full.rman
run
{
configure retention policy to recovery window of 7 days;
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to '/opt/oracle/rman/full_bak_%F';
allocate channel c1 device type disk format '/opt/oracle/rman/full_bak_%U';
backup database skip inaccessible filesperset 10 plus archivelog filesperset 20 delete  all input;
release channel c1;
}
allocate channel for maintenance device type disk;
crosscheck backupset;
delete noprompt obsolete;

SKIP 选项 说明
SKIP INACCESSIBLE :表示跳过不可读的文件。我们知道一些offline的数据文件只要存在于磁盘上就仍然可被读取,但是可能有些文件已经被删除或移到它处造成不可读,加上这个参数就会跳过这些文件;
SKIP OFFLINE :跳过offline的数据文件;
SKIP READONLY :跳过那些所在表空间为read-only的数据文件;

命令执行
oracle@mmsg:~/rman> rman target / msglog /opt/oracle/rman/bak.log cmdfile=/opt/oracle/rman/back_full.rman

设置crontab

oracle@mmsc103:~/rmanbak> more backup.pl
#!/usr/bin/perl
###        作用:rman定时任务脚本              ###

#获取系统当前时间
my ($sec,$min,$hour,$day,$month,$year)= localtime(time());
$year+=1900;
$month=sprintf("%02d",$month+1);
$day=sprintf("%02d",$day);
$hour=sprintf("%02d",$hour);
$min=sprintf("%02d",$min);
$sec=sprintf("%02d",$sec);
my $daytime = "$year$month$day$hour$min$sec";

system("/opt/oracle/product/11g/bin/rman   cmdfile = '/opt/oracle/rmanbak/everydaybak.rman' msglog=/opt/oracle/rmanbak/everydaybak_$
daytime.log");


TAG:

 

评分:0

我来说两句

Open Toolbar