四、 清除Streams复制环境


一方面是为了方便后面的测试环境搭建,一方面也是因为10g中Streams复制环境的移除非常简单,因此将此做为本章最后一小节。


要移除整个复制环境非常简单,只需在源端目标端以STREAMS管理员帐号登陆,并分别执行 dbms_streams_adm.remove_streams_configuration ,如例 :


JSSWEB> conn strmadmin/strmadmin


Connected.


JSSWEB > exec dbms_streams_adm.remove_streams_configuration;


PL/SQL procedure successfully completed


JSSSTR> conn strmadmin/strmadmin


Connected.


JSSSTR > exec dbms_streams_adm.remove_streams_configuration;


PL/SQL procedure successfully completed


然后视需求删除STREAMS管理员帐号及所属表空间即可。


正常情况下,执行 DBMS_STREAMS_ADM.REMOVE_STREAMS_CONFIGURATION 会进行下列操作:


删除所有capture进程。


如果仍有表正准备初始化,则通过DBMS_CAPTURE_ADM.ABORT_TABLE_INSTANTIATION过程中止。


如果仍有schema正准备初始化,则通过DBMS_CAPTURE_ADM.ABORT_SCHEMA_INSTANTIATION过程中止。


如果数据库仍正准备初始化,则通过DBMS_CAPTURE_ADM.ABORT_GLOBAL_INSTANTIATION过程中止。


删除propagation进程(DBMS_AQADM包创建的propagation不会被删除),删除之前,传播任务将会被禁止。


禁止所有传播任务。


删除所有apply进程。如果apply进程存在应用错误,则在删除apply进程前会首先删除这些应用错误。


删除apply进程的DDL handlers,不过用于handlers的pl/sql过程不会被删除。


删除apply进程的message handlers,同样用于handlers的pl/sql过程不会被删除。


删除apply进程的precommit handlers,用于handlers的pl/sql过程不会被删除。


删除所有应用对象,schema的instantiation SCN和ignore SCN。


删除消息客户端


重置使用DBMS_STREAMS_ADM.SET_MESSAGE_NOTIFICATION设置的message notification specifications


删除DML handlers和error handlers,用于handlers的pl/sql过程不会被删除。


删除update conflict handlers。


删除apply tables的substitute key columns。


删除DBMS_STREAMS_ADM创建的规则集。但不会删除DBMS_RULE_ADM创建的规则集。


提示:


在执行删除capture/apply进程前会首先停止这些进程。 REMOVE_STREAMS_CONFIGURATION 过程可 重 复执行(不管是否执行成功) ,如果执行出错,可在解决造成错误的原因后重新执行


该过程。


另外,有时候直接执行REMOVE_STREAMS_CONFIGURATION会报错,这个时候可以尝试通过DBMS_CAPTURE_ADM/DBMS_PROPAGATION_ADM/DBMS_APPLY_ADM手工停止并删除捕获/传播/应用进程,


然后再执行REMOVE_STREAMS_CONFIGURATION过程。


oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html