【实验内容】
恢复表空间
这种情况,与 恢复SYSTEM表空间数据文件 类似,像实验32一样就不做具体实验了,直接把主要代码写在下面,
有需要的朋友,可参考。
===========================================================================
SQL> select t2.NAME,t1.TS#,t1.FILE#,t1.NAME from v$datafile t1,v$tablespace t2 where t1.TS#=t2.TS#;
NAME TS# FILE# NAME
---------------------- ---------- ---------- --------------------------------------------------------
SYSTEM 0 1 C:\DEMO\SYSTEM01.DBF
UNDOTBS1 1 2 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\UNDOTBS01.DBF
SYSAUX 2 3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\SYSAUX01.DBF
USERS 4 4 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\USERS01.DBF
EXAMPLE 6 5 D:\ORACLE\PRODUCT\10.2.0\ORADATA\CHIC\EXAMPLE01.DBF
已选择5行。
SQL>
===========================================================================
1)、表空间数据文件被删除
------------------------
open状态下删除表空间对应的所有数据文件.
在open状态下使用alter tablespace ... offline for recover 脱机表空间.
使用restore tablespace ...转储表空间所有的数据文件.
使用recover tablespace ...应用归档日志.
最后使用alter tablespace ... online使表空间联机.
------------------------
RMAN>run {
sql 'alter tablespace users offline for recover';
restore tablespace users;
recover tablespace users;
sql 'alter tablespace users online';
}
2)、表空间的数据文件所在磁盘出现故障
------------------------
open状态下删除表空间对应的所有数据文件.
在open状态下使用alter tablespace ... offline for recover 脱机表空间.
执行set newname为数据文件指定新的位置.
使用restore tablespace ...转储表空间所有的数据文件.
执行switch datafile改变控制文件中数据文件位置和名称.
使用recover tablespace ...应用归档日志.
最后使用alter tablespace ... online使表空间联机.
------------------------
RMAN>run {
sql 'alter tablespace users offline for recover';
set newname for datafile 4 to 'c:\demo\user01.dbf';
restore tablespace users;
switch tablespace users;
recover tablespace users;
sql 'alter tablespace users online';
}
以上。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20335819/viewspace-708321/
,如需转载,请注明出处,否则将追究法律责任。