数据库恢复后打开时遇到 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状态后查询数据

相关文章
|
域名解析 网络协议 关系型数据库
网站打不开数据库错误等常见问题解决方法合集
网站打不开数据库错误等常见问题解决方法合集
|
关系型数据库 MySQL 数据库连接
win10关于mysql5.7数据库连接不上的解决方法
win10关于mysql5.7数据库连接不上的解决方法
494 0
|
前端开发 数据库
文本----富文本数据如何存入到数据库当中,解决方法,看其他大佬写的文章
文本----富文本数据如何存入到数据库当中,解决方法,看其他大佬写的文章
文本----富文本数据如何存入到数据库当中,解决方法,看其他大佬写的文章
|
Oracle 关系型数据库 数据库
Oracle数据库协议适配器错误解决方法
Oracle数据库协议适配器错误解决方法
1815 2
|
存储 数据采集 安全
devos勒索病毒解决方法|勒索病毒解密|勒索病毒恢复|数据库修复
       随着数字时代的来临,企业在数据采集、处理、存储等方面进行了大量投资,数据已经成为了企业最重要的资产之一。但是,这些数据的安全性受到了越来越多的威胁,其中最臭名昭著的就是勒索病毒。勒索病毒是一种具有高度危险性的恶意软件,可以导致企业数据丢失或被盗取,给企业带来不可估量的经济和声誉损失。91数据恢复研究团队将详细介绍devos后缀勒索病毒及其解决办法,旨在帮助企业更好地了解和应对这一安全威胁。
devos勒索病毒解决方法|勒索病毒解密|勒索病毒恢复|数据库修复
|
SQL 数据库
SQL Server置疑数据库解决方法
SQL Server置疑数据库解决方法
410 0
|
SQL 数据库
navicat导入sql,数据库数据一直出错不能全部导入的问题解决方法
navicat导入sql,数据库数据一直出错不能全部导入的问题解决方法
664 0
navicat导入sql,数据库数据一直出错不能全部导入的问题解决方法
|
小程序 Java 数据库
【Java项目】SpringBoot项目显示时间与数据库时间不同的解决方法
【Java项目】SpringBoot项目显示时间与数据库时间不同的解决方法
521 0
|
关系型数据库 MySQL 数据库
MySQL数据库:Can not connect to MySQL server 解决方法
MySQL数据库:Can not connect to MySQL server 解决方法
1244 0
MySQL数据库:Can not connect to MySQL server 解决方法
|
数据库
数据库表中无法添加中文数据的解决方法
数据库表中无法添加中文数据的解决方法
457 0

热门文章

最新文章