如何删除过期的业务监控数据

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

如何删除过期的业务监控数据

1、星空系统自带一套业务监控表,保存系统近期分析出来的一批业务监控数据,正常情况下,这批数据被保留2个月,2个月前的数据被认为过期了,将被系统的定时作业删除,如下图:

 

T_BAS_WARNMOBILEMESSAGE               --云之家消息

T_BAS_WARNINSIDEMESSAGE                 --明细消息

T_BAS_WARNMERGEMESSAGE                --合并消息

T_BAS_WARNINSIDEMESSAGE_L       --明细消息多语言

T_BAS_WARNMERGEMESSAGE_L      --合并消息多语言

T_BAS_WARNMSGDISPLAYDATA         --监控消息列表

T_BAS_WARNLIGHTAPPMSG               --轻应用消息

T_BAS_WARNLIGHTAPPMSGGROUP       --轻应用消息分组

T_BAS_WARNUSERMESSAGE               --用户消息

T_BAS_WARNCARDDISPLAYDATA       --卡片消息

T_BAS_WARNEXECUTERESULTBK       --执行情况历史表

T_BAS_WARNEXECUTEDETAILBK       --执行情况详细历史表 

T_BAS_WARNEXECUTERESULTBK_L        --执行情况历史多语言表

T_BAS_WARNEXECUTEDETAILBK_L        --执行情况详细历史多语言表

 

2、但有时候,可能是删除时系统碰上异常,或者系统上的执行计划被关闭,导致过期数据没能及时被删除,进而逐步累计过期数据,把相关表的尺寸膨胀巨大,成为数据库的负担,如下图,第1个表尺寸达63G


上传图片

 

 

 

下图,系统中,删除业务监控表的执行计划:


上传图片

3、为确保能正常地删除这些历史数据,可以在数据库里再定义一套辅助脚本,每天执行,删除2个月前的业务监控数据。

 

4、在上述的14个业务监控表中,有5个表是表头,剩下的9个表是表体,表头表带了日期字段,可以做为判断数据是否过期的依据;如下语句,使用了日期字段做为判断依据:

 

delete from t_bas_warnmergemessage where fcreatetime < v_rmdate and rownum <= 10000;

delete from t_bas_warnmsgdisplaydata where fcreatetime < v_rmdate and rownum <= 10000;

delete from t_bas_warnusermessage where fcreatetime < v_rmdate and rownum <= 10000;

delete from t_bas_warncarddisplaydata where fcreatetime < v_rmdate and rownum <= 10000;

delete from t_bas_warnexecuteresultbk where fexecuteendtime < v_rmdate and rownum <= 10000;

 

 

表体则根据和表头的关联关系去删除数据,因此,在删除数据时,需要先删除表体数据,再删除表头数据。

 

5、下面附件,是删除业务监控的脚本的ORACLE版,需要注意的是:

 

5.1、脚本需要以数据中心账号,用SQLPLUS工具登录数据库执行。

5.2、部署前,最好对5个表头表做按月分区,以便分区过期后(数据被清空)被删除。

5.3、脚本默认每天6点半执行,若不合适,请自行修改。

5.4、若对5个表头表做了分区,则脚本将自动删除那些过期的,被清空了数据的分区,此时,表头表不存在碎片(高水位问题,分区被删除后,磁盘自动回收)。但表体由于未能被改造成分区表,在多次插入删除操作后,将存在磁盘碎片/高水位问题,需要定期处理,处理方法,请看文档:《如何持续滚动地消除表的高水位问题》。

业务监控相关表清理_20231010.zip

如何删除过期的业务监控数据

1、星空系统自带一套业务监控表,保存系统近期分析出来的一批业务监控数据,正常情况下,这批数据被保留2个月,2个月前的数据被认为过期了...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息