Oracle databas RMAN 备份脚本

RMAN

删除归档日志

进入rman管理操作

rman target/

查看所有的归档日志文件

crosscheck archivelog all;
DELETE ARCHIVELOG ALL COMPLETED BEFORE ‘SYSDATE-30’;


备份操作

登录
rman target sys/sys
查看所有配置参数
show all;
恢复窗口配置为7天
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
控制文件自动备份
configure controlfile autobackup on;
控制文件备份到/bak/con/
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘/bak/con/%F’;

备份闪回
backup recovry area;
备份备份集
backup backupset 18;
检查归档文件
crosscheck archivelog all;
同步数据文件与归档文件
delete expired archivelog all ;
查看失效备份
crosscheck backup;
删除备份集
delete backupset <备份集号> ;


image copy

禁用
alter database datafile 6 offline;
复制
RMAN>copy datafile 6 to ‘+DATAVG/orcl/datafile/zz.dbf’;
更改数据文件的位置
alter database rename file ‘/data01/zz.dbf’ to ‘+DATAVG/orcl/datafile/zz.dbf’;
恢复
recover datafile 6;
启用
alter database datafile 6 online;


增量备份
run {
recover copy of database with tag ‘incr_update’;
backup incremental level 1 for recover of copy with tag ‘incr_up’ database format ‘/bak/db_%s.bak’;
recover copy of database with tag ‘incr_con’;
backup incremental level 1 for recover of copy with tag ‘incr_con’ current controlfile format =‘/bak/c_%s.bak’;
recover copy of database with tag ‘incr_sp’;
backup incremental level 1 for recover of copy with tag ‘incr_sp’ spfile format =‘/bak/sp_%s.bak’;
}


DRA

list failure;
advise failure;
repair failure;


编目RMAN元数据
CATALOG DATAFILECOPY ‘/disk1/old_datafiles/01_01_2003/users01.dbf’;
CATALOG ARCHIVELOG ‘/disk1/arch_logs/archive1_731.dbf’, ‘/disk1/arch_logs/archive1_732.dbf’;
CATALOG BACKUPPIECE ‘/disk1/backups/backup_820.bkp’;
CATALOG START WITH ‘/disk1/backups/’;
备份脚本:

#zyz
source ~/.bash_profile

export BACK_DATE=`date +%Y%m%d`

export BACKUP_PATH=/data/spi_bak/script/rman

echo `mkdir -p ${BACKUP_PATH}/${BACK_DATE}`

rman target /  msglog=${BACKUP_PATH}/${BACK_DATE}/bak_0_$BACK_DATE.log << EOF

run  
{  
allocate channel ch1 device type disk;  #分配通道  
allocate channel ch2 device type disk;  
sql 'alter system archive log current'; #归档当前日志  
backup database format '${BACKUP_PATH}/${BACK_DATE}/data_%s.bak';  
backup format '${BACKUP_PATH}/${BACK_DATE}/conbak_%s.bak' current controlfile;  
backup spfile format ='${BACKUP_PATH}/${BACK_DATE}/spfile_%s.bak';
crosscheck backup;  
crosscheck archivelog all; 
sql 'alter system archive log current';  
backup archivelog all format '${BACKUP_PATH}/${BACK_DATE}/arch_%s.bak' delete all input;  
crosscheck backup;  
crosscheck archivelog all;  
delete noprompt expired backup;  
delete noprompt obsolete;  
delete noprompt backup of database completed before 'sysdate -1';  
delete noprompt archivelog all;  
delete noprompt backup of archivelog all completed before 'sysdate -1';  
release channel ch1;  
release channel ch2;  
} 


exit;

EOF

backup archivelog all delete input format ='/home/u01/app/orabak/arch_%s.bak'  ;  
backup database format='/home/bak/data_%s.bak';
backup current controlfile format ='/home/bak/conbak_%s.bak';

数据文件损坏:

1、offline数据文件
SQL>alter database datafile ‘/u01/data/orcl/block_ts01.dbf’ offline;

2、copy数据文件到响应的位置(RMAN)
rman>run {
recover copy of database with tag ‘incr_datafile8’;
backup incremental level 1 for recover of copy with tag ‘incr_datafile8’ datafile 8 format=‘/backup/datacopy/level1_%d_%T_%s.dbf’;
}

3、对数据文件rename
SQL>alter database rename file ‘/u01/data/orcl/tbs10.dbf’
to ‘/flashback/ORCL/datafile/o1_mf_tbs10_dn9plmd8_.dbf’;

4、recover数据文件
SQL>recover datafile ‘+DATADG/ywkdb/datafile/TS_XG_D.dbf’;

5、对数据文件online
SQL>alter database datafile ‘+DATADG/ywkdb/datafile/TS_XG_D.dbf’ online;

你可能感兴趣的:(Oracle,database,oracle,数据库)