您好,欢迎访问华信数据恢复网站

数据恢复

致力于打造权威数据恢复品牌

联系客服

Oracle 数据库模拟数据文件损坏恢复

时间:2013年06月09日信息来源:本站原创 点击: 【字体:

数据文件有时候因为某种原因会导致损坏而导致无法启动数据库,那如何恢复呢?

下面是一次模拟实验,如下

1. 首先创建一个表空间TEST,在创建一个表test在表空间test上

SQL> create tablespace test datafile '/u01/app/oracle/oradata/lhz/test01.dbf' size 10M;

 

SQL>  create table test as  select * from dba_objects;

Table created

SQL> alter table test move tablespace test;

Table altered

SQL> select count(*) from test;

 

 COUNT(*)

----------

    50881

 

2. 然后用vi编辑数据文件

[oracle@odb1 ~]$ vi /u01/app/oracle/oradata/lhz/test01.dbf

3.随便输入什么字符,保存

4.关闭数据库实例

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

5.启动实例

SQL> startup

ORACLE instance started.

 

Total System Global Area  599785472 bytes

Fixed Size                  2098112 bytes

Variable Size             243272768 bytes

Database Buffers          348127232 bytes

Redo Buffers                6287360 bytes

Database mounted.

ORA-01157: cannot identify/lock data file 9 - see DBWR trace file

ORA-01110: data file 9: '/u01/app/oracle/oradata/lhz/test01.dbf'

 

看到报错信息数据文件不能验证或锁定数据文件

6. 先将损坏数据文件offline,并打开数据库实例

SQL> alter database datafile '/u01/app/oracle/oradata/lhz/test01.dbf' offline;

Database altered.

SQL> alter database open;

Database altered.

7. 添加相同的表空间test

SQL> alter database create datafile '/u01/app/oracle/oradata/lhz/test01.dbf';

Database altered.

SQL> recover datafile 9;

Media recovery complete.

SQL> alter database datafile 9 online;

Database altered.

8.验证恢复结果:

 

SQL> select count(*) from andylhz.test;

 

 COUNT(*)

----------

    50881

 

恢复完成!

(作者:佚名 编辑:admin)
文章热词:
延伸阅读: