场景:使用dblink加触发器同步两个库的数据,源数据库使用11g(11.2.0.1.0),目标数据库使用11g(11.2.0.1.0)。向源数据库中插入记录时,数据无法同步至目标库。并抛出ORA-03113异常。当源数据库使用12c时,一切正常,数据可能同步。
-- 创建dblink
CREATE PUBLIC DATABASE LINK datasync CONNECT TO kxmadmin IDENTIFIED BY "123456" USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.100.92)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = kxm)))';
-- 创建同义词
create public synonym T_STATISTICS_ATTR_WEEK_HK for T_STATISTICS_ATTR_WEEK @DATASYNC;
-- 创建触发器
CREATE
OR REPLACE TRIGGER TEMP_trigger BEFORE INSERT ON T_STATISTICS_ATTR_WEEK FOR EACH ROW
BEGIN
IF INSERTING THEN
INSERT INTO T_STATISTICS_ATTR_WEEK_HK (
ATTR,
TIMEFLAG,
COUNT,
CREATETIME
)
VALUES
(
: NEW .ATTR,
: NEW .TIMEFLAG,
: NEW . COUNT,
: NEW .CREATETIME
) ;
END IF; END ;
oracle日志如下:
Trace file e:\app\administrator\diag\rdbms\kxm\kxm\trace\kxm_ora_6856.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Windows NT Version V6.2
CPU : 12 - type 8664, 6 Physical Cores
Process Affinity : 0x0x0000000000000000
Memory (Avail/Total): Ph:7791M/16213M, Ph+PgF:20654M/32597M
Instance name: kxm
Redo thread mounted by this instance: 1
Oracle process number: 41
Windows thread id: 6856, image: ORACLE.EXE (SHAD)
*** 2019-08-16 14:36:23.310
*** SESSION ID:(110.677) 2019-08-16 14:36:23.310
*** CLIENT ID:() 2019-08-16 14:36:23.310
*** SERVICE NAME:(kxm) 2019-08-16 14:36:23.310
*** MODULE NAME:(navicat.exe) 2019-08-16 14:36:23.310
*** ACTION NAME:() 2019-08-16 14:36:23.310
--------Dumping Sorted Master Trigger List --------
Trigger Owner : KXMADMIN
Trigger Name : HDS_TEMP_TRIGGER
--------Dumping Trigger Sublists --------
trigger sublist 0 :
trigger sublist 1 :
trigger sublist 2 :
trigger sublist 3 :
Trigger Owner : KXMADMIN
Trigger Name : HDS_TEMP_TRIGGER
trigger sublist 4 :
Exception [type: ACCESS_VIOLATION, UNABLE_TO_READ] [ADDR:0xA] [PC:0xAD7DF32, pevm_BIND()+258]
Incident 20729 created, dump file: e:\app\administrator\diag\rdbms\kxm\kxm\incident\incdir_20729\kxm_ora_6856_i20729.trc
ORA-07445: exception encountered: core dump [pevm_BIND()+258] [ACCESS_VIOLATION] [ADDR:0xA] [PC:0xAD7DF32] [UNABLE_TO_READ] []