REMOVE_STREAMS_CONFIGURATION過程清除流環境報錯ORA-24042
利用DBMS_STREAMS_ADM包的REMOVE_STREAMS_CONFIGURATION過程清理流環境時,碰到了ORA-24042錯誤。
Oracle10203版本,執行下面清除過程報錯:
SQL> CONN STRMADMIN/STRMADMIN@192.25.1.101/YANGTK.COMPUTE
已連線。
SQL> SELECT COUNT(*) FROM ALL_CAPTURE;
COUNT(*)
----------
1
SQL> SELECT COUNT(*) FROM ALL_PROPAGATION;
COUNT(*)
----------
1
SQL> SELECT COUNT(*) FROM ALL_APPLY;
COUNT(*)
----------
0
SQL> EXEC DBMS_STREAMS_ADM.REMOVE_STREAMS_CONFIGURATION
BEGIN DBMS_STREAMS_ADM.REMOVE_STREAMS_CONFIGURATION; END;
*
第 1 行出現錯誤:
ORA-24042: 不存在 QUEUE "STRMADMIN"."STREAMS_QUEUE" 及 DESTINATION
STREAM1.COMPUTE 的傳播日程
ORA-06512: 在 "SYS.DBMS_STREAMS_ADM", line 1846
ORA-06512: 在 line 1
顯然錯誤和傳播程式有關,檢查執行過程中的流環境:
SQL> SELECT COUNT(*) FROM ALL_CAPTURE;
COUNT(*)
----------
0
SQL> SELECT COUNT(*) FROM ALL_PROPAGATION;
COUNT(*)
----------
1
捕獲程式被清除了,但是傳播過程並沒有被清除。
查詢metalink,發現是Oracle的bug,在10204以前的版本,如果部署了QUEUE TO QUEUE的傳播方式,則利用REMOVE_STREAMS_CONFIGURATION過程清理流環境就會報錯。在metalink上對應的錯誤號為Bug 4627457,文件ID 4627457.8詳細描述了這個問題。
在11g和10204中FIX了這個bug,如果碰到這個錯誤,只能透過手工清除的方法來解決。
SQL> SELECT PROPAGATION_NAME FROM ALL_PROPAGATION;
PROPAGATION_NAME
------------------------------
TABLE_SINGLE_STREAM
SQL> EXEC DBMS_PROPAGATION_ADM.DROP_PROPAGATION('TABLE_SINGLE_STREAM', TRUE)
PL/SQL 過程已成功完成。
SQL> SELECT PROPAGATION_NAME FROM ALL_PROPAGATION;
未選定行
下面還需要清除對應的RULE和RULESET:
SQL> SELECT RULE_OWNER, RULE_NAME, RULE_CONDITION
2 FROM DBA_RULES
3 WHERE RULE_OWNER = 'STRMADMIN';
RULE_OWNER RULE_NAME RULE_CONDITION
---------- ----------- -----------------------------------------------------------------------------
STRMADMIN T_STREAM18 (((:dml.get_object_owner() = 'YANGTK' and :dml.get_object_name() = 'T_STREAM'
STRMADMIN T_STREAM19 (((:ddl.get_object_owner() = 'YANGTK' and :ddl.get_object_name() = 'T_STREAM'
SQL> SELECT RULE_SET_OWNER, RULE_SET_NAME, RULE_OWNER, RULE_NAME
2 FROM DBA_RULE_SET_RULES
3 WHERE RULE_NAME IN ('T_STREAM18', 'T_STREAM19');
RULE_SET_OWNER RULE_SET_NAME RULE_OWNER RULE_NAME
------------------------------ ------------------------------ ---------- -----------
STRMADMIN RULESET$_20 STRMADMIN T_STREAM19
STRMADMIN RULESET$_20 STRMADMIN T_STREAM18
SQL> SELECT RULE_SET_OWNER, RULE_SET_NAME
2 FROM DBA_RULE_SETS
3 WHERE RULE_SET_NAME = 'RULESET$_20';
RULE_SET_OWNER RULE_SET_NAME
------------------------------ ------------------------------
STRMADMIN RULESET$_20
SQL> EXEC DBMS_RULE_ADM.DROP_RULE_SET('RULESET$_20', TRUE)
PL/SQL 過程已成功完成。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-678615/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle9i流環境清除(三)Oracle
- Oracle9i流環境清除(二)Oracle
- Oracle9i流環境清除(一)Oracle
- GOLDENGATE 清除DDL環境Go
- macaca 環境配置報錯Mac
- MySQL 建立儲存過程報錯MySql儲存過程
- Win環境至Linux環境Oracle資料庫遷移全過程LinuxOracle資料庫
- 測試環境匯出至開發環境過程記錄 expdp、impdp開發環境
- Windows 環境安裝 Horizon 報錯解決Windows
- fabric網路環境啟動過程詳解
- SUSE11環境下NFS Server搭建過程NFSServer
- [分享]一次Jdon環境搭建全過程
- AIX 使用者工作環境建立的過程AI
- 查詢儲存過程報錯資訊儲存過程
- node-sass生產環境編譯報錯編譯
- (轉)Oracle rac環境下清除asm例項OracleASM
- 深入理解Fabric環境搭建的詳細過程
- 搭建yarn(hadoop-2.2.0)環境詳細過程YarnHadoop
- 神通資料庫測試環境調優過程資料庫
- 【SqlServer】清除過期資料的儲存過程SQLServer儲存過程
- 流機制環境準備
- jdbc使用call呼叫儲存過程報錯JDBC儲存過程
- pl/sql developer除錯儲存過程報錯處理SQLDeveloper除錯儲存過程
- RAC環境TNS-12541報錯處理
- RAC環境的STANDBY資料庫備份報錯資料庫
- 9201中文環境執行WRAP報錯kgepop
- Solaris 10 x86環境下安裝gcc過程GC
- Java初學者:Jsp開發環境配置全過程JavaJS開發環境
- MySQL過程報 Parameter number N is not an OUT parameter錯誤MySql
- 安裝sysbench過程報錯,解決辦法
- Go多協程併發環境下的錯誤處理Go
- Windows下hadoop環境搭建之NameNode啟動報錯WindowsHadoop
- MAC環境下PHP開發除錯環境搭建MacPHP除錯
- Mac下Apache+MySQL+PHP開發環境安裝過程MacApacheMySqlPHP開發環境
- oracle 19c dg搭建duplicate過程中報錯Oracle
- 11.2通過資料庫鏈呼叫10.2過程報錯資料庫
- Mac環境安裝mysqlclient報錯not fund mysql_configMacMySqlclient
- lnmp環境搭建好後,,,,解析php檔案報錯 502LNMPPHP