ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 用rman进行恢复数据,出现RMAN-03009,RMAN-11003,ORA-01991错误!

用rman进行恢复数据,出现RMAN-03009,RMAN-11003,ORA-01991错误!

原创 Linux操作系统 作者:mengzhaoliang 时间:2008-02-16 13:19:17 0 删除 编辑

C:\Documents and Settings\mzl>sqlplus "/as sysdba"

SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 2月 16 13:13:24 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


连接到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production


SQL> desc v$instance;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------

 INSTANCE_NUMBER                                    NUMBER
 INSTANCE_NAME                                      VARCHAR2(16)
 HOST_NAME                                          VARCHAR2(64)
 VERSION                                            VARCHAR2(17)
 STARTUP_TIME                                       DATE
 STATUS                                             VARCHAR2(12)
 PARALLEL                                           VARCHAR2(3)
 THREAD#                                            NUMBER
 ARCHIVER                                           VARCHAR2(7)
 LOG_SWITCH_WAIT                                    VARCHAR2(11)
 LOGINS                                             VARCHAR2(10)
 SHUTDOWN_PENDING                                   VARCHAR2(3)
 DATABASE_STATUS                                    VARCHAR2(17)
 INSTANCE_ROLE                                      VARCHAR2(18)
 ACTIVE_STATE                                       VARCHAR2(9)

SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
risesoft         MOUNTED

SQL> archive log list;
数据库日志模式            存档模式
自动存档             禁用
存档终点            C:\oracle\ora92\RDBMS
最早的概要日志序列     10
下一个存档日志序列   12
当前日志序列           12
SQL> shutdown immediate;
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del C:\oracle\oradata\risesoft\control*

SQL> startup nomount
ORACLE 例程已经启动。

Total System Global Area  126950220 bytes
Fixed Size                   453452 bytes
Variable Size             109051904 bytes
Database Buffers           16777216 bytes
Redo Buffers                 667648 bytes
SQL> set dbid 425358856
SP2-0158: 未知的SET选项"dbid"
SQL> set dbid 425358856
SP2-0158: 未知的SET选项"dbid"
SQL> exit
从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中断开

C:\Documents and Settings\mzl>rman target/

恢复管理器: 版本9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

连接到目标数据库: risesoft(未安装)

RMAN> set dbid 425358856

正在执行命令: SET DBID

RMAN> restore controlfile from 'd:\backup\C-425358856-20080216-00';

启动 restore 于 16-2月 -08

正在使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=11 devtype=DISK
通道 ORA_DISK_1: 正在恢复控制文件
通道 ORA_DISK_1: 恢复完成
正在复制控制文件
输出文件名=C:\ORACLE\ORADATA\RISESOFT\CONTROL01.CTL
输出文件名=C:\ORACLE\ORADATA\RISESOFT\CONTROL02.CTL
输出文件名=C:\ORACLE\ORADATA\RISESOFT\CONTROL03.CTL
完成 restore 于 16-2月 -08

在这里恢复控制文件成功

RMAN> sql 'alter database mount';

sql 语句: alter database mount
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of sql command on default channel at 02/16/2008 13:18:59
RMAN-11003: failure during parse/execution of SQL statement: alter database moun
t
ORA-01991: 无效的口令文件'C:\oracle\ora92\DATABASE\PWDrisesoft.ORA'

RMAN>

删除该口令文件,后重建。

C:\Documents and Settings\mzl>del C:\oracle\ora92\DATABASE\PWDrisesoft.ORA

C:\Documents and Settings\mzl>orapwd file=C:\oracle\ora92\DATABASE\PWDrisesoft.O
RA password=mzl

重新查看

RMAN> shutdown immediate;

数据库已卸载
Oracle 例程已关闭

RMAN> startup nomount;

已连接到目标数据库 (未启动)
Oracle 例程已启动

系统全局区域总计     126950220 字节

Fixed Size                      453452 字节
Variable Size                109051904 字节
Database Buffers              16777216 字节
Redo Buffers                    667648 字节

RMAN> sql 'alter database mount';

sql 语句: alter database mount

RMAN> restore database;

启动 restore 于 16-2月 -08

分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=11 devtype=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 02/16/2008 14:36:24
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 10 found to restore
RMAN-06023: no backup or copy of datafile 8 found to restore
RMAN-06023: no backup or copy of datafile 7 found to restore
RMAN-06023: no backup or copy of datafile 6 found to restore
RMAN-06023: no backup or copy of datafile 5 found to restore
RMAN-06023: no backup or copy of datafile 4 found to restore
RMAN-06023: no backup or copy of datafile 3 found to restore

很多数据块没有找到,用sql查询看看datafile对应的数据文件

SQL> l
  1* select file#,name from v$datafile
SQL> /

     FILE# NAME
---------- --------------------------------------------------
         1 C:\ORACLE\ORADATA\RISESOFT\SYSTEM01.DBF
         2 C:\ORACLE\ORADATA\RISESOFT\UNDOTBS01.DBF
         3 C:\ORACLE\ORA92\DATABASE\MISSING00003
         4 C:\ORACLE\ORA92\DATABASE\MISSING00004
         5 C:\ORACLE\ORA92\DATABASE\MISSING00005
         6 C:\ORACLE\ORA92\DATABASE\MISSING00006
         7 C:\ORACLE\ORA92\DATABASE\MISSING00007
         8 C:\ORACLE\ORA92\DATABASE\MISSING00008
         9 C:\ORACLE\ORADATA\RISESOFT\USERS01.DBF
        10 C:\ORACLE\ORA92\DATABASE\MISSING00010

已选择10行。

查看备份状态:

RMAN> list backup of database;


备份集列表
===================

BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
2       Full    340M       DISK        00:00:23     16-2月 -08
BP 关键字: 2   状态: AVAILABLE   标记:TAG20080216T010912
段名:D:\BACKUP\02J8QJ9P_1_1
  备份集 2 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  1       Full 444212     16-2月 -08 C:\ORACLE\ORADATA\RISESOFT\SYSTEM01.DBF
  2       Full 444212     16-2月 -08 C:\ORACLE\ORADATA\RISESOFT\UNDOTBS01.DBF
  9       Full 444212     16-2月 -08 C:\ORACLE\ORADATA\RISESOFT\USERS01.DBF

 

出现该错误原因是在执行recover database时应该skip 不需要恢复的表空间

RMAN> recover database skip tablespace CWMLITE,DRSYS,EXAMPLE,INDX,ODM,TOOLS,XDB;


启动 recover 于 16-2月 -08
使用通道 ORA_DISK_1

正在开始介质的恢复

存档日志线程 1 序列 12 已作为文件 C:\ORACLE\ORADATA\RISESOFT\REDO02.LOG 存在于磁
盘上
存档日志线程 1 序列 13 已作为文件 C:\ORACLE\ORADATA\RISESOFT\REDO03.LOG 存在于磁
盘上
存档日志线程 1 序列 14 已作为文件 C:\ORACLE\ORADATA\RISESOFT\REDO01.LOG 存在于磁
盘上
通道 ORA_DISK_1: 正在启动到默认目标的存档日志恢复
通道 ORA_DISK_1: 正在恢复存档日志
存档日志线程 =1 序列=11
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=D:\BACKUP\03J8QJAJ_1_1 tag=TAG20080216T010939 params=NULL
通道 ORA_DISK_1: 恢复完成
存档日志文件名 =C:\ORACLE\ORA92\RDBMS\ARC00011.001 线程 =1 序列 =11
存档日志文件名 =C:\ORACLE\ORADATA\RISESOFT\REDO02.LOG 线程 =1 序列 =12
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 02/16/2008 15:39:32
ORA-00283: recovery session canceled due to errors
RMAN-11003: failure during parse/execution of SQL statement: alter database reco
ver logfile 'C:\ORACLE\ORADATA\RISESOFT\REDO02.LOG'
ORA-00283: 恢复会话因错误而取消
ORA-16067: 归档日志 C:\ORACLE\ORADATA\RISESOFT\REDO02.LOG 中的激活标识符匹配出错

 

 

查找了一段时间,还没有解决,还是把控制文件删除了,再重建控制文件

解决方法:

1   在d:\backup\目录下创建了一个createControl.sql文件
内容如下:

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "risesoft" NORESETLOGS  ARCHIVELOG
--  SET STANDBY TO MAXIMIZE PERFORMANCE
    MAXLOGFILES 5
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 1
    MAXLOGHISTORY 226
LOGFILE
  GROUP 1 'C:\oracle\oradata\risesoft\redo01.log'  SIZE 100M,
  GROUP 2 'C:\oracle\oradata\risesoft\redo02.log'  SIZE 100M,
  GROUP 3 'C:\oracle\oradata\risesoft\redo03.log'  SIZE 100M
-- STANDBY LOGFILE
DATAFILE
  'C:\oracle\oradata\risesoft\system01.dbf',
  'C:\oracle\oradata\risesoft\undotbs01.dbf',
  'C:\oracle\oradata\risesoft\users01.dbf'
CHARACTER SET ZHS16GBK
;
RECOVER DATABASE
ALTER SYSTEM ARCHIVE LOG ALL;
ALTER DATABASE OPEN;
ALTER TABLESPACE TEMP ADD TEMPFILE 'C:\oracle\oradata\risesoft\temp01.dbf'
     SIZE 41943040  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;   


2   在sqlplus中执行该文件

SQL>startup nomount


SQL>@d:\backup\createControl.sql

控制文件已创建


3   关闭后启动数据库
SQL>shutdown immediate;

SQL>startup
......

数据库已经打开


 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12778571/viewspace-171137/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2008-01-30

  • 博文量
    335
  • 访问量
    2900929