BDI表空间不足的处理方法

[复制链接]
jsl
jsl   高级会员    发表于 2016-10-17 10:23:49   最新回复:2016-11-02 00:24:53

出错信息:

SQLErrorCode: 1653 ORA-01653: unable to extend table BDIDB.T_BPM_CUST_ACT_VARS by 512 in tablespace TBS_BDI_DATAProvide supplementary information.

可能原因:

1BDI系统自动删除历史记录(定时清理),但oracle并没有马上回收这部分的表空间。

2、数据库存储空间存在碎片。

处理步骤:

1、查看系统表空间剩余情况,找到BDI对应表空间占用情况。

select a.tablespace_name,a.bytes/1024/1024 "sum MB",

    (a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB",

    round (((a.bytes-b.bytes)/a.bytes)*100,2) "used%" from

    (select tablespace_name,sum(bytes) bytes from dba_data_files group by    tablespace_name) a,

    (select tablespace_name,sum(bytes) bytes,max (bytes) largest from dba_free_space group by tablespace_name)b

    where a.tablespace_name=b.tablespace_name

    order by ((a.bytes-b.bytes)/a.bytes) desc;

2、查看已满的表空间被哪些用户占用。——防止存在非BDIDB用户占用了该表空间。

select * from dba_users order by username;

select owner,tablespace_name ,sum(bytes)/1024/1024 INSIZE from dba_segments   where tablespace_name='表空间名称'

group by owner,tablespace_name order by INSIZE desc;

3、以BDIDB用户登录并查看BDI系统DB内部对象占用情况,分析占用比较大的对象(TotalM为单位)。

select SEGMENT_NAME,TABLESPACE_NAME,sum(BYTES/1024/1024) TotalM  from USER_extents/* where SEGMENT_TYPE='TABLE'  */

group by SEGMENT_NAME,TABLESPACE_NAME order by TotalM desc;

4、分析2中占用大的对象。

一般以下对象占用比较高:

SYS_LOB******$$   可能是多个  存储BLOB字段

T_BPM_CUST_ACT_VARS  BPM存储历史记录

T_BPM_CUSTOM_VARIABLES  BPM存储历史记录

5、若业务表空间初始设置比较小或者可以继续扩张,建议用户扩展表空间。

6、若不扩展表空间,可以BDIDB用户登录并手动删除(truncate)bmp历史记录表。

Truncate table T_BPM_CUST_ACT_VARS;

Truncate table T_BPM_CUSTOM_VARIABLES;

注意:可能影响历史记录查询

 

规避建议(也可参考安装规划中的数据库规划):

1、测试前合理规划和评估表空间。

表空间  表空间大小 <?xml:namespace prefix = "o" ns = "urn:schemas-microsoft-comfficeffice" />

TBS_BDI_DATA  10G

TBS_BDI_DATA_INDEX  2G

TBS_BDI_RUNTIME  需要根据流程执行频度来计算,平均一个流程配置10个节点。

计算公式如下:平均每天执行的流程数量*0.5M*流程执行保留天数

TBS_BDI_RUNTIME_INDEX 需要根据流程执行频度来计算,平均一个流程配置10个节点。计算公式如下:平均每天执行的流程数量*0.25M*流程执行保留天数。

TBS_BDI_DATA大小评估需要根据流程执行频度来计算,平均一个流程配置10个节点。

计算公式如下:

平均每天执行的流程数量*0.5M*流程执行保留天数

2、设置合理保留历史记录时间。

采用扩展BDI定时清理功能:

扩展方法:

$BDI_HOME/tomcat/webapps/DataIntegration/WEB-INF/conf/*.clean.custom.properties

clean.flow.log.interval = 90默认90天可以根据实际情况调整

delete.db.count = 500 每个批次删除实例数

注意:扩展后需要重启BDI shutdown-ide.sh;startup-ide.sh生效

 
跳转到指定楼层
winktv2002
winktv2002   VIP    发表于 2016-11-2 00:24:53

oracle啊?
快速回复 返回顶部