以前写过9i的流环境的清除,从10g以后流封装了一个过程用于清除所有的流的配置,使得清除流环境变得十分轻松。
Oracle9i流环境清除(一):http://yangtingkun.itpub.net/post/468/414098
Oracle9i流环境清除(二):http://yangtingkun.itpub.net/post/468/414104
Oracle9i流环境清除(三):http://yangtingkun.itpub.net/post/468/414105
在10g中,Oracle新增了REMOVE_STREAMS_CONFIGURATION过程,只需要在参与流复制的节点分别执行这个过程就可以了:
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
PL/SQL 过程已成功完成。
SQL> SELECT COUNT(*) FROM ALL_CAPTURE;
COUNT(*)
----------
0
SQL> SELECT COUNT(*) FROM ALL_PROPAGATION;
COUNT(*)
----------
0
SQL> CONN STRMADMIN/STRMADMIN@192.25.1.101/STREAM1.COMPUTE
已连接。
SQL> SELECT COUNT(*) FROM ALL_CAPTURE;
COUNT(*)
----------
0
SQL> SELECT COUNT(*) FROM ALL_PROPAGATION;
COUNT(*)
----------
0
SQL> SELECT COUNT(*) FROM ALL_APPLY;
COUNT(*)
----------
1
SQL> EXEC DBMS_STREAMS_ADM.REMOVE_STREAMS_CONFIGURATION
PL/SQL 过程已成功完成。
SQL> SELECT COUNT(*) FROM ALL_APPLY;
COUNT(*)
----------
0
这种方式清除流环境比手工删除捕获、传播和应用要方便得多。不过需要注意,这个过程并不会清除队列表,如果需要清除,需要手工方式清除:
SQL> CONN STRMADMIN/STRMADMIN@192.25.1.101/YANGTK.COMPUTE
已连接。
SQL> EXEC DBMS_STREAMS_ADM.REMOVE_QUEUE('STREAMS_QUEUE', TRUE, TRUE)
PL/SQL 过程已成功完成。
SQL> CONN STRMADMIN/STRMADMIN@192.25.1.101/STREAM1.COMPUTE
已连接。
SQL> EXEC DBMS_STREAMS_ADM.REMOVE_QUEUE('STREAMS_QUEUE', TRUE, TRUE)
PL/SQL 过程已成功完成。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4227/viewspace-673216/ ,如需转载,请注明出处,否则将追究法律责任。