测试环境:我通过RMAN管理器连接数据库,在数据各个状态时查询备份列表。数据库的状态切换由另一个sqlplus窗口执行


实验结果:RMAN管理器至少要等数据实例处于mount状态时才能查看备份列表。


出现错误:RMAN在数据库实例处于mount状态时能够正常查询,但是切换到open状态却出现了“ RMAN-20021: 数据库尚未设置 ”错误。


出错原因:数据库的状态切换由另一个sqlplus窗口执行,从mount到open状态切换后RMAN并没有获得数据库打开的通知,故此出错。

所以RMAN从新连接,或者所有的切换数据状态操作由RMAN执行,就不会出现该错误


以下是实验清单和笔记


RMAN> connect target


已连接到目标数据库 (未启动)


RMAN> list backup of database completed after 'sysdate - 5';(此时数据库处于shutdown状态)


使用目标数据库控制文件替代恢复目录

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: list 命令 (在 11/14/2013 15:33:30 上) 失败

RMAN-06403: 无法获得完全授权的会话

ORA-01034: ORACLE not available

ORA-27101: shared memory realm does not exist


RMAN> list backup of database completed after 'sysdate - 5';(此时数据库处于nomount状态)


RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: list 命令 (在 11/14/2013 15:34:21 上) 失败

ORA-01507: 未装载数据库




RMAN> list backup of database completed after 'sysdate - 5';(此时数据库处于mount状态)



备份集列表

===================



BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间

------- ---- -- ---------- ----------- ------------ ----------

2       Full    1.09G      DISK        00:01:43     14-11月-13

       BP 关键字: 2   状态: AVAILABLE  已压缩: NO  标记: TAG20131114T131834

段名:G:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\GUJUNPU\BACKUPSET\2013_11_14\O1_MF_NNNDF_TAG20131114T131834_988Q9D1P_.BKP

 备份集 2 中的数据文件列表

 文件 LV 类型 Ckp SCN    Ckp 时间   名称

 ---- -- ---- ---------- ---------- ----

 1       Full 2609026    14-11月-13 G:\APP\ADMINISTRATOR\ORADATA\GUJUNPU\SYSTEM01.DBF

 2       Full 2609026    14-11月-13 G:\APP\ADMINISTRATOR\ORADATA\GUJUNPU\SYSAUX01.DBF

 3       Full 2609026    14-11月-13 G:\APP\ADMINISTRATOR\ORADATA\GUJUNPU\UNDOTBS01.DBF

 4       Full 2609026    14-11月-13 G:\APP\ADMINISTRATOR\ORADATA\GUJUNPU\USERS01.DBF


RMAN> list backup of database completed after 'sysdate - 5';(此时数据库处于open状态)


RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: list 命令 (在 11/14/2013 15:36:19 上) 失败

RMAN-20021: 数据库尚未设置


     这里要提到的几点:

     1.我退出RMAN重新连接,可以正常显示备份列表。接着,我尝试用那个sqlplus窗口close数据库到mount模式再验证一下。

结果出现了ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected

     很简单,因为我这个时候的RMAN跟数据库实例还有会话。

     2.我想反复open,close来验证,结果出现了ORA-16196: database has been previously opened and closedORA-16196:以前曾打开和关闭过数据库)

查到的资料是:The instance has already opened and closed the database,which is allowed only once in its lifetime.(一个实例在它的生命周期里只能执行一次打开和关闭数据库。)

其实也只能执行一次装载卸载,因为没有“alter database nomount;”存在。