一,环境准备
全备脚本:

1 export TMP=/tmp 2 export TMPDIR=$TMP 3 export ORACLE_BASE=/u01 4 export ORACLE_SID=prod 5 export ORACLE_HOME=/u01/oracle/db_1 6 export ORACLE_TERM=xterm 7 export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin 8 export LANG=en_US 9 rman target / log /u01/backup/rman_full.log append<<EOF 10 run 11 {allocate channel c1 type disk; 12 allocate channel c2 type disk; 13 backup database filesperset 4 format '/u01/backup/full_%d_%T_%s_%p'; 14 sql 'alter system archive log current'; 15 sql 'alter system archive log current'; 16 sql 'alter system archive log current'; 17 backup archivelog all format '/u01/backup/arch_%d_%T_%s_%p' delete input; 18 backup current controlfile format '/u01/backup/ctl_%d_%T_%s_%p'; 19 crosscheck backup; 20 crosscheck archivelog all; 21 delete noprompt obsolete; 22 delete noprompt expired backup; 23 delete noprompt expired archivelog all; 24 } 25 EOF
增备脚本:

1 export TMP=/tmp 2 export TMPDIR=$TMP 3 export ORACLE_BASE=/u01 4 export ORACLE_SID=prod 5 export ORACLE_HOME=/u01/oracle/db_1 6 export ORACLE_TERM=xterm 7 export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin 8 export LANG=en_US 9 rman target / log /u01/backup/rman_full.log append<<EOF 10 run 11 {allocate channel c1 type disk; 12 allocate channel c2 type disk; 13 sql 'alter system archive log current'; 14 sql 'alter system archive log current'; 15 sql 'alter system archive log current'; 16 backup archivelog all format '/u01/backup/arch_%d_%T_%s_%p' delete input; 17 backup current controlfile format '/u01/backup/ctl_%d_%T_%s_%p'; 18 crosscheck backup; 19 crosscheck archivelog all; 20 delete noprompt expired backup; 21 delete noprompt expired archivelog all; 22 } 23 EOF
实际环境..周日全备,其他增备
周日全备数据:
运行全备脚本.........
周一增备:
这天的数据写入特别多........
create table test as select * from tab; create table a as select * from dba_users; create table scott.emp1 as select * from scott.emp where rownum < 3; select * from scott.emp1;
.....未完待续 不停的写.....写......写..... 晚上增备了
sh 增备脚本.sh
数据故障模拟:
又一次删除:
二,故障发现于处理
第一步: 首先准备
进入数据库....
关闭数据库:>>>> shutdown abort
启动到nomount状态
进入备份目录查看最新的备份
进入rman >>> rman target /
第二步: 恢复控制文件,启动到数据库mount状态
restore controlfile from '/u01/backup/ctl_PROD_20190301_724_1';
第三步:
找到最新的归档集并注册
RMAN> list backup; ...... RMAN> catalog backuppiece '/u01/backup/arch_PROD_20190301_719_1'; RMAN> catalog backuppiece '/u01/backup/arch_PROD_20190301_721_1'; RMAN> catalog backuppiece '/u01/backup/arch_PROD_20190301_722_1'; RMAN> catalog backuppiece '/u01/backup/arch_PROD_20190301_723_1';
第四步:
恢复数据
第五步:
恢复归档数据
RMAN> recover database;
第六步:
打开数据库到resetlogs模式(重置redo)
RMAN> alter database open resetlogs;
第七步:
重新备份数据