【问题】

接到告警,发现extract进程ABENDED

查看进程日志如下:

***********************************************************************

**                     Run Time Messages                             **

***********************************************************************

2024-08-25 13:22:11  INFO    OGG-01517  Position of first record processed Log Number: 79079

Record Offset: 67072343, Aug 24, 2024 12:32:26 AM.

2024-08-25 13:22:11  INFO    OGG-06507  MAP (TABLE) resolved (entry pub_credit.ent_core_data_count): TABLE “pub_credit”.”ent_core_data_

count”.

2024-08-25 13:22:11  INFO    OGG-06509  Using the following key columns for source table pub_credit.ent_core_data_count: ogg_key_id.

2024-08-25 13:23:25  WARNING OGG-01266  cm_mf_write_lower: write: to_write: 98304  errno: 28 (No space left on device)  co_uid: 1  /ogg

/dirtmp/e_ph02_p48330_extr_0x7f968d981020_00016.cm.

2024-08-25 13:23:25  WARNING OGG-01857  cachemgr: filecaching: cm_mf_write_upper: /ogg/dirtmp.

2024-08-25 13:23:25  WARNING OGG-01262  The call to the cm_mf_write_lower() function from line 3164 in cm_mf_get() failed with reason ‘

no space on directories: error: 108: co: 00007F968D981020 obj_id: <30><30><30><30><30><30><30><30><30><30><30><30><30><30><30><30><37><

39><30><37><39><3A><30><30><30><30><30><30><30><36><37><30><37><32><33><34><33>’.

Source Context :

SourceModule            : [ggapp.cmgr_filecaching]

SourceID                : [/scratch/aime/adestore/views/aime_adc4150378/oggcore/OpenSys/src/gglib/ggapp/cachemgr/cmgr_filecache.c]

SourceFunction          : [cm_mf_write_upper]

SourceLine              : [854]

ThreadBacktrace         : [6] elements

: [/ogg/libgglog.so(CMessageContext::AddThreadContext()+0x26) [0x7f969a2d6336]]

: [/ogg/libgglog.so(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, …)+0x6a8) [0x7f969a2c9358

]]

: [/ogg/libgglog.so(_MSG_ERR_CACHEMGR_FILECACHING_FILE(CSourceContext*, char const*, CMessageFactory::Message

Disposition)+0x41) [0x7f969a270a41]]

: [/ogg/extract(cm_filecaching_thread(void*)+0x2b49) [0x6ed689]]

: [/lib64/libpthread.so.0(+0x7dd5) [0x7f96971b2dd5]]

: [/lib64/libc.so.6(clone+0x6d) [0x7f969579fead]]

2024-08-25 13:23:25  ERROR   OGG-01853  cachemgr: filecaching: cm_mf_write_upper: /ogg/dirtmpcm_mf_get: no space on directories: error:

108: co: 00007F968D981020 obj_id: <30><30><30><30><30><30><30><30><30><30><30><30><30><30><30><30><37><39><30><37><39><3A><30><30><30>

<30><30><30><30><36><37><30><37><32><33><34><33>.

***********************************************************************

*                   ** Run Time Statistics **                         *

***********************************************************************

 

【分析】

从日志看到报错,是因为空间满了:

ERROR   OGG-01853  cachemgr: filecaching: cm_mf_write_upper: /ogg/dirtmpcm_mf_get: no space on directories: error:

发现dirtmp目录占了32G,这是罪魁祸首。

 

参考:

https://docs.oracle.com/en/middleware/goldengate/core/19.1/installing/temporary-disk-requirements.html

 

当总缓存事务数据超过 CACHEMGR CACHESIZE 参数时,Extract 将开始将缓存数据写入临时文件。

默认会使用整改目录的大小,建议设置一个单独专用的目录,并通过 CACHEMGR CACHEDIRECTORY 参数指定。

 

注意:

CACHEMGR 是一个内部自动配置和自动调节的参数,Oracle 建议不要更改 CACHESIZE,因为根据环境的不同,可能会对性能产生不利影响。

 

通常情况下,操作系统写 swap 的效率高于写临时文件的效率。默认的 CACHESIZE 参数就是这样设定的。

当事务提交或回滚之后,对应的临时文件也会被删除。所以这里dirtmp目录占用了32G导入整个/ogg目录满了,是因为这是一个大事务。

了解发现由于上游系统有个表做了历史数据清理,导致OGG同步这个delete语句的事务很大。

 

【解决】

临时扩容/ogg 目录,等这个大事务执行完成之后,目录空间就自动释放了。

 

OGG同步恢复正常

 

Trackback

no comment untill now

Sorry, comments closed.

返回顶部
粤ICP备14044753号