ITPub博客

首页 > 数据库 > Oracle > linux平台oracle rman备份总结

linux平台oracle rman备份总结

原创 Oracle 作者:vfast21 时间:2015-02-15 14:43:31 0 删除 编辑

 rman备份




#创建备份路径路径(根据情况而定)
#################################


mkdir -p /u01/app/oracle/backup/archive_log        ##归档日志路径
mkdir -p /u01/app/oracle/backup/backup_log        ##备份日志路径
mkdir -p /u01/app/oracle/backup/backup_data        ##备份集路径
mkdir -p /u01/app/oracle/backup/backup_ctl        #控制文件备份
mkdir -p /u01/app/oracle/backup/backup_arc        ##归档日志备份路径
mkdir -p /u01/app/oracle/backup/scripts                ##备份脚本路径
chown -R oracle:oinstall /u01/app/oracle/backup
chmod 771 -R /u01/app/oracle/backup/



#设置数据库归档模式
#####################################


查看归档日志是否开启
archive log list;


开启归档
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;



修改归档日志路径
alter system set log_archive_dest_1 = 'location=/u01/app/oracle/backup/archive_log/' scope = spfile;


修改控制文件保存备份信息时间
alter sysem set control_file_record_keep_time=32 scope=spfile;



#备份策略
##################################


每个月做一次0级备份
每天做增量1级备份




#备份脚本
#####################################

vi /u01/app/oracle/backup/scripts/level_0_bak.sh

#!/bin/sh
#==========================================================
#The level of the backup: 0
#create date: 2014/12/15
#discription: backup full database except readonly file.
#  as the basics of level 1.
#  run at every month 01:00.
#==========================================================
CUR_DATE=`date +%Y%m%d`
source /home/oracle/.bash_profile
rman target / nocatalog log=/u01/app/oracle/backup/backup_log/level_0_$CUR_DATE.log << EOF_RMAN
run
{
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/app/oracle/backup/backup_ctl/ctl_%F';
allocate channel ch1 device type disk format '/u01/app/oracle/backup/backup_data/level_0_%U_%T.bak';
allocate channel ch2 device type disk format '/u01/app/oracle/backup/backup_data/level_0_%U_%T.bak';
allocate channel ch3 device type disk format '/u01/app/oracle/backup/backup_data/level_0_%U_%T.bak';
sql 'alter system archive log current';
backup incremental level 0 tag 'level_0' database plus archivelog format '/u01/app/oracle/backup/backup_arc/arc_%U_%T.bak' delete input;
release channel ch1;
release channel ch2;
release channel ch3;
crosscheck backupset;
delete noprompt expired backupset;
delete noprompt obsolete;
}
exit;
EOF_RMAN





vi /u01/app/oracle/backup/scripts/level_1_bak.sh

#!/bin/sh
#==========================================================
#The level of the backup: 1
#create date: 2014/12/15
#discription: backup database exchange
#  run at every day 00:00
#==========================================================
CUR_DATE=`date +%Y%m%d`
source /home/oracle/.bash_profile
rman target / nocatalog log=/u01/app/oracle/backup/backup_log/level_1_$CUR_DATE.log << EOF_RMAN
run
{
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/app/oracle/backup/backup_ctl/ctl_%F';
allocate channel ch1 device type disk format '/u01/app/oracle/backup/backup_data/level_1_%U_%T.bak';
allocate channel ch2 device type disk format '/u01/app/oracle/backup/backup_data/level_1_%U_%T.bak';
allocate channel ch3 device type disk format '/u01/app/oracle/backup/backup_data/level_1_%U_%T.bak';
sql 'alter system archive log current';
backup incremental level 1 tag 'level_1' database plus archivelog format '/u01/app/oracle/backup/backup_arc/arc_%U_%T.bak' delete input;
release channel ch1;
release channel ch2;
release channel ch3;
}
exit;
EOF_RMAN



配置计划任务
#################################################
crontab -e
##分  时  日  月  星期
00 01 01 * * * sh /u01/app/oracle/backup/scripts/level_0_bak.sh #每月01:00执行
00 00 * * * * sh /u01/app/oracle/backup/scripts/level_1_bak.sh #每天00:00执行


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29567918/viewspace-1436670/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: rman使用总结
请登录后发表评论 登录
全部评论

注册时间:2014-03-26

  • 博文量
    7
  • 访问量
    31700