数据库恢复后打开时遇到 ORA-01152的解决方法

简介: 数据库恢复后打开时遇到 ORA-01152

数据库恢复后打开时遇到 ORA-01152

数据库恢复后打开时遇到:


RMAN> alter database open resetlogs;
......
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: '/oracle/u01/app/oracle/oradata/orcl/system01.dbf'


分析原因

oracle对于这个错误的解释是:


ORA-01152: file 1 was not restored from a sufficiently old backup  
Cause: An incomplete recovery session was started, but an insufficient number of logs were applied to make the database consistent. This file is still in the future of the last log applied. The most likely cause of this error is forgetting to restore the file from a backup before doing incomplete recovery.
Action: Either apply more logs until the database is consistent or restore the database file from an older backup and repeat recovery.

其实说得很清楚,就是说使用了一个旧的控制文件。备份里restore出的controlfile上的scn 小于 datafile上所记录的scn,连解决方法也说清楚了。一是以old controlfile的SCN为准,将datafile恢复到与其一致,这样就会导致数据的不一致。二是以datafile的SCN为准,将controlfile恢复到与其一致,此时就会报ORA-01152的错误,然后我们通过recover database,进而利用归档日志来完成controlfile和datafile的SCN一致,归档找不到再利用redolog来恢复。


恢复到超过controlfile的SCN状态

SQL> recover database using backup controlfile;
......
Specify log: {=suggested | filename | AUTO | CANCEL}
/u01/app/oracle/oradata/orcl/redo01.log
Log applied.
Media recovery complete.


注意:/u01/app/oracle/oradata/orcl/redo01.log是手工输入的。

此时恢复完成,应用完所有归档,并重新应用了redolog,启动数据库到open状态


SQL>alter database open resetlogs;
Database altered.


也可以进行时间点的数据恢复(大于之前所需archivelog中的最后一个archivelog即可),例如: set until sequence 15 thread 1; 这个sequence 15 里面的scn是大于数据库里面的SCN的。这样就恢复出一致性的数据,然后用open resetlogs打开数据即可。


利用隐含参数"_allow_resetlogs_corruption"=true打开数据库

更改参数


SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;
System altered.

恢复数据库


SQL> recover database using backup controlfile until cancel;
SQL> alter database open resetlogs;
SQL> startup force;


将内置参数改回来

SQL> alter system set "_allow_resetlogs_corruption"=false scope=spfile;
System altered.


数据库启动到open状态后查询数据

相关文章
|
1月前
|
域名解析 网络协议 关系型数据库
网站打不开数据库错误等常见问题解决方法合集
网站打不开数据库错误等常见问题解决方法合集
|
4月前
|
前端开发 数据库
文本----富文本数据如何存入到数据库当中,解决方法,看其他大佬写的文章
文本----富文本数据如何存入到数据库当中,解决方法,看其他大佬写的文章
文本----富文本数据如何存入到数据库当中,解决方法,看其他大佬写的文章
|
6月前
|
Oracle 关系型数据库 数据库
Oracle数据库协议适配器错误解决方法
Oracle数据库协议适配器错误解决方法
607 2
|
关系型数据库 MySQL 数据库连接
win10关于mysql5.7数据库连接不上的解决方法
win10关于mysql5.7数据库连接不上的解决方法
177 0
|
SQL 数据库
SQL Server置疑数据库解决方法
SQL Server置疑数据库解决方法
193 0
|
小程序 Java 数据库
【Java项目】SpringBoot项目显示时间与数据库时间不同的解决方法
【Java项目】SpringBoot项目显示时间与数据库时间不同的解决方法
248 0
|
数据库
数据库表中无法添加中文数据的解决方法
数据库表中无法添加中文数据的解决方法
221 0
|
关系型数据库 MySQL Unix
关于mysql 数据库表名区分大小写导致程序错误解决方法
今天在调试一个开源框架的时候,程序可以正常运行,数据也可以正常加载,但当打开个别功能列表的时候,后台报错(com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'jeewms.T_S_student' doesn't exist)找不到mysql的表,然后在数据库查看表的确是存在的啊,并且对比表名都是一样的,忽然想到之前的一个项目也遇到过这个问题。 参数缺省地在 Windows 中这个选项为 1 ,在 Unix 中为 0,所以问题出在linux上。经过配置修改重启后就ok了。希望对遇到这个问题的伙伴们有所帮助。
209 0
|
弹性计算 关系型数据库 MySQL
数据库表损坏解决方法( is marked as crashed and should be repaired)
表损坏原因过程大致如下,过了个国庆没有查看服务器状态,7号晚上手机收到ECS服务器异常短信,查了下发现是磁盘满了,导致无法创建临时空间,造成商城无法访问,速速的解决方法是删除了大量日志文件,访问网站发现已经ok了,一切正常,今天客户忽然打电话说,网站的搜索功能出现问题,我查了下错误原因
344 0
|
存储 数据采集 安全
devos勒索病毒解决方法|勒索病毒解密|勒索病毒恢复|数据库修复
       随着数字时代的来临,企业在数据采集、处理、存储等方面进行了大量投资,数据已经成为了企业最重要的资产之一。但是,这些数据的安全性受到了越来越多的威胁,其中最臭名昭著的就是勒索病毒。勒索病毒是一种具有高度危险性的恶意软件,可以导致企业数据丢失或被盗取,给企业带来不可估量的经济和声誉损失。91数据恢复研究团队将详细介绍devos后缀勒索病毒及其解决办法,旨在帮助企业更好地了解和应对这一安全威胁。
devos勒索病毒解决方法|勒索病毒解密|勒索病毒恢复|数据库修复