本实验室做当数据库在 open 和shutdown 的两种情况下spfile 和pfile 丢失的情况下的恢复。oracle@aoracle dbs]$ rman target rma
本实验室做当数据库在 open 和shutdown 的两种情况下spfile 和pfile 丢失的情况下的恢复。
Oracle@aoracle dbs]$ rman target rman_user/rman_user;
Recovery Manager: Release 10.2.0.1.0 - Production on Thu Dec 8 19:21:38 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: EZHOU (DBID=4046377924, not open)
RMAN> restore spfile;
Starting restore at 08-DEC-11
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=149 devtype=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 12/08/2011 19:21:56
RMAN-06564: must use the TO clause when the instance is started with SPFILE
RMAN> restore spfile to '/u02/rman/spfile.ora' from autobackup;
Starting restore at 08-DEC-11
using channel ORA_DISK_1
channel ORA_DISK_1: looking for autobackup on day: 20111208
channel ORA_DISK_1: autobackup found: /u02/rman/ctl_c-4046377924-20111208-00
channel ORA_DISK_1: SPFILE restore from autobackup complete
Finished restore at 08-DEC-11
RMAN>
把spfile 拷贝到$ORACLE_HOME/dbs下就可以了。
===================
下面进行:数据库处于关闭状态,丢失spfile,pfile
[oracle@aoracle dbs]$ mv spfileezhou.ora spfileezhou.ora_b
[oracle@aoracle dbs]$ mv initezhou.ora initezhou.ora_b
[oracle@aoracle dbs]$ ls -l *ezhou*.ora*
-rw-r--r-- 1 oracle oinstall 986 Dec 6 19:27 initezhou.ora_b
-rw-r----- 1 oracle oinstall 2560 Dec 8 19:38 spfileezhou.ora_b
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
[oracle@aoracle admin]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Dec 8 20:01:33 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup;
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/pp/oracle/product/10.2/db_1/dbs/initezhou.ora'
SQL> startup nomount;
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/pp/oracle/product/10.2/db_1/dbs/initezhou.ora'
SQL> startup force nomount;
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/pp/oracle/product/10.2/db_1/dbs/initezhou.ora'
SQL> !
[oracle@aoracle admin]$ rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Thu Dec 8 20:04:10 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database (not started)
RMAN> restore spfile from '/u02/rman/ctl_c-4046377924-20111208-00'
2> ;
Starting restore at 08-DEC-11
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 12/08/2011 20:05:29
RMAN-12010: automatic channel allocation initialization failed
RMAN-06403: could not obtain a fully authorized session
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory
RMAN> startup force nomount;
startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/pp/oracle/product/10.2/db_1/dbs/initezhou.ora'
starting Oracle instance without parameter file for retrival of spfile
Oracle instance started
Total System Global Area 159383552 bytes
Fixed Size 1218268 bytes
Variable Size 54528292 bytes
Database Buffers 100663296 bytes
Redo Buffers 2973696 bytes
RMAN> restore spfile from autobackup;
于 2011 年 12 月 8 日开始恢复
使用目标数据库控制文件而不是恢复目录
分配的通道:ORA_DISK_1
通道 ORA_DISK_1:sid=36 devtype=DISK
RMAN-00571:=============================================== ================
RMAN-00569: =============== 错误消息堆栈如下 ======== =======
RMAN-00571:======================================== =======================
RMAN-03002:在 12/08/2011 20:06:44
RMAN- 恢复命令失败06495:必须使用 SET DBID 命令显式指定 DBID
RMAN>设置 dbid 4046377924
执行命令:SET DBID
RMAN>从自动备份恢复spfile;
于 2011 年 12 月 8 日开始恢复
使用通道 ORA_DISK_1
频道 ORA_DISK_1:寻找当天的自动备份:20111208
频道 ORA_DISK_1:寻找当天的自动备份:20111207
频道 ORA_DISK_1:寻找当天的自动备份:20111206
频道 ORA_DISK_1:寻找当天的自动备份:20111205
通道 ORA_DISK_1:正在寻找自动备份日期:20111204
通道 ORA_DISK_1:正在寻找自动备份日期:20111203
通道 ORA_DISK_1:正在寻找自动备份日期:20111202
通道 ORA_DISK_1:否自动备份在发现 7 天
RMAN-00571:============================================ ===================
RMAN-00569: =============== 错误消息堆栈如下 ===== ==========
RMAN-00571: =================================== ==========================
RMAN-03002:在 12/08/2011 20:07:18 时恢复命令失败
RMAN-06172:找不到自动备份或指定的句柄不是有效的副本或片段
RMAN>从 '/u02/rman/ctl_c-4046377924-20111208-00' 恢复 spfile;
于 2011 年 12 月 8 日开始恢复
使用通道 ORA_DISK_1
通道 ORA_DISK_1:找到自动备份:/u02/rman/ctl_c-4046377924-20111208-00
通道 ORA_DISK_1:从自动备份恢复 SPFILE 已完成
已于 2011 年 12 月 8 日完成恢复
RMAN>
pfile从spfile创建就可以了。
========
总结: spfile 和 pfile 在数据库打开和关闭的两种情况下的成功恢复。