今天上午在做RMAN实验时碰到了ORA-19550问题.ORA-19550 cannot use backup/restore functions while using dispatcher
Cause: An attempt was made to use backup/restore functions while connected to the dispatcher in a shared server. This is not allowed because the device that is used for backup and restore must remain allocated to a single process.Action: Connect directly to the instance then re-execute the backup or restore function.实验环境: win2000 advanced server,Oracle920RMAN实验过程简述:1. 建立了两个数据库practice和rcat,分别作为目标数据库和RMAN目录数据库.建库时二者都是采用共享服务器模式.建完库后分别启动两个实例.2. 在rcat上建立一个cattbs表空间和rman920用户,并授予用户connect和recovery_catalog_owner权限.3. 创建恢复目录治理器.RMAN>connect target sys/sys@practice;RMAN>connect catalog rman920/rman@rcat;RMAN>create catalog tablespace cattbs;(以下运行都是正常的)4. 注册数据库.RMAN>register database;这时出现了RMAN错误并在最后提示ORA-19550错误.解决方法:检查注册表,此时ORACLE_SID项的值是rcat.将它改为practice.然后运行rman target sys/sys;RMAN>connect catalog rman rman920/rman@rcat;RMAN>register database;就正常了.总结:1. 此问题出现在同一台机器上建两个库并启动两个实例的情况下.在windows下会出现这个问题,可能unix下也有类似问题(网上看到有人问同样问题,环境是unix).2. 这个问题的解决方式与ora-00106(无法在连接到调度程序时启动/关闭数据库)类似.可能二者都是在同时启动两个实例时才出现(未证实).3. 不管是从服务器端还是从客户端连接都有这个问题。疑问:连接时加不加网络名到底有什么区别?(本机登录的情况下)附注:从目录中注销一个数据库的方法:1. 删除该数据库的所有备份集。2. RMAN>list incarnation;得到db_key和db_id。3. 在sqlplus中执行execute dbms_rcvcat.unregisterdatabase(db_key,db_id);