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

部署运行你感兴趣的模型镜像

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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12778571/viewspace-171137/

您可能感兴趣的与本文相关的镜像

GPT-SoVITS

GPT-SoVITS

AI应用

GPT-SoVITS 是一个开源的文本到语音(TTS)和语音转换模型,它结合了 GPT 的生成能力和 SoVITS 的语音转换技术。该项目以其强大的声音克隆能力而闻名,仅需少量语音样本(如5秒)即可实现高质量的即时语音合成,也可通过更长的音频(如1分钟)进行微调以获得更逼真的效果

<think> 嗯,用户这次提出了三个Oracle错误代码的组合查询:RMAN-03002、RMAN-03014和ORA-03114。从历史引用看,用户似乎正在处理RMAN备份恢复相关的故障,且之前遇到过权限问题(引用2)和脚本顺序错误(引用3)。这三个错误同时出现很可能是同一个问题的连锁反应。 用户引用的资料里提到过RMAN-03002通常与操作失败相关(如引用1和2),而引用3显示脚本顺序错误也会引发这个错误。现在结合新出现的ORA-03114(数据库连接中断),需要重点排查网络和实例状态。有趣的是,用户特意强调"不是真正的需求",说明ta可能经历过无效解决方案,需要更本质的原因分析。 先拆解这三个错误的关系链:ORA-03114(连接丢失)→导致RMAN-03014(备份操作失败)→触发RMAN-03002(命令执行失败)。所以核心应该是ORA-03114的根因排查。考虑到RMAN特性,以下可能性较大:数据库实例异常终止、网络闪断、监听器故障,或者用户手动kill了会话。 特别要注意引用2中提到的权限问题——如果归档日志目录权限变更,可能导致RMAN写入失败间接引发连接中断。另外引用3的脚本顺序错误提示也很关键,用户可能在恢复控制文件时步骤错误。需要建议ta交叉验证:先用sqlplus测试数据库连接稳定性,再检查$ORACLE_HOME/log下的trace文件,这是最直接的诊断依据。 对于解决方案的排序,应该把成本最低的放在前面:先检查网络和实例状态(5分钟),再看监听日志(2分钟),最后才建议检查归档完整性(可能耗时较久)。用户明显是运维人员,所以故障诊断命令要给出完整示例,比如tnsping和lsnrctl status这种可快速执行的命令。 </think>基于您查询的RMAN-03002、RMAN-03014和ORA-03114错误组合,以下是系统化的分析和解决方案: --- ### **错误关联分析** 1. **ORA-03114:数据库连接丢失** - 根本原因:网络中断、数据库实例崩溃、监听器故障或客户端进程被终止。 - 影响:导致后续RMAN操作(如备份/恢复)失败,触发`RMAN-03014`和`RMAN-03002`。 2. **RMAN-03014: RMAN操作失败** - 触发条件:因`ORA-03114`导致RMAN无法继续执行任务。 3. **RMAN-03002: RMAN命令执行失败** - 最终表现:因前序错误导致命令彻底终止。 --- ### **分步解决方案** #### **第一步:解决ORA-03114(连接中断)** 1. **检查数据库状态** ```sql SQL> SELECT status FROM v$instance; -- 若返回`OPEN`则实例正常,否则需启动实例 ``` - 若实例关闭:`STARTUP` 2. **验证网络与监听器** ```bash tnsping <TNS_NAME> # 测试TNS连通性 lsnrctl status # 检查监听器状态 ``` - 监听器异常时:`lsnrctl start` 3. **检查客户端日志** - 定位`$ORACLE_HOME/log`下的客户端trace文件,搜索`ORA-03114`的详细上下文[^3]。 4. **排查资源冲突** - 检查是否有防火墙阻断、DNS解析失败或操作系统资源(如socket)耗尽。 --- #### **第二步:解决RMAN-03014与RMAN-03002** > *需在确保数据库连接稳定后操作* 1. **验证备份/恢复环境** ```bash RMAN> CROSSCHECK BACKUP; # 检查备份集有效性 RMAN> VALIDATE DATABASE; # 验证数据文件完整性 ``` 2. **检查脚本逻辑顺序** - 错误示例:在`RESTORE`前执行`SWITCH DATAFILE`(如引用[3]所述) - **正确顺序**: ```bash RESTORE DATABASE; SWITCH DATAFILE ALL; # 必须在RESTORE后执行 ``` 3. **权限与文件路径** - 确保RMAN操作目录权限正确(参考引用[2]): ```bash chown -R oracle:oinstall /backup_path ``` - 确认备份文件路径存在且可访问。 --- ### **关键预防措施** 1. **监控连接稳定性** - 定期检查`$ORACLE_HOME/network/log`下的监听日志。 2. **优化RMAN脚本** - 添加错误处理逻辑: ```bash RUN { ALLOCATE CHANNEL ch1 DEVICE DISK; SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT'; BACKUP DATABASE PLUS ARCHIVELOG; RELEASE CHANNEL ch1; } ``` 3. **启用RMAN冗余配置** - 使用`CONFIGURE CONTROLFILE AUTOBACKUP ON;`确保控制文件自动备份[^1][^3]。 --- ### **典型场景示例** 若在恢复备库控制文件时出现: ```bash RMAN> RESTORE STANDBY CONTROLFILE FROM '/backup/control.ctl'; RMAN-03002, RMAN-06172, ORA-03114 ``` **解决流程**: 1. 检查主库到备库的网络(`ping`/`tnsping`) 2. 确认备库监听器运行(`lsnrctl status`) 3. 验证`/backup/control.ctl`文件权限: ```bash chown oracle:oinstall /backup/control.ctl ``` 4. 重新执行`RESTORE`命令 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值