支持自动ORACLE大表分区:
版本进度:
31. 20110420 V2.2 支持任意表任意时间字段分区
以下为安装部署部分:
1.分区相关脚本部署执行顺序,安装前请确保该用户拥有管理员权限,
同时请执行GRANT CREATE ANY TABLE TO DBUSER, 因为使用到了动态的CREATE TABLE语句;
01) >AGGRE_ERROR_INFO_DDL.SQL 如果日志表AGGRE_ERROR_INFO已经存在,该步骤跳过。
02) >GET_MILLISECOND.SQL 如果函数GET_MILLISECOND已经存在,该步骤跳过。
03) >GET_DATE_FROM_MILLISECOND.SQL 如果函数GET_DATE_FROM_MILLISECOND已经存在,该步骤跳过。
04) >AGGRE_PM_PARTITIONF.SQL
2.注意事项:
01) >部署完后注意检查分区维护JOB[对应存储过程为AGGRE_PM_PARTITIONM],
如果有多个相同的分区维护JOB,则请删除后面创建的JOB,只保留一个分区维护JOB。
检查脚本如下:select t.what,t.* from user_jobs t
02) >本产品中使用的分区调度表名称为AGGRE_PARTITION_TASK,可以根据该表中信息观察分区情况。
以下为说明解释部分:
2.分区改造主过程:AGGRE_PM_PARTITIONF.SQL, 意思是PARTITIONING THE FIRST TIME;
参数解释如下:
-- @PARAM VARCHAR2 PARTTABLENAME---可以指定对某个表大小大于等于TABLEONSIZE_M(单位为MB)的表进行按指定时间字段的自动分区;
-- @PARAM NUMBER TABLEONSIZE_M---大表自动分区起始大小,单位为兆字节(MB),如不想指定具体大小则置0即可;
-- @PARAM NUMBER PARTINTERVAL----取值范围为[1/24,365],表的分区时长,单位为天,默认为1,采用一天一分区;
-- @PARAM 若为7,则采用一周一分区,若为30,则采用一月一分区;
-- @PARAM NUMBER PARTRESERVED----表数据保留时长,单位为天;
-- @PARAM NUMBER BACKINTERVAL----取值范围为[3600,7*86400],表数据回迁时的循环步长,即一次回迁多长时间的数据,单位为秒;
-- @PARAM VARCHAR2 PARTWEEKDAY-----取值范围为(SUN,MON),PARTINTERVAL为7时起作用,指定一周的起始天为星期日还是星期一;
-- @PARAM VARCHAR2 PARTFIELD-------指定的分区时间字段名称
-- @PARAM VARCHAR2 FIELDFORMAT-----指定的分区时间字段的格式
-- @PARAM VARCHAR2 TISPARTITIONED--取值范围为(TRUE,FALSE),指定PARTTABLENAME参数所指定的表是否是分区表,默认为FALSE
-- @PARAM VARCHAR2 PARTEXCHANGE----取值范围为(TRUE,FALSE),是否使用交换分区方法实现非分区表的分区化改造,默认为FALSE
-- @PARAM 注意:当PARTEXCHANGE参数为TRUE时,TISPARTITIONED参数只能为FALSE,
-- @PARAM 即已经分好区的分区表是不能够使用交换分区的方法转换为另一种分区表的;
-- @PARAM VARCHAR2 DROPPABLE-------取值范围为(TRUE,FALSE),指定分区完后是否DROP掉分区备份表;
其中参数FIELDFORMAT的取值范围如下:
/**
* FIELDFORMAT
* 0 NUMBER/CHAR MILLISECOND 1300200064000 13BITS
* 1 NUMBER/CHAR SECOND 1300200064 10BITS
* 2 NUMBER/CHAR YYYYMMDDHH24MISS 20110315224030
* 3 NUMBER/CHAR YYYYMMDDHH24MI 20110315
2020-01-08 03:01:18
12KB
大表分区
1