RMAN的PIPE接口(二)

RMAN除了支持交互式和批处理式,还支持一种PIPE的接口,通过这种PIPE接口,可以在ORACLE中将各种命令发送给RMAN。

这篇讨论一下RMAN的PIPE接口的第二种使用方法。

RMAN的PIPE接口:http://yangtingkun.itpub.net/post/468/65127


如果先启动PIPE方式工作的RMAN,那么RMAN会一直处于等待命令的方式。直到RMAN接收到退出的命令。

这种方式是由RMAN来创建管道。这种方式就是前面文章介绍的。

这里还可以通过PL/SQL方式显示创建一个管道,并发出相应的命令。RMAN以PIPE方式启动时可以指定TIMEOUT为0,这样读取管道中的命令并执行完所有的命令后,自动退出。

SQL> SET SERVEROUT ON SIZE 1000000
SQL> DECLARE
2 V_INPUT VARCHAR2(32767) := 'SHOW ALL;';
3 V_OUT NUMBER;
4 BEGIN
5 V_OUT := DBMS_PIPE.CREATE_PIPE('ORA$RMAN_P1_IN', 32767, TRUE);
6 DBMS_OUTPUT.PUT_LINE(V_OUT);
7 DBMS_PIPE.PACK_MESSAGE(V_INPUT);
8 V_OUT := DBMS_PIPE.SEND_MESSAGE('ORA$RMAN_P1_IN');
9 DBMS_OUTPUT.PUT_LINE(V_OUT);
10 V_INPUT := 'BACKUP DATABASE;';
11 DBMS_PIPE.PACK_MESSAGE(V_INPUT);
12 V_OUT := DBMS_PIPE.SEND_MESSAGE('ORA$RMAN_P1_IN');
13 DBMS_OUTPUT.PUT_LINE(V_OUT);
14 COMMIT;
15 END;
16 /
0
0
0

PL/SQL 过程已成功完成。

下面以PIPE方式启动RMAN:

F:>RMAN PIPE P1 TARGET /@TEST1 TIMEOUT = 0

恢复管理器: 版本9.2.0.4.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.


F:>

RMAN操作结束后,可以通过管道查看RMAN的输出信息:

SQL> DECLARE
2 V_OUTPUT VARCHAR2(32767);
3 V_OUT NUMBER := 0;
4 BEGIN
5 WHILE (V_OUT = 0) LOOP
6 V_OUT := DBMS_PIPE.RECEIVE_MESSAGE('ORA$RMAN_P1_OUT', 5);
7 IF V_OUT = 0 THEN
8 DBMS_PIPE.UNPACK_MESSAGE(V_OUTPUT);
9 DBMS_OUTPUT.PUT_LINE(V_OUTPUT);
10 END IF;
11 END LOOP;
12 COMMIT;
13 END;
14 /
连接到目标数据库: TEST1 (DBID=974710760)
RMAN-00572: waiting for dbms_pipe input
正在使用目标数据库控制文件替代恢复目录
RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'F:ORACLEORACLE920DATABASESNCFTEST1.ORA'; # default
RMAN-00572: waiting for dbms_pipe input
启动 backup 于 03-6月 -07
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
通道 ORA_DISK_1: 正在启动 full 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=F:ORACLEORADATATEST1SYSTEM01.DBF
输入数据文件 fno=00002 name=F:ORACLEORADATATEST1UNDOTBS01.DBF
输入数据文件 fno=00008 name=F:ORACLEORADATATEST1YANGTK01.DBF
输入数据文件 fno=00007 name=F:ORACLEORADATATEST1XDB01.DBF
输入数据文件 fno=00004 name=F:ORACLEORADATATEST1INDX01.DBF
输入数据文件 fno=00006 name=F:ORACLEORADATATEST1USERS01.DBF
输入数据文件 fno=00003 name=F:ORACLEORADATATEST1DRSYS01.DBF
输入数据文件 fno=00005 name=F:ORACLEORADATATEST1TOOLS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 03-6月 -07
通道 ORA_DISK_1: 已完成段 1 于 03-6月 -07
段 handle=F:ORACLEORACLE920DATABASE3IJABGR_1_1 comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:02:06
完成 backup 于 03-6月 -07
RMAN-00572: waiting for dbms_pipe input
恢复管理器完成。

PL/SQL 过程已成功完成。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-69297/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/4227/viewspace-69297/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值