Oracle 没有备份的数据文件的恢复方法(归档日志模式)

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638    QQ号:47079569    邮箱:[email protected]

 

没有备份的Datafile被误删除时的修复方法。

(前提条件:归档日志模式)

 

[詳細]

使用归档日志模式下,制成的数据文件,如果从制作完成到现在为止的所有offline REDO日志存在的话,即使没有备份也可以修复。

<顺序>

 

  1. 对于物理不存在的datafile制成空的datafile

SVRMGR> alter database create datafile 数据文件名’;

 

  1. 执行介质恢复

SVRMGR> recover datafile ‘数据文件名’ ;

 

  1. 将Datafile ONLINE

SVRMGR> alter database datafile ‘数据文件名’ online;

 

 

<<执行例>>  ※ 用于查看时,会记录 v$datafile_header的输出。

 

  1. 发生错误

 

SQL> select * from test_tab;

select * from test_tab

*

错误行: 1: 发生了错误。

ORA-00376: 文件: 无法读入6。

ORA-01110: 数据文件: 6 :

/home/app/oracle/product/8.0.5/dbs/test1.dbf

 

SQL> select name,status,error,recover from v$datafile_header

2> where file#=6;

NAME                                                         STATUS

———————————————————— ——-

ERROR                                                            REC

—————————————————————- —

OFFLINE

FILE NOT FOUND

 

 

  1. 对物理上不存在的datafile执成空白datafile

 

SQL> alter database create datafile

2>’/home/app/oracle/product/8.0.5/dbs/test1.dbf’;

 

变更数据库。

 

SQL> select name,status,error,recover from v$datafile_header

2> where file#=6;

NAME                                                       STATUS

——————————————————— ——-

ERROR                                                         REC

————————————————————- —

/home/app/oracle/product/8.0.5/dbs/test1.dbf              OFFLINE

YES

 

SVRMGR>!ls -l /home/app/oracle/product/8.0.5/dbs/test1.dbf

-rw-rw—-   1 ora805     dba        12288  3月 28日  13:49 /home

/app/oracle/product/8.0.5/dbs/test1.dbf

 

 

  1. 执行介质修复

 

SVRMGR> recover datafile

2>’/home/app/oracle/product/8.0.5/dbs/test1.dbf’ ;  — 2

媒介修复完成。

 

SVRMGR>  select name,status,error,recover from v$datafile_header

2> where file#=6;

NAME

STATUS  ERROR              REC

—————————————————————–

——- —————— —

/home/app/oracle/product/8.0.5/dbs/test1.dbf

OFFLINE                    NO

选择1行。

 

 

  1. 将Datafile ONLINE

 

SVRMGR>  alter database datafile

2>’/home/app/oracle/product/8.0.5/dbs/test1.dbf’ online;

处理语句。

 

SVRMGR> select name,status,error,recover from v$datafile_header

2> where file#=6;

NAME

STATUS  ERROR              REC

—————————————————————–

——- —————— —

/home/app/oracle/product/8.0.5/dbs/test1.dbf

ONLINE                     NO

选择1行。

 

SVRMGR>!ls -l /home/app/oracle/product/8.0.5/dbs/test1.dbf

-rw-rw—-   1 ora805     dba         104448  3月 28日  13:53 /ho

me/app/oracle/product/8.0.5/dbs/test1.dbf

 

 

[补充事项]

DB终止时,删除了数据文件的话,启动时就会发生以下错误。

 

SVRMGR> startup

启动了Oracle实例。

所有系统global区域                         4857944byte

Fixed Size                                          49240byte

Variable Size                                     4325376byte

Database Buffers                                   409600byte

Redo Buffers                                        73728byte

数据库mount完成。

ORA-01157: ????????: 6???????????????????????????

ORA-01110: ????????: 6 : /home/app/oracle/product/8.0.5/dbs/test1.dbf

 

这种情况也能以同样的方法修复。

 

SVRMGR> alter database create datafile ‘/home/app/oracle/product/8.0

.5/dbs/test1.dbf’;

语句处理完成。

SVRMGR> recover datafile ‘/home/app/oracle/product/8.0.5/dbs/test1.dbf’;

介质修复完成。

SVRMGR> alter database open;

语句处理完成。

 


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *