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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- macaca 環境配置報錯Mac
- Win環境至Linux環境Oracle資料庫遷移全過程LinuxOracle資料庫
- fabric網路環境啟動過程詳解
- Windows 環境安裝 Horizon 報錯解決Windows
- 【SqlServer】清除過期資料的儲存過程SQLServer儲存過程
- 神通資料庫測試環境調優過程資料庫
- node-sass生產環境編譯報錯編譯
- jdbc使用call呼叫儲存過程報錯JDBC儲存過程
- 關於“心流”與“環境”
- Go多協程併發環境下的錯誤處理Go
- Windows下hadoop環境搭建之NameNode啟動報錯WindowsHadoop
- Mac環境安裝mysqlclient報錯not fund mysql_configMacMySqlclient
- MAC環境下PHP開發除錯環境搭建MacPHP除錯
- Linux下-LNMP環境搭建部落格網站(全過程)LinuxLNMP網站
- linux環境下安裝mysql8.0過程介紹GMFXLinuxMySql
- oracle 19c dg搭建duplicate過程中報錯Oracle
- 記一次LNMP環境配置過程,以及Linux命令筆記LNMPLinux筆記
- hyperf配置yasd除錯環境除錯
- 環境藝術設計 環境藝術設計課程 招聘
- MySQL Xtrabackup真實生產環境搭建主從複製全過程MySql
- 應用儲存過程執行報錯解決方案儲存過程
- ovftool匯出虛擬機器報錯處理過程!虛擬機
- windbg 搭建雙擊除錯環境除錯
- vs搭建遠端除錯環境除錯
- 解決Pycharm配置R語言環境報錯RWrapper terminated, exitcode: 127PyCharmR語言APP
- 執行npm install 和 yarn 命令時報錯找不到python環境NPMYarnPython
- window環境下npm install node-sass報錯的解決方法NPM
- 【ansible】關於ansible執行過程中載入環境變數問題變數
- 產品團隊管理 - 統一研發環境,提效研發過程
- python之異常捕獲&清除的列印報錯行Python
- webpack打包過程如何除錯?Web除錯
- Activiti配置工作流結束過程
- PHP-Php-fpm:報錯找不到Java_Home等環境變數PHPJava變數
- SAP雲平臺CloudFoundry環境裡route 超過quota的錯誤處理Cloud
- risc-v環境搭建及除錯除錯
- Vue生產環境除錯的方法Vue除錯
- step 1 :搭建開發除錯環境除錯
- Flutter開發環境搭建和除錯Flutter開發環境除錯
- java配置環境變數的錯誤Java變數