以system用户登录创建一个表空间test,并且在这个表空间中创建一个标test:
Sqlplus /nolog
Conn system/admin;
Create tablespace test datefile test.dbf size 100m;
Create table test(c1 date) tablespace test;
Insert into test values(sysdate);
以dba身份登录oem。
点击“维护”选项卡
点击“备份与恢复”中的“调度备份”,
选择“定制备份”中的,“表空间”单选按钮,下面会提示输入主机的身份。设置方法参见其他资料。
点击按钮“调度定制备份”;
选择“添加”,下一步;
在复选框中选择“test表空间”,点击“选择”按钮。
选择test表空间,下一步;
默认,下一步;
默认,选择“磁盘”单选按钮,下一步;
默认,下一步;
默认,下一步;
这时,会出现“复查”窗口,并且生成了rman脚本,点击“提交作业”;
点击“确定”;
这时,故意损坏数据文件test.dbf,可以用ue打开该数据文件,全选,删除,保存。
关闭数据库,会提示出现错误,强制关闭后,尝试打开数据库,但不能成功,使表空间脱机,打开数据库。登陆oem,执行恢复:
SQL> shutdown immediate;
ORA-01110: 数据文件 7: 'D:ORACLE10.2.0DB_1DATABASETEST.DBF'
ORA-01115: 从文件 7 读取块时出现 IO 错误 (块 # 1)
ORA-27072: 文件 I/O 错误
OSD-04006: ReadFile() 失败, 无法读取文件
O/S-Error: (OS 38) 已到文件结尾。
SQL> shutdown immediate;
ORA-01110: 数据文件 7: 'D:ORACLE10.2.0DB_1DATABASETEST.DBF'
ORA-01115: 从文件 7 读取块时出现 IO 错误 (块 # 1)
ORA-27072: 文件 I/O 错误
OSD-04006: ReadFile() 失败, 无法读取文件
O/S-Error: (OS 38) 已到文件结尾。
SQL> startup
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> starup force;
SP2-0734: 未知的命令开头 "starup for..." - 忽略了剩余的行。
SQL> startup force;
ORACLE 例程已经启动。
Total System Global Area 713031680 bytes
Fixed Size 1251004 bytes
Variable Size 281020740 bytes
Database Buffers 423624704 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 7 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 7: 'D:ORACLE10.2.0DB_1DATABASETEST.DBF'
SQL> select * from test;
select * from test
*
第 1 行出现错误:
ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询
SQL> conn system/admin;
ERROR:
ORA-01033: ORACLE initialization or shutdown in progress
警告: 您不再连接到 ORACLE。
SQL> startup force;
ORA-01031: insufficient privileges
SQL> conn sys/admin as sysdba;
已连接。
SQL> startup force;
ORACLE 例程已经启动。
Total System Global Area 713031680 bytes
Fixed Size 1251004 bytes
Variable Size 281020740 bytes
Database Buffers 423624704 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 7 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 7: 'D:ORACLE10.2.0DB_1DATABASETEST.DBF'
SQL> select * from test;
select * from test
*
第 1 行出现错误:
ORA-01219: 数据库未打开: 仅允许在固定表/视图中查询
SQL> recover datafile 'D:oracle10.2.0db_1databasetest.dbf'
ORA-00283: 恢复会话因错误而取消
ORA-01110: 数据文件 7: 'D:ORACLE10.2.0DB_1DATABASETEST.DBF'
ORA-01157: 无法标识/锁定数据文件 7 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 7: 'D:ORACLE10.2.0DB_1DATABASETEST.DBF'
SQL> alter database datafile 'D:oracle10.2.0db_1databasetest.dbf'offline dr
o
2 ;
alter database datafile 'D:oracle10.2.0db_1databasetest.dbf'offline dro
*
第 1 行出现错误:
ORA-00933: SQL 命令未正确结束
SQL> alter database datafile 'D:oracle10.2.0db_1databasetest.dbf'offline drop;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> select * from test;
select * from test
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
SQL> conn system/admin;
已连接。
SQL> select * from emp;
select * from emp
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
此时,登陆oem,选择“维护”选项卡,点击“执行恢复”,根据实际情况恢复。
成功后,使test表空间联机:
QL> alter database datafile 'test.dbf' online;
alter database datafile 'test.dbf' online
*
第 1 行出现错误:
ORA-01113: 文件 7 需要介质恢复
ORA-01110: 数据文件 7: 'D:ORACLE10.2.0DB_1DATABASETEST.DBF'
SQL> recover datafile 'D:ORACLE10.2.0DB_1DATABASETEST.DBF';
完成介质恢复。
SQL> conn system/admin;
已连接。
SQL> select * from test;
select * from test
*
第 1 行出现错误:
ORA-00376: 此时无法读取文件 7
ORA-01110: 数据文件 7: 'D:ORACLE10.2.0DB_1DATABASETEST.DBF'
SQL> alter datafile 7 online;
alter datafile 7 online
*
第 1 行出现错误:
ORA-00940: 无效的 ALTER 命令
SQL> alter database datafile 7 online;
数据库已更改。
SQL> select * from test;
C1
--------------
14-3月 -09
SQL> select table_name,tablespace_name from user_tables where table_name='TEST';
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
TEST TEST
注:在恢复过程中会产生一个名字为7的表空间,要使其联机。
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13432219/viewspace-1018787/ ,如需转载,请注明出处,否则将追究法律责任。