|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
实验环境:
Oracle 817 (32BIT)
AIX 5100-03
初始状态:
0 export Oracle_SID=ora
1 增加表空间TEST,对应数据文件为/Oracle/oradata/test.dbf,大小为1M字节:
SQL>create tablespace test datafile '/Oracle/oradata/test.dbf' size 1m;
2 在TEST表空间上建test表:
SQL>create table test(
name char(10),
age number
)
tablespace test;
3 插入记录:
SQL>insert into test values ('zhangsan',20);
SQL>insert into test values ('lisi',30);
SQL>commit
NON-ARCHIVED LOG方式:
一 全备份及恢复(no catalog)
备份:
1 SQL>shutdown immediate
2 SQL>startup mount
3 $rman target / nocatalog
4 RMAN>run {
allocate channel t1 type disk;
backup
format "/Oracle/fullbackup_%d_%t"
(database);
release channel t1;
}
5 SQL>alter database backup controlfile to '/Oracle/ctlfile.copy' reuse;
6 SQL>alter database open;
7 SQL>insert into test values ('abc',22);
SQL>commit
SQL>select * from test;
可看到现在有三条记录.
故障模拟:
$rm /Oracle/oradata/*(所有文件丢失)
SQL>shutdown abort
恢复:
0 除非硬件完全损坏,一定要把当前状态OS级备份.保证恢复不成功时可恢复原状态.
1 $cp /Oracle/ctlfile.copy /Oracle/oradata/control01.ctl
$cp /Oracle/ctlfile.copy /Oracle/oradata/control02.ctl
$cp /Oracle/ctlfile.copy /Oracle/oradata/control03.ctl
2 SQL>startup mount
3 RMAN>run {
allocate channel t1 type disk;
restore database;
#注:现在是一致性恢复,并且没有ARCHIVED LOG可以使用,故不必使用RECOVER DATABASE,使用反而会出错
release channel t1;
}
4 SQL>alter database open resetlogs;
5 SQL>select * from test;
可看到现在只有两条记录.
特殊情况(几乎不存在):
当数据库的当前CONTROL FILE完好,且自上次备份以来所有修改都在当前REDO LOG FILE中(尚未循环使用),此时可恢复至故障点.
故障模拟:
1 全备,过程同上;
2 插入一条记录,同上
3 保留当前CONTROL FILE和当前REDO LOG FILE,只删除*.dbf;
恢复:
0 除非硬件完全损坏,一定要把当前状态OS级备份.保证恢复不成功时可恢复原状态.
1 SQL>startup mount
2 RMAN>run {
allocate channel t1 type disk;
restore datafile '/Oracle/oradata/system01.dbf','/Oracle/oradata/tools01.dbf',
'/Oracle/oradata/rbs01.dbf', '/Oracle/oradata/indx01.dbf',
'/Oracle/oradata/temp01.dbf','/Oracle/oradata/users01.dbf',
'/Oracle/oradata/test.dbf';
#也可为restore tablespace 'SYSTEM','TOOLS','RBS','INDX','TEMP','USERS','TEST';
#一块恢复比单独恢复快许多.
recover database;
release channel t1;
}
3 SQL>alter database open;
4 SQL>select * from test;
可看到三条记录. |
|