Welcome 微信登录

首页 / 数据库 / MySQL / ORA-01110错误之异常恢复

某日,Oracle生产数据库服务器异常宕机,在重启服务器开启数据库时报如下错误:SQL> startup                                                       
ORACLE instance started.                                 
Total System Global Area 1.6911E+10 bytes                          
Fixed Size                  2113696 bytes                          
Variable Size            8472498016 bytes                          
Database Buffers         8422162432 bytes                          
Redo Buffers               14659584 bytes                          
Database mounted.                                                  
ORA-01113: file 1 needs media recovery                             
ORA-01110: data file 1: "/oracle/PRD/data1/system_1/system.data1"有一种解决方法是这样的
SQL> RECOVER DATAFILE  "/oracle/PRD/data1/system_1/system.data1"
恢复受损的文件.
SQL> recover tablespace system;//不一定需要,提示不要求恢复的时候,可以直接打开数据库。
恢复系统表空间.
SQL> RECOVER DATABASE;
恢复数据库.
SQL> ALTER DATABASE OPEN;
Database altered.做这类操作时,不一定能成功。所以请一定先备份当前状态下所有数据文件、控制文件和日志文件,先做到保护现场,然后再做其他尝试。经过冷备后,尝试这种方法不行。咨询Dbsnake后,尝试异常恢复强行打开数据库。
#su - oracle
$vi  /oracle/PRD/data1/init.ora 修改初始化参数
*._allow_resetlogs_corruption=FALSE
修改为*._allow_resetlogs_corruption=TRUE(#正常启库后修改为原值FALSE)
(这个参数允许在数据不一致的情况下打开)
*.undo_management="AUTO"
修改为*.undo_management="MANUAL"(#正常启库后修改为原值AUTO)
(这个参数是让UNDO表空间由自动管理变手动管理)
增加此句
*._corrupted_rollback_segments=(_SYSSMU12$)(#正常启库后去掉此句)
(屏蔽出错的事务回滚段,根据ALERT提示ORA-01555: snapshot too old: rollback segment number 12 with name "_SYSSMU12$" too small)
然后保存参数文件,重新打开库,发现还是不行。检查ALERT日志发现SCN号不一致, 下一步推进SCN值。
  • 1
  • 2
  • 下一页
Oracle 11gR2 RAC的网络规划解析MongoDB学习整理之访问控制相关资讯      Oracle数据库基础教程 
  • 在Oracle数据库中插入含有&符号的  (03/06/2013 09:20:14)
  • Oracle 执行计划更改导致数据加工  (02/13/2013 14:45:04)
  • 判断Oracle Sequence是否存在  (02/13/2013 14:32:26)
  • Oracle数据库中无法对数据表进行  (02/26/2013 14:24:58)
  • Oracle 在同一台主机上建立用户管  (02/13/2013 14:40:58)
  • Oracle em 无法启动,报not found错  (02/13/2013 14:29:48)
本文评论 查看全部评论 (0)
表情: 姓名: 字数