测试环境:我通过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 closed(ORA-16196:以前曾打开和关闭过数据库)
查到的资料是:The instance has already opened and closed the database,which is allowed only once in its lifetime.(一个实例在它的生命周期里只能执行一次打开和关闭数据库。)
其实也只能执行一次装载卸载,因为没有“alter database nomount;”存在。