欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-05-13 08:51:44
...

数据文件有时候因为某种原因会导致损坏而导致无法启动数据库,那如何恢复呢?下面是一次模拟实验,如下1.首先创建一个表空间TEST,在创建一个表test在表空间test

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

下面是一次模拟实验,服务器空间,如下

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


恢复完成!

本文出自 “影子骑士” 博客,香港服务器,请务必保留此出处