zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

ORA-26663 Oracle Streams 在删除进程出错

Oracle进程 删除 出错 Streams ORA
2023-09-14 08:59:38 时间
配置Streams时在删除进程出错ORA-26663:
SQL exec dbms_apply_adm.drop_apply(TARGET_APPLY_STREAM);
BEGIN dbms_apply_adm.drop_apply(TARGET_APPLY_STREAM); END;

*
ERROR at line 1:
ORA-26663: error queue for apply process ORA-26663: error queue for apply
process TARGET_APPLY_STREAM must be empty
must be empty
ORA-06512: at "SYS.DBMS_APPLY_ADM_INTERNAL", line 359
ORA-06512: at "SYS.DBMS_APPLY_ADM_INTERNAL", line 334
ORA-06512: at "SYS.DBMS_APPLY_ADM", line 690
ORA-06512: at line 1

这些需要删除表中的错误信息:
select * from dba_apply_error


exec DBMS_APPLY_ADM.DELETE_ALL_ERRORS(apply_name= TARGET_APPLY_STREAM)

再次执行可以
 exec dbms_apply_adm.drop_apply(TARGET_APPLY_STREAM);

删除配置的进程如下:
select capture_name from dba_capture
exec dbms_capture_adm.drop_capture(CAPTURE_STREAM)

select propagation_name from dba_propagation
exec dbms_propagation_adm.drop_propagation(SOURCE_TO_TARGET)

select apply_name from dba_apply
exec dbms_apply_adm.drop_apply(TARGET_APPLY_STREAM)

清除整个streams配置:(这会删除整个数据库中的Streams配置,如果有两个streams的用户,会把这两个用户的进程删清楚掉)
exec dbms_streams_adm.remove_streams_configuration;


实现批量Kill Oracle会话进程 有时业务DML高并发操作会导致表出现很多锁的情况,甚至需要登录服务器kill进程才能完全解锁,此时就需要能够批量Kill Oracle会话进程的脚本,来减轻操作的压力。