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

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

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

SQL> shutdown abort

SQL> startup


说明:以上三条命令在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


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

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


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

如下图:


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

SQL> RECOVER DATABASE

SQL> ALTER DATABASE OPEN;


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等。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值