您的位置:首页 > 数据库 > Oracle

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

2017-03-01 15:55 751 查看
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 时间   名称
---- -- ---- ---------- -----
4000
----- ----
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
......

数据库已经打开
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  rman oracle
相关文章推荐