备份策略:
每周日进行一次全库备份;
每天每8小时进行一次归档日志备份;rman target /
为了使备份保留更长时间,设置保留15天的备份信息:
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 15 days;
启用控制文件自动备份及备份存放位置配置:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
Rman配置信息如下:
RMAN> show all;
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 15 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/opt/oracle/product/10.2/db_1/dbs/snapcf_orcl.f'; # default
每周日进行一次全库备份;
每天每8小时进行一次归档日志备份;
系统自动清除15天前的备份信息,即保留两周数据备份;
2、创建备份必要目录使用oracle帐号到/opt/rman目录下创建备份脚本及备份文件存放目录
cd /opt/rman
mkdir scritp
cd /opt/rman
mkdir log
cd /opt/rman
mkdir full
mkdir arcback
在/opt/rman/script目录下编辑全库备份脚本backupall.sh,内容如下:
#!/bin/bash
#this is rman auto full backup script
#Copyright by frog
#date 2010-01-11
export ORACLE_SID=orcl
export ORACLE_HOME=/opt/oracle/product/10.2/db_1
export ORACLE_BASE=/opt/oracle
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
backtime=`date +"20%y%m%d%H%M%S" `
/opt/oracle/product/10.2/db_1/bin/rman target / catalog rman/rman log=/opt/rman/log/backupall_$backtime.log <<
run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
allocate channel c4 device type disk;
allocate channel c5 device type disk;
crosscheck backup;
crosscheck archivelog all;
sql 'alter system archive log current';
backup database format '/opt/rman/full/db_%d_%T_%U';
sql 'alter system archive log current';
backup archivelog all format '/opt/rman/arcback/arc_%t_%s' delete all input;
backup current controlfile format '/opt/rman/controlfile/contrl_%s_%p_%s';
crosscheck backup;
crosscheck archivelog all;
delete expired backup;
delete obsolete;
delete backup of database completed before 'sysdate -15';
delete archivelog all;
delete backup of archivelog all completed before 'sysdate -15[s1] ';
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
}
EOF
在/opt/rman/script目录下编辑归档日志备份脚本backuparchive.sh,内容如下:
#!/bin/bash
#this is rman auto backup archivelog script
#Copyright by frog
#date 2010-01-11
export ORACLE_SID=orcl
export ORACLE_HOME=/opt/oracle/product/10.2/db_1
export ORACLE_BASE=/opt/oracle
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
backtime=`date +"20%y%m%d%H%M%S" `
/opt/oracle/product/10.2/db_1/bin/rman target / catalog rman/rman log=/opt/rman/log/arcbackup_$backtime.log <
run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
sql 'alter system archive log current';
backup archivelog all format '/opt/rman/arcback/arc_%t_%s' delete all input;
crosscheck archivelog all;
delete archivelog all;
release channel c1;
release channel c2;
release channel c3;
}
EOF
为了使系统定期执行备份操作,在crontab中添加如下内容:
每周日00:00进行一次全库备份操作;每天八个小时进行一次归档日志备份操作;
0 0 * * 0 sh /opt/rman/script/backupall.sh 2>&1
0 0,8,16 * * * sh /opt/rman/script/backuparchive.sh 2>&1
[s1]注意:
深圳移动用此脚本并没有自动删除2周前的备份数据,察看备份日志,提示:Do you really want to delete the above objects (enter YES or NO)?
Error occurred getting response - assuming NO response
手工走这个脚本可以删除2周前数据
后来添加次参数解决delete noprompt backup of database completed before 'sysdate -15';
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22779291/viewspace-625240/ ,如需转载,请注明出处,否则将追究法律责任。