RMAN-03002 RMAN-06091,9i

来源:互联网 发布:软件论坛 编辑:程序博客网 时间:2024/04/30 03:16
写了一个备份脚本:其中备份完之后,删除过期备份,保证空间可用。

 

点击(此处)折叠或打开

  1. run{
  2.  allocate channel d1 device type disk;
  3.  allocate channel d2 device type disk;
  4.  backup as compressed backupset DATABASE include CURRENT controlfile;
  5.  delete noprompt obsolete redundancy 1; 
  6.  release channel d1;
  7.  release channel d2;
  8. }
原本 在 oracle 10g下运行良好。
可是在9i  中运行报错
    
 RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of delete command at 12/30/2013 13:51:36
RMAN-06091: no channel allocated for maintenance (of an appropriate type)

没有可用的维护通道,于是加入 ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE disk;
总是提示:
RMAN-00558: error encountered while parsing input commands
RMAN-01005: syntax error: found "for": expecting one of: "channel_id, double-quoted-string, identifier, single-quoted-string"
RMAN-01007: at line 5 column 18 file: standard input

查询官方文档明确指出: ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE disk; 是不包含在RUN块中的

  • Execute this command only at the RMAN prompt. This command cannot be used within a RUN block.


但是又不想写2个脚本。多次尝试
ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE disk; 这个放在RUN块之外,最底层,问题解决了

正确的脚本:


点击(此处)折叠或打开

  1. ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE disk;
  2. run{
  3.  allocate channel d1 device type disk;
  4.  allocate channel d2 device type disk;
  5.  backup as compressed backupset DATABASE include CURRENT controlfile;
  6.  delete noprompt obsolete redundancy 1; 
  7.  release channel d1;
  8.  release channel d2;
  9. }
0 0
原创粉丝点击