zoukankan      html  css  js  c++  java
  • oracle表分区增加分区

    昨天发现车辆轨迹库的表分区用完了,连夜加了分区,我们存轨迹的这张表建分区的时候按日期建只到2012-10-15,分区名从TAB_GPSBUSHIS_P1....TAB_GPSBUSHIS_P999,从2012-10-15开始的数据就默认都存在了TAB_GPSBUSHIS_P1000,所以现在的任务就是从2012-10-16开始继续建分区。

    为了分区的序号连续性,我先将maxvalue对应的分区改了个名

    alter table tab_gpsbushis rename partition tab_gpsbushis_p1000 to tab_gpsbushis_pmax

    增加分区的命令

    alter table tab_gpsbushis add  partition TAB_GPSBUSHIS_P1000 values less than (TO_DATE(' 2012-10-16 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'));

    Woops,报错了  ORA-14074: partition bound must collate higher than that of the last partition

    报这个因为你建了maxvalue的分区,就会报错(我后来把这个分区的数据转移掉了,还是不行,所以我想是不是只要建了maxvalue的分区就不能继续增加分区了)

    于是就google,终于找到热心网友的解决之道,先split,把这里的数据转移掉,我这里的情况是2012-10-15发现分区不够了,所以maxvalue对应的分区只存了2012-10-15的轨迹数据(还有一些不合法的日期的数据),我是这样split的:

    alter table TAB_GPSBUSHIS
    split partition TAB_GPSBUSHIS_PMAX at (TO_DATE(' 2012-10-16 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    into (partition TAB_GPSBUSHIS_P1000, partition TAB_GPSBUSHIS_PMAX)

    如果你2012-10-20发现的,你应该就这样写了

    alter table TAB_GPSBUSHIS
    split partition TAB_GPSBUSHIS_PMAX at (TO_DATE(' 2012-10-21 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    into (partition TAB_GPSBUSHIS_P1000, partition TAB_GPSBUSHIS_PMAX)

    再查看表属性中的分区就会发现多了TAB_GPSBUSHIS_P1000这个分区,

    查TAB_GPSBUSHIS_PMAX分区下的数据确实就只剩下些非法数据了,就可以全delete掉了

    这时候再执行那个add partition操作还是报同样的错,所以我就干脆把maxvalue对应的分区给drop掉了

    ALTER TABLE tab_gpsbushis DROP PARTITION tab_gpsbushis_pmax ;

    然后再执行add partition操作,ok成功了

    然后就拼命加啊,加啊,加到了2012-12-31,就先加到这吧

     

    最后又把maxvalue对应的分区加上了,

    alter table tab_gpsbushis add partition tab_gpsbushis_pmax values less than (maxvalue).

     

    ok,结束

  • 相关阅读:
    实验10 使用PBR实现策略路由
    实验9 使用route-policy控制路由
    实验8 filter-policy过滤路由
    实验7 ISIS多区域配置
    实验6 IS-IS基本配置
    MySQL复制表
    mysql数据备份
    mysql 创建用户,授权
    数据库
    mysql 修改文件记录:
  • 原文地址:https://www.cnblogs.com/jadic/p/2725454.html
Copyright © 2011-2022 走看看