ora-01190 ora-01110的解决方法

来源:互联网 发布:美国税收数据 编辑:程序博客网 时间:2024/06/06 14:01
标签:

ORA-01190: controlfile or data file string is from before the last RESETLOGS

控制文件或数据文件来自上次resetlogs之前。

问题分析:

1、出现这个问题是由于控制文件和数据文件的不一致性造成的,可能控制文件是新的,而数据文件是从旧的备份文件中恢复过来的。导致不一致性使数据库无法启动。

解决办法:

一、更改隐含参数“_allow_resetlogs_corruption”的用法

  1. 用之前的备份恢复损坏的数据文件。
  2. 尽量还原损坏的文件。
  3. 把数据库启动到nomount。
  4. 用SQL命令重建控制文件(要求之前用“alter database backup controlfile to trace”做过控制文件的文本备份)
  5. 设置隐含参数:alter system set “_allow_resetlogs_corruption”=true scope=spfile;
  6. 然后关闭数据库,用下面命令重启:alter database open resetlogs

如:SQLPLUS>ALTER SYSTEM SET "_allow_resetlogs_corruption"=TRUE SCOPE=SPFILE;

系统已更改。

使用隐含参数_allow_resetlogs_corruption强制启动数据库,设置此参数之后,在数据库Open过程中,Oracle会跳过某些一致性检查,从而使数据库可能跳过不一致状态,Open打开

SQL>alter database open resetlogs;

SQL>alter session set events 'IMMEDIATE trace name ADJUST_SCN level 1';

运气不好的话可能出现其他错误,那样你得另找神医咯!

使用该参数强制可能会导致数据库遗留问题,建议使用exp/imp来重建数据库

二、数据库可以打开,但是别高兴忘了备份,因为这个很重要:

1、ResetLog的作用

(1)将重做日志的序列号设为1
(2)一般以该子句打开数据库后,要立即备份数据库,因为这个子句会使数据库以前的备份不能用.
(3)在重做日志当前日志组出现错误时,要以该子句打开数据库.该子句会重新设置重做日志文件的状态.
(4)让数据库系统归档初始化,重新生成归档文件.

2、使用rman进行全库备份。

简单一点的就是一条命令搞定:RMAN>BACKUP DATABASE;

此语句自动备份到默认的闪回区

from:http://blog.sina.com.cn/s/blog_4b44387701013o3n.html

原创粉丝点击