配置文件的主要作用记录各部分内存结构的值和控制文件的位置。
1、模拟服务器上的spfile、pfile丢失
[oracle@redhat4 dbs]$ rm spfileorcl.ora [oracle@redhat4 dbs]$ rm initorcl.ora
SQL> startup nomount ORA-01078: failure in processing system parameters LRM-00109: ������������������������ '/u01/app/oracle/product/10.2.0/db_1/dbs/initjiagulun.ora' SQL>
(1)、有rman备份的情况
事先使用rman备份过全库或者配置文件,如果要恢复也要启动到mounted状态,就是必须读到控制文件信息。所以修改init.ora模板文件使oracle能启动内存结构和找到控制文件位置。
修改init.ora,主要修改实例名(db_name)和控制文件位置(control_files),控制文件可以通过find查找ctl后缀的文件得到
db_name = orcl control_files = (/u01/app/oracle/oradata/JIAGULUN/controlfile/o1_mf_7p5b2xty_.ctl,/u01/app/oracle/oradata/JIAGULUN/controlfile/o1_mf_7p5b2xty_.ctl)
使用sqlplus启动oracle到nomount状态
SQL> startup nomount ORA-32004: obsolete and/or deprecated parameter(s) specified ORA-00371: not enough shared pool memory, should be atleast 128265318 bytes原因是shared pool设置的太小,修改initorcl.ora将shared_pool_size修改为100M,再启动
SQL> startup nomount; ORA-32004: obsolete and/or deprecated parameter(s) specified ORACLE 例程已经启动。 Total System Global Area 171966464 bytes Fixed Size 2019352 bytes Variable Size 134221800 bytes Database Buffers 33554432 bytes Redo Buffers 2170880 bytes SQL>
SQL> alter database mount; alter database mount * 第 1 行出现错误: ORA-00201: ?????? 10.2.0.1.0 ? ORACLE ?? 10.2.0.0.0 ??? ORA-00202: ????: ''/u01/app/oracle/oradata/JIAGULUN/controlfile/o1_mf_7p5b2xty_.ctl''
这个错误解决后,oracle就可以启动到mounted状态,就可以使用rman恢复spfile了
使用rman 查看spfle的备份记录
RMAN> list backup of spfile; 备份集列表 =================== BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间 ------- ---- -- ---------- ----------- ------------ ---------- 1181 Full 1.34M DISK 00:00:02 09-6月 -13 BP 关键字: 1240 状态: EXPIRED 已压缩: YES 标记: TAG20130609T194357 段名:/oradata/whole_51obpfaa_1_1_20130609 包含的 SPFILE: 修改时间: 04-6月 -13 BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间 ------- ---- -- ---------- ----------- ------------ ---------- 1242 Full 1.34M DISK 00:00:02 14-6月 -13 BP 关键字: 1303 状态: EXPIRED 已压缩: YES 标记: TAG20130614T185730 段名:/oradata/whole_6uoc6ij8_1_1_20130614 包含的 SPFILE: 修改时间: 04-6月 -13 BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间 ------- ---- -- ---------- ----------- ------------ ---------- 1250 Full 1.36M DISK 00:00:02 21-6月 -13 BP 关键字: 1313 状态: EXPIRED 已压缩: YES 标记: TAG20130621T184613 段名:/oradata/whole_76ocp0k9_1_1_20130621 包含的 SPFILE: 修改时间: 04-6月 -13 BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间 ------- ---- -- ---------- ----------- ------------ ---------- 1263 Full 1.36M DISK 00:00:02 28-6月 -13 BP 关键字: 1328 状态: EXPIRED 已压缩: YES 标记: TAG20130628T180559 段名:/oradata/whole_7jodbcnh_1_1_20130628 包含的 SPFILE: 修改时间: 04-6月 -13 BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间 ------- ---- -- ---------- ----------- ------------ ---------- 1284 Full 1.36M DISK 00:00:02 09-8月 -13 BP 关键字: 1352 状态: EXPIRED 已压缩: YES 标记: TAG20130809T184548 段名:/oradata/whole_88ogsr8t_1_1_20130809 包含的 SPFILE: 修改时间: 12-7月 -13 BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间 ------- ---- -- ---------- ----------- ------------ ---------- 1307 Full 1.36M DISK 00:00:02 16-8月 -13 BP 关键字: 1381 状态: AVAILABLE 已压缩: YES 标记: TAG20130816T144243 段名:/oradata/backup/whole_91oheroh_1_1_20130816 包含的 SPFILE: 修改时间: 16-8月 -13
RMAN> restore spfile from '/oradata/backup/whole_91oheroh_1_1_20130816'; 启动 restore 于 22-8月 -13 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: sid=51 devtype=DISK 通道 ORA_DISK_1: 已找到的自动备份: /oradata/backup/whole_91oheroh_1_1_20130816 通道 ORA_DISK_1: 从自动备份复原 SPFILE 已完成 完成 restore 于 22-8月 -13
小结:配备文件很重要,参数文件没更改一下建议做一次备份。
2、没有任何备份,手工建立参数文件
使用init模板文件,因为模板文件注释较多可以使用以下命令去掉注释
cat init.ora |grep -v ^# |grep -v ^$ >initorcl.ora将得到的参数进行修改成实际的,启动即可。