删除Ogg用户报ORA-00604、ORA-20782、ORA-20782、ORA-06512错误的解决方法
一、背景
搭建了一套ogg进行数据同步,并开启了DDL功能,后来因为不需要使用ogg,想将数据库里的ogg用户删除掉,结果删除报以下错误:
SQL> drop user ogg cascade;
drop user ogg cascade
*
第 1 行出现错误:
ORA-00604: 递归 SQL 级别 2 出现错误
ORA-20782: Oracle GoldenGate DDL Replication Error: Code :ORA-20782: Cannot
DROP object used in Oracle GoldenGate replication while trigger is enabled.
Consult Oracle GoldenGate documentation and/or call Oracle GoldenGate Technical
Support if you wish to do so., error stack: ORA-06512: 在 line 305
ORA-06512: 在 line 1267
二、原因分析
由于在安装OGG时,配置并开启了DDL捕获功能,而OGG的DDL捕获,是依赖DDL触发器实现的,DDL处于enabled状态,drop goldengate user操作也属于DDL操作,所以产生ORA-00604 ORA-20782错误
三、查看触发器状态
SQL> set linesize 999
SQL> select owner,trigger_name,trigger_type,triggering_event,status from dba_triggers where trigger_name like 'GGS%';
OWNER TRIGGER_NAME TRIGGER_TYPE TRIGGERING STATUS
------------------------------ ------------------------------ ---------------- ---------- --------
SYS GGS_DDL_TRIGGER_BEFORE BEFORE EVENT DDL ENABLED
四、将触发器删除
SQL> drop trigger sys.GGS_DDL_TRIGGER_BEFORE;
触发器已删除。
五、再执行删除ogg用户
SQL> drop user ogg cascade;
drop user ogg cascade
*
第 1 行出现错误:
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-14452: 试图创建, 变更或删除正在使用的临时表中的索引
六、查看正在使用的会话,然后kill掉
SQL> select 'alter system kill session '''||sid||','||serial#||''''||';'from v$session where sid in(select sid from v$lock where id1 in(select object_id from dba_objects where object_name in (select table_name from dba_tables where owner='OGG')));
'ALTERSYSTEMKILLSESSION'''||SID||','||SERIAL#||''''||';'
--------------------------------------------------------------------------------------------------------------
alter system kill session '63,7901';
alter system kill session '86,25811';
alter system kill session '142,56653';
alter system kill session '159,38375';
alter system kill session '167,15813';
alter system kill session '253,57101';
已选择6行。
SQL> alter system kill session '63,7901';
系统已更改。
SQL> alter system kill session '86,25811';
系统已更改。
```sql
SQL> alter system kill session '142,56653';
系统已更改。
SQL> alter system kill session '159,38375';
系统已更改。
SQL> alter system kill session '167,15813';
系统已更改。
SQL> alter system kill session '253,57101';
alter system kill session '253,57101'
*
第 1 行出现错误:
ORA-00027: 无法终止当前会话
七、在杀进程的时候报ORA-00027错误
ORA-00027 cannot kill current session
Cause
An attempt was made to use ALTER SYSTEM KILL SESSION to kill the current session.
Action
If it is necessary to kill the current session, do so from another session.[@more@]
根据ORA-00027错误提示,需要另外开一个窗口然后终止会话;
八、重新删除用户
SQL> drop user ogg cascade;
用户已删除。
今天的文章ogg怎么删除_ora-00257解决办法[通俗易懂]分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/62528.html