Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16143
  • 博文数量: 2
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 12
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-08 22:17
文章分类
文章存档

2015年(1)

2014年(1)

我的朋友
最近访客

分类: Oracle

2014-07-18 22:02:27

 

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里所记录的scndatafile里的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;

阅读(1664) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~