ITPub博客

首页 > 数据库 > Oracle > 使用database control 恢复受损的非重要数据文件

使用database control 恢复受损的非重要数据文件

原创 Oracle 作者:xieyunchao 时间:2009-03-15 22:43:54 0 删除 编辑

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博客 ” ,链接:http://blog.itpub.net/13432219/viewspace-1018787/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-04-07

  • 博文量
    7
  • 访问量
    11065