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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RMAN之客戶端互動(二)客戶端
- 【RMAN】RMAN的備份保留策略
- [Bash] pipe intro
- OpenCL中的管道cl::Pipe的使用
- [Python] pipe模組Python
- pipe stderr into another process
- RMAN-06207和RMAN-06208的處理
- 精讀《pipe operator for JavaScript》JavaScript
- 【RMAN】RMAN備份至ASMASM
- Oracle 11G RAC複製備庫RMAN-03002 RMAN-05501 RMAN-03015 RMAN-03009 RMAN-10038Oracle
- RMAN中的通道分配
- RMAN的備份原理
- ORACLE rman與RMAN-00054&ORA-09945Oracle
- JavaScript中的compose函式和pipe函式JavaScript函式
- RMAN(轉)
- gRPC 的介面描述語言 ProtoBuffer(二)RPC
- 【RMAN】Oracle rman 常用命令參考Oracle
- RMAN恢復之RMAN-06555處理
- 對於Pipe管道之愛 - jessfraz
- Pandas - pandas.Series.pipe 函式函式
- Oracle vs PostgreSQL Develop(19) - PIPE ROWOracleSQLdev
- 資料遷移的時候出現RMAN-03002,RMAN-06026
- 【RMAN】在多租戶環境下的RMAN備份及恢復
- 線上生成二維碼的API介面API
- 【RMAN】在備庫執行rman備份時報錯RMAN-06820 ORA-17629
- linux程式間通訊--管道(PIPE & FIFO)Linux
- [20190116]rman的老問題.txt
- RMAN中的 debug調式命令
- RMAN 備份相關的概念
- typescript探索(二)- 介面與類TypeScript
- RMAN刪除歸檔日誌出現RMAN-0813錯誤的處理
- Airtest封裝的Tidevice介面有多好用(二)AI封裝IDEdev
- 小而美的 golang 部落格平臺 PipeGolang
- Python多程式之資料交換PipePython
- RMAN增量恢復
- RMAN備份概述
- Oracle9i RMAN 的優缺點及RMAN 備份及恢復步驟Oracle
- 在Linux中,管道(pipe)和重定向(redirection)的是什麼?Linux
- 記錄一次因subprocess PIPE 引起的線上故障