ITPub博客

首页 > 数据库 > Oracle > ORACLE非归档下的恢复

ORACLE非归档下的恢复

原创 Oracle 作者:sunwgneuqsoft 时间:2007-12-01 09:40:40 0 删除 编辑
非归档模式

1, 参数文件丢失

1) 数据库是用spfile启动的情况下,init.ora丢失,不会对数据库的启动产生任何影响,不过为了安全考虑,应该重新创建init.ora,作为spfile的备份。

create pfile = 'D:oracleadminmyoracle

[@more@]

2) 数据库用spfile启动的情况下,spfile文件丢失

a, 存在init.ora参数文件的备份,可以用pfile直接启动,也可以用pfile创建spfile,然后用spfile启动

直接用pfile启动

startup pfile=’ D:oracleadminmyoraclepfileinit.ora’

重新创建spfile,用spfile启动

create spfile from pfile=’ D:oracleadminmyoraclepfileinit.ora’

startup

b, 没有init备份的情况下,可以从其他数据库拷贝一个init.ora的备份,修改相关参数即可。修改的恢复方法就和存在init.ora参数文件的备份的spfile丢失的恢复方法一致了。

3) 数据库是用pfile启动的情况下,init.ora丢失

SQL> startup pfile='d:oracleadminmyoraclepfileinit.ora'

LRM-00109: 无法打开参数文件 'd:oracleadminmyoraclepfileinit.ora'

ORA-01078: 处理系统参数失败

a, 如果存在init.ora的备份,拷备到相关目录下即可(实例的启动参数目录)

b, 如果不存在init.ora的备份可以从其他数据库拷贝一个init.ora的备份,修改相关参数即可。

2, 参数文件设置出错

如果数据库的spfile(用spfile启动)或pfile(用pfile启动),里面的参数设置出错。主要是pfile的参数,因为如果使用spfile的话,设置参数的时候都会有存在一个有效性的检查,一般不会出现参数设置出错的问题。数据库会给出相关的错误提示,告诉你是哪个参数设置的有问题,只要修改相关参数后重新启动数据库即可。

3, 控制文件损坏或丢失

a, 单一控制文件损坏或丢失。一般来说控制文件都会存在镜像的,如果单一控制文件损坏数据库会报以下错误:

SQL> startup nomount force

ORACLE instance started.

Total System Global Area 135338868 bytes

Fixed Size 453492 bytes

Variable Size 109051904 bytes

Database Buffers 25165824 bytes

Redo Buffers 667648 bytes

SQL> alter database mount ;

alter database mount

*

ERROR at line 1:

ORA-00205: error in identifying controlfile, check alert log for more info

这个时候我们检查alert log文件,会发现以下错误

ORA-00202: controlfile: 'D:oracleoradatamyoracleCONTROL01.CTL'

ORA-27047: unable to read the header block of file

OSD-04006: ReadFile() 失败, 无法读取文件

O/S-Error: (OS 38) 到达文件结尾。

由此可以知道control01文件已经损坏。由于一般来说控制文件存在镜像,只要我们将其他完好的控制文件拷备一份覆盖损坏或丢失的控制文件即可。也可以在初始化参数control_files中的相应的损坏的控制文件删除即可。

b,全部控制文件损坏或者丢失

1,存在控制文件的备份,将备份的控制文件按照初始化参数的配置来设置。然后进行控制文件的恢复。

Startup nomount;

Revocer database using backup controlfile;

然后选择相应的日志文件进行恢复

最后必须要以resetlogs的方式打开数据库

alter database open resetlogs;

2,不存在控制文件的备份。这种情况下只能重建控制文件。

STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "MYORACLE" NORESETLOGS NOARCHIVELOG

-- SET STANDBY TO MAXIMIZE PERFORMANCE

MAXLOGFILES 50

MAXLOGMEMBERS 5

MAXDATAFILES 100

MAXINSTANCES 1

MAXLOGHISTORY 226

LOGFILE

GROUP 1 'D:ORACLEORADATAMYORACLEREDO01.LOG' SIZE 100M,

GROUP 2 'D:ORACLEORADATAMYORACLEREDO02.LOG' SIZE 100M,

GROUP 3 'D:ORACLEORADATAMYORACLEREDO03.LOG' SIZE 100M

-- STANDBY LOGFILE

DATAFILE

'D:ORACLEORADATAMYORACLESYSTEM01.DBF',

'D:ORACLEORADATAMYORACLEUNDOTBS01.DBF',

'D:ORACLEORADATAMYORACLECWMLITE01.DBF',

'D:ORACLEORADATAMYORACLEDRSYS01.DBF',

'D:ORACLEORADATAMYORACLEEXAMPLE01.DBF',

'D:ORACLEORADATAMYORACLEINDX01.DBF',

'D:ORACLEORADATAMYORACLEODM01.DBF',

'D:ORACLEORADATAMYORACLETOOLS01.DBF',

'D:ORACLEORADATAMYORACLEUSERS01.DBF',

'D:ORACLEORADATAMYORACLEXDB01.DBF',

'D:ORACLEORADATAMYORACLESUNWG.DBF',

'D:ORACLEORADATAMYORACLEXT_YJYY.DBF',

'D:ORACLEORADATAMYORACLEXT_DD.DBF'

CHARACTER SET ZHS16GBK

;

ALTER DATABASE OPEN;

4, 日志文件

a, 非当前日志

alter database clear logfile group 1;

b, 当前日志

recover database until cancel;

alter database open resetlogs;

c, 回滚段有未提交的事务

_allow_resetlogs_corruption = true

5, 数据文件

a, 如果存在备份的话,可以将所有的备份文件拷贝回来,打开即可

b, 如果没有备份文件,只能将该数据文件删掉

alter database datafile ‘e:ttt.dbf’ offline drop;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8394333/viewspace-987146/,如需转载,请注明出处,否则将追究法律责任。

下一篇: Oracle的验证方式
请登录后发表评论 登录
全部评论
  • 博文量
    56
  • 访问量
    760252