断电造成数据库文件损坏的解决方法,适用于ora-01122,ora-01110,ora-01207等错误

1.开始—运行—“cmd”,输入如下命令:

C:\Users\Administrator>sqlplus "/as sysdba"

SQL> shutdown abort

SQL> startup

断电造成数据库文件损坏的解决方法,适用于ora-01122,ora-01110,ora-01207等错误_第1张图片

说明:以上三条命令在sqlplus环境下,以DBA身份重启数据库。如果数据库文件有损坏,则在startup运行时会提示损坏的文件位置,并提示错误代码。(若此方法修复失败,可根据提示的错误代码寻找新方法)。图示为可以正常打开的数据库,没有提示任何错误。

 

2.继续输入命令如下:

SQL> alter database backup controlfile to trace;

说明:在Oracle10G中,支持带“as”参数的命令:alter database backup controlfile to trace as 'E:\aa.txt'; 可以指定生成的trc文件存放位置“E盘”和名称“aa.txt”。

SQL> shutdown immediate

断电造成数据库文件损坏的解决方法,适用于ora-01122,ora-01110,ora-01207等错误_第2张图片

用记事本打开“(Oracle安装目录)\db_1\admin\orcl\udump”文件夹,找到第四条命令生成的最新trc文件。(在10G中可以到as参数指定的位置找到生成的文件)

在***.trc文件里,会有多部分命令,都以startup nomount开始,至分号结束。各部分命令的区别是:--noresetlogs仅是当前所有的onlinelogs可用时;--resetlogs,将导致online logs里的内容丢失,并且所有的备份失效,仅当online logs 损坏的情况下,才使用resetlogs模式。其中,NOARCHIVELOG为非归档模式。

断电造成数据库文件损坏的解决方法,适用于ora-01122,ora-01110,ora-01207等错误_第3张图片

把trc文件里的命令从STARTUP NOMOUNT开始,到分号结束,复制到cmd窗口里,执行。

如下图:

断电造成数据库文件损坏的解决方法,适用于ora-01122,ora-01110,ora-01207等错误_第4张图片

3.上述命令执行后,若提示“控制文件已创建”,则说明命令成功执行。可以继续输入如下的命令修复并打开数据库了(在trc文件里,下面的命令都可以找到):

SQL> RECOVER DATABASE

SQL> ALTER DATABASE OPEN;

断电造成数据库文件损坏的解决方法,适用于ora-01122,ora-01110,ora-01207等错误_第5张图片

Trc文件里的下一句命令一般是不需要的:(用于修复临时表空间,不同的系统生成的命令参数不同,可从trc文件里复制)

SQL> ALTER TABLESPACE TEMP ADD TEMPFILE'(oracle安装目录)\ORADATA\ORCL\TEMP01.DBF'

    SIZE 158334976  REUSE AUTOEXTENDON NEXT 655360  MAXSIZE 32767M;

 

退出sqlplus环境,回到CMD下

SQL> quit;

 完成。


以上方法适用于解决oracle错误:ora-01122,ora-01110,ora-01207等。

你可能感兴趣的:(断电造成数据库文件损坏的解决方法,适用于ora-01122,ora-01110,ora-01207等错误)