当前位置:Gxlcms > mysql > 异机恢复后ORA-01152错误解决

异机恢复后ORA-01152错误解决

时间:2021-07-01 10:21:17 帮助过:26人阅读

1. 现象: 异机数据文件恢复成功后,执行最后一步打开数据库时报错。例如: SQL gt; alter database open resetlogs; 报错: O

1. 现象:

异机数据文件恢复成功后,执行最后一步打开数据库时报错。例如:

SQL > alter database open resetlogs;

报错:

ORA-01152: file 1 was not restored from a sufficiently old backup

ORA-01110: data file 1: '/u02/Oracle/oradata/mingya/system01.dbf'

2. 原因:

造成这种报错的原因是因为controlfile里所记录的scn与datafile里的scn不一致,导致数据库启动时失败。

3. 解决

3.1 确定需要恢复的achivelog

将数据库启动到mount状态;

$ rman target / catalog rman/rman@catalog ;连接到RMAN

RMAN> recover database;

运行命令后,RMAN将会报错,在最后列出需要的archivelog;例如:

RMAN-06025: no backup of log thread 1 seq 3784 lowscn 82847939 found to restore

RMAN-06025: no backup of log thread 1 seq 3783 lowscn 82845664 found to restore

其中的37833784是我们需要恢复的archivelog

3.2 从磁带库备份中恢复所需archivelog

RMAN> run {

2>set archivelog destination to '/u03/oracle/archivelog'; 该路径根据归档日志实际路径设置

3> allocate channel ch00 type 'SBT_TAPE';

4> send 'NB_ORA_SERV=BAKSERV,NB_ORA_CLIENT=HOSTA';

5> restore archivelog sequence between 3783 and 3784;

6> release channel ch00;

7> }

恢复成功后,在/u03/oracle/archivelog目录下将看到37833784两个文件。

3.3 应用archivelog

RMAN> run{

2> allocate channel ch00 type disk;

3> set until sequence 3785 thread 1; 3785是需要恢复的最大号37841

4> recover database;

5> release channel ch00;

6> }

3.4 打开数据库

RMAN> alter database open resetlogs;

至此,数据库可以正常打开。为使其他客户端能连接本数据库,最好重新创建监听listener.ora,,其他客户端重新配置连接文件tnsnames.ora

4. 其他问题-ORA-19625错误解决

在测试机上恢复操作成功后,正常运行的生产主机用NBU进行备份时,可能出现以下错误:

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-03002: failure of backup command at 09/02/2009 02:21:47

ORA-19625: error identifying file /u03/oracle /archivelog/2009_08_31/1_3783_634497921.dbf

==== ended in error on Wed Sep 2 02:21:48 CST 2009 ====

这时需要进行以下操作修正:

登录正常运行的主机:

$ rman target / catalog rman/rman@catalog

RMAN> crosscheck archivelog all;

推荐阅读:

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密

linux

人气教程排行