我的Windows Server 2008R2上有Oracle Standart Edition 11.2.0.1.0单一实例。 今天我们实现了Windows cpu使用率100,没有人无法连接到数据库并工作,直到重启oracle实例。 当我检查警报日志时,我看到的是ORA 600泛型错误,
文件中的错误d:\ app \ administrator \ diag \ rdbms \ zozdbc \ zozdbc \ trace \ zozdbc_ora_1548.trc(incident = 77112): ORA-00600:内部错误代码,参数:[12259],[],[],[],[],[],[],[],[],[],[],[] 事件详细信息在:d:\ app \ administrator \ diag \ rdbms \ zozdbc \ zozdbc \ incident
当我检查实施的跟踪文件后,我看到了以下错误,
--------转储触发子列表--------触发子列表0:触发子列表1:触发子列表2:触发子列表3:触发 所有者:zoz_TABS触发器名称:SIS_USER_DEF_TRGA触发子列表4:
*** 2017-05-18 10:16:44.437事件77112已创建,转储文件:d:\ app \ administrator \ diag \ rdbms \ zozdbc \ zozdbc \ incident \ incdir_77112 \ zozdbc_ora_1548_i77112.trc ORA-00600:内部错误代码,参数:[12259],[],[],[],[], [],[],[],[],[],[],[]
跟踪文件 d:\程序\管理员\诊断\ RDBMS \ zozdbc \ zozdbc \跟踪\ zozdbc_ora_1548.trc Oracle Database 11g 11.2.0.1.0版 - 64位生产Windows NT 版本V6.1 Service Pack 1 CPU:4 - 类型8664,4 Physical Cores Process Affinity:0x0x0000000000000000 Memory (可用/总计):Ph:25008M / 32767M,Ph + PgF:53887M / 65533M VM名称
:VMWare版本(6)实例名称:由此安装的zozdbc重做线程 实例:1 Oracle进程号:47 Windows线程ID:1548,图像: ORACLE.EXE(SHAD)
我的触发器在下方,
create or replace TRIGGER zoz_TABS.NIN_USER_DEF_TRGA
AFTER INSERT OR UPDATE
ON zoz_tabs.NIN_user_def
FOR EACH ROW
DECLARE
CURSOR c1 IS
SELECT * FROM NIN_menu_def;
CURSOR c2 IS
SELECT m.menu_code,
m.upper_menu,
m.order_no,
m.menu_label
FROM (SELECT menu_code FROM NIN_menu_def
MINUS
SELECT menu_code
FROM NIN_user_menu_def
WHERE user_code = :NEW.USER_CODE) x,
NIN_menu_def m
WHERE m.menu_code = x.menu_code;
BEGIN
IF (INSERTING) THEN
FOR cc IN c1 LOOP
INSERT INTO NIN_user_menu_def (user_code,
menu_code,
upper_menu,
order_no,
menu_label)
VALUES (:new.user_code,
cc.menu_code,
cc.upper_menu,
cc.order_no,
cc.menu_label);
END LOOP;
---
--sifre tan?m bilgisi kullan?c?ya mail ile gonderilir.
---
NIN_user_pwd_mail_prc ('INSERT',
:NEW.dil_kod,
:new.org_kod,
:new.ser_kod,
:new.user_type,
:new.user_code,
:new.user_name || ' ' || :new.user_surname,
:new.password,
:new.ik_kod);
--
--Yeni eklenen user icin default page tanimi yapiliyor.
--
CREATE_USER_DEFAULT_PAGE(:new.user_code,:new.user_type,:new.kullanilan_NINtem);
END IF;
IF (UPDATING) THEN
IF (:NEW.USER_STATUS = 'ACTIVE' AND :OLD.USER_STATUS != 'ACTIVE')
THEN
FOR cc IN c2 LOOP
INSERT INTO NIN_user_menu_def (user_code,
menu_code,
upper_menu,
order_no,
menu_label)
VALUES (:new.user_code,
cc.menu_code,
cc.upper_menu,
cc.order_no,
cc.menu_label);
END LOOP;
END IF;
---
--sifre de?isikli?i islemi yap?ld???nda veya personel atamas? yap?ld???nda sifre tan?m bilgisi kullan?c?ya mail ile gonderilir.
---
IF ((:OLD.password != :NEW.password) OR (:OLD.ik_kod != :NEW.ik_kod)) THEN
dbms_output.put_line('ISLEM VAR');
NIN_user_pwd_mail_prc ('UPDATE',
:NEW.dil_kod,
:new.org_kod,
:new.ser_kod,
:new.user_type,
:new.user_code,
:new.user_name || ' ' || :new.user_surname,
:new.password,
:new.ik_kod);
END IF;
END IF;
END;
检查支持oracle后,我看到了它的一个bug,不幸的是它显示没有固定,只需要opatch等。
我错过了什么吗?我计划增加sga和pga大小,因为我的服务器上有免费资源,我计划完整的数据库istatistics。 有人可以提供更多建议吗? 谢谢,