li
  当前位置:主页 > 备份恢复 > 文章内容
li
RMAN的PIPE接口
来源: http://yangtingkun.itpub.net/  作者: yangtingkun    时间:2008-01-26   阅读:14  
本文章共2088字,分2页,当前第1页,快速翻页:
 

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


今天研究了一下,发现使用起来还是比较简单方便的:

首先,以PIPE方式启动RMAN,其中P1是管道的名称:

F:>RMAN PIPE P1 TARGET /@TEST NOCATALOG

恢复管理器: 版本9.2.0.4.0 - Production

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

PIPE方式启动RMAN,RMAN一直处于运行状态,并等待从管道中发送来的命令。而且,RMAN的输出也不会打印到屏幕上,而是在管道上发送。

然后就可以通过DBMS_PIPE包给RMAN发送命令,并接收返回消息了。和RMAN进行交互的管道名称为ORA$RMAN_pipename_IN和ORA$RMAN_pipename_OUT。其中pipename就是RMAN命令里包含的管道名称。

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

PL/SQL 过程已成功完成。

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 /
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:ORACLEORACLE920DATABASESNCFTEST.ORA'; # default
RMAN-00572: waiting for dbms_pipe input

PL/SQL 过程已成功完成。

通过DBMS_PIPE包就可以RMAN进行交互了,下面让RMAN执行数据库的全备:

SQL> DECLARE
2 V_INPUT VARCHAR2(32767) := 'BACKUP DATABASE;';
3 V_OUT NUMBER;
4 BEGIN
5 DBMS_PIPE.PACK_MESSAGE(V_INPUT);
6 V_OUT := DBMS_PIPE.SEND_MESSAGE('ORA$RMAN_P1_IN');
7 DBMS_OUTPUT.PUT_LINE(V_OUT);
8 COMMIT;
9 END;
10 /
0

PL/SQL 过程已成功完成。

SQL> DECLARE

www.ixdba.net


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 /
启动 backup 于 02-4月 -06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=16 devtype=DISK
通道 ORA_DISK_1: 正在启动 full 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=F:ORACLEORADATATESTSYSTEM01.DBF
输入数据文件 fno=00002 name=F:ORACLEORADATATESTUNDOTBS01.DBF
输入数据文件 fno=00006 name=F:ORACLEORADATATESTYANGTK01.DBF
输入数据文件 fno=00003 name=F:ORACLEORADATATESTINDX01.DBF


阅读更多内容1 · 2 · 下一页>>


  上一篇: RMAN的PIPE接口(二)   下一篇: 同一个表空间能否被多个数据库同...
li
 §相关评论  
 热点文章

·Oracle数据库远程复制与异地容
·Oracle 11g备份恢复功能增强
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·使用Flashback Query 恢复误删
·如何开启/关闭oracle的归档
·Rman的format格式中的%s类似的
·怎么样创建RMAN恢复目录
·ORA-01843:无效的月份,这个是
·ORA-01843:无效的月份
li
 编辑推荐
·Oracle数据库远程复制与异地容
·Oracle 11g备份恢复功能增强
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·使用Flashback Query 恢复误删
·如何开启/关闭oracle的归档
·Rman的format格式中的%s类似的
·怎么样创建RMAN恢复目录
·ORA-01843:无效的月份,这个是
·ORA-01843:无效的月份
li
 相关篇章
·RMAN的PIPE接口(二)
·RMAN备份过程中调整系统时间的BU...
·Rman恢复出现Segment Fault
·使用JOB定时备份数据库
·RMAN备份的并行
·RMAN备份恢复之BLOCKRECOVER
·RMAN备份恢复之归档日志对BLOCKR...
·RMAN备份多个备份集到带库的小bu...
·RMAN备份恢复之控制文件的恢复(...
·利用NETBACKUP将备份写到磁盘上
·同一个表空间能否被多个数据库同...
·重建控制文件会导致密码文件发生...
·RMAN备份过程中调整系统时间的BU...
·恢复之归档日志文件破损(三)
·一次意外导致的ORA-600[3004]错误...
·恢复之归档日志文件破损(二)
·恢复过程中的ORA-1113错误(二)
·恢复之归档日志文件破损(一)
·恢复之缺失归档日志文件
·恢复之使用非当前控制文件恢复只...
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接