案例3:(recover tablespace ,database open状态)
——database在open 状态下恢复数据文件(除了system tablespace)
(1) 模拟环境:
06:10:52 SQL> insert into scott.t01 values (4);
1 row created.
06:13:12 SQL> insert into scott.t01 values (5);
1 row created.
06:13:13 SQL> insert into scott.t01 values (6);
1 row created.
06:13:15 SQL> commit;
Commit complete.
06:13:17 SQL> select * from scott.t01;
ID
----------
1
2
3
4
5
6
6 rows selected.
——在open 状态下删除datafile
[oracle@work ~]$ rm /u01/app/oracle/oradata/prod/test*.dbf
[oracle@work ~]$
SQL> select * from scott.tb01;
ID
----------
1
2
3
4
5
6
7
8
8 rows selected.
SQL> alter system flush buffer_cache; //清除data buffer
System altered.
SQL> select * from scott.db01;
select * from scott.db01
*
ERROR at line 1:
ORA-00942: table or view does not exist
06:15:09 SQL> select * from scott.t01;
select * from scott.t01
*
ERROR at line 1:
ORA-01116: error in opening database file 8
ORA-01110: data file 8: '/u01/app/oracle/oradata/prod/test02.dbf'
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
(2)查看datafile信息
SQL> select a.name,b.file#,b.name from V$tablespace a,v$datafile b where a.ts#=b.ts#;
NAME FILE# NAME
-------------------------------------------------- ---------- --------------------------------------------------
SYSTEM 1 /u01/app/oracle/oradata/anny/system01.dbf
SYSAUX 3 /u01/app/oracle/oradata/anny/sysaux01.dbf
USERS 4 /u01/app/oracle/oradata/anny/user01.dbf
TEST 11 /u01/app/oracle/oradata/anny/test02.dbf
TEST 5 /u01/app/oracle/oradata/anny/test01.dbf
LX01 6 /u01/app/oracle/oradata/anny/lx01.dbf
UNDOTBS 7 /u01/app/oracle/oradata/anny/undotbs01.dbf
LX02 2 /u01/app/oracle/oradata/anny/lx02.dbf
LX03 8 /u01/app/oracle/oradata/anny/lx03.dbf
LX04 9 /u01/app/oracle/oradata/anny/lx04.dbf
INDEXES 10 /u01/app/oracle/oradata/anny/index01.dbf
11 rows selected.
——对数据文件脱机
06:17:39 SQL> alter database datafile 6,8 offline;
Database altered.
(3)转储datafile
[oracle@work ~]$ cp /disk1/backup/prod/close_bak/test*.dbf /u01/app/oracle/oradata/prod/
(4)recover datafile 或 recover tablespace
SQL> recover datafile 5,11;
Media recovery complete.
告警日志信息:
ALTER DATABASE RECOVER datafile 5,11
Wed Mar 21 16:02:50 2012
Media Recovery Start
Wed Mar 21 16:02:50 2012
Recovery of Online Redo Log: Thread 1 Group 2 Seq 3 Reading mem 0
Mem# 0 errs 0: /disk3/oradata/anny/redo02a.log
Mem# 1 errs 0: /disk1/oradata/anny/redo02b.log
Mem# 2 errs 0: /disk2/oradata/anny/redo02c.log
Wed Mar 21 16:02:50 2012
Recovery of Online Redo Log: Thread 1 Group 4 Seq 4 Reading mem 0
Mem# 0 errs 0: /disk3/oradata/anny/redo04a.log
Mem# 1 errs 0: /disk1/oradata/anny/redo04b.log
Mem# 2 errs 0: /disk2/oradata/anny/redo04c.log
Wed Mar 21 16:02:50 2012
Media Recovery Complete (anny)
Completed: ALTER DATABASE RECOVER datafile 5,11
(5)验证
SQL> alter database datafile 5,11 online;
Database altered.
SQL> select * from scott.tb01;
ID
----------
1
2
3
4
5
6
7
8
8 rows selected.
oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html