instance retrieval

本文回顾了过去十年中,SIFT与CNN在图像检索任务中的发展历程及对比。详细探讨了两种方法的特点、优势及局限性,为读者提供了深入理解图像检索领域的视角。
你遇到的 RMAN 启动错误如下: ``` RMAN> startup nomount; connected to target database (not started) startup failed: ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/u01/app/oracle/product/112/dbs/initdup.ora' starting Oracle instance without parameter file for retrieval of spfile Oracle instance started Total System Global Area 1068937216 bytes Fixed Size 2260088 bytes Variable Size 285213576 bytes Database Buffers 775946240 bytes Redo Buffers 5517312 bytes ``` --- ### ✅ **问题分析** 这个错误信息表明: 当尝试使用 `startup nomount` 命令启动数据库时,Oracle 试图读取初始化参数文件(PFILE),路径为: ``` /u01/app/oracle/product/112/dbs/initdup.ora ``` 但该文件不存在或无法访问,导致: - `ORA-01078`: 处理系统参数失败 - `LRM-00109`: 找不到指定的参数文件 不过,你看到后续输出说: > starting Oracle instance without parameter file for retrieval of spfile > Oracle instance started 这说明 **RMAN 自动进入了一种“无 PFILE 模式”来尝试从备份中恢复 SPFILE** —— 这是 RMAN 在做灾难恢复时的正常行为。 --- ### ✅ **这是正常现象吗?** ✅ **是的,在某些情况下这是预期的行为。** 如果你正在执行 **从备份中恢复数据库控制文件、SPFILE 或整个数据库** 的操作,而当前没有可用的 PFILE/SPFILE,RMAN 会: 1. 尝试启动实例; 2. 发现没有参数文件 → 报错; 3. 然后自动以最小内存模式启动一个临时实例(nomount 状态); 4. 目的是为了连接到目标数据库并从备份中恢复真正的 SPFILE 或控制文件。 所以,虽然报错了 `ORA-01078` 和 `LRM-00109`,但只要实例最终成功启动到了 `nomount` 状态,并且你可以继续运行 RMAN 命令(如 `restore spfile from ...`),那就**无需担心这个错误**。 --- ### ✅ **解决方案与后续步骤** #### ✅ 场景一:你想从备份恢复 SPFILE 如果之前有自动备份(比如使用了 `CONFIGURE CONTROLFILE AUTOBACKUP ON;`),可以这样恢复 SPFILE: ```rman RMAN> restore spfile from autobackup; ``` 或者指定具体备份片: ```rman RMAN> restore spfile from '/backup/fra/AUTOBACKUP/snapcf_dup.f'; ``` 恢复 SPFILE 后,RMAN 会自动关闭实例并用新的 SPFILE 重新启动。 --- #### ✅ 场景二:你没有 SPFILE 备份,需要手动创建 PFILE 如果你没有备份,也可以手动创建一个最简版的 PFILE 来启动实例。 编辑文件: ```bash vi /u01/app/oracle/product/112/dbs/initdup.ora ``` 内容示例(根据你的 SID 修改): ```ini db_name=dup memory_target=1G control_files='/u01/app/oracle/oradata/dup/control01.ctl' compatible='11.2.0' ``` 保存后再次运行: ```rman RMAN> startup nomount; ``` 这次就不会报错了。 --- #### ✅ 场景三:你知道原数据库用了 SPFILE,并且 FRA 存在自动备份 确保你知道自动备份的位置(通常是 `$ORACLE_HOME/dbs` 或 Fast Recovery Area)。可以通过以下方式查找 `.bkp` 文件: ```bash find $FRA -name "spfile*" -o -name "snapcf*" | xargs ls -lt ``` 然后在 RMAN 中指定恢复源: ```rman RMAN> restore spfile from '/recovery_area/DUP/autobackup/snapcf_DUP.f'; ``` --- ### ✅ 补充说明:init.ora vs spfile - Oracle 默认查找顺序: 1. `spfile<SID>.ora` → `$ORACLE_HOME/dbs/spfiledup.ora` 2. `init<SID>.ora` → `$ORACLE_HOME/dbs/initdup.ora` - 如果两者都不存在,则启动失败(除非用于恢复) --- ### ✅ 总结 | 问题 | 解释 | |------|------| | `ORA-01078`, `LRM-00109` | 参数文件缺失 | | 实例仍启动? | 是,RMAN 使用最小配置启动实例用于恢复 | | 是否需要处理? | 只有当你不能继续恢复时才需干预 | | 正确做法? | 使用 `restore spfile from autobackup` 恢复 SPFILE | --- ### ✅ 推荐后续命令流程(假设你在恢复整个库) ```rman # 第一步:启动实例(即使报错也没关系) RMAN> startup nomount; # 第二步:从自动备份恢复 SPFILE RMAN> restore spfile from autobackup; # 第三步:关闭实例并用新 SPFILE 重启 RMAN> shutdown immediate; RMAN> startup nomount; # 第四步:恢复控制文件 RMAN> restore controlfile from autobackup; # 第五步:挂载数据库 RMAN> alter database mount; # 第六步:恢复数据文件 RMAN> restore database; # 第七步:应用归档日志和 redo(可选) RMAN> recover database; # 第八步:打开数据库(如果是不完全恢复,需要用 resetlogs) RMAN> alter database open resetlogs; ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值