Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2624901
  • 博文数量: 323
  • 博客积分: 10211
  • 博客等级: 上将
  • 技术积分: 4934
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-27 14:56
文章分类

全部博文(323)

文章存档

2012年(5)

2011年(3)

2010年(6)

2009年(140)

2008年(169)

分类: Oracle

2008-12-08 20:50:33

  一大早接到事业部的电话。说在创建一个新计划时,无法保存计划选项的修改。系统提示如下:
“获取计划标识时出错,无可用的自由分区。要创建分区,请与DBA联系。”
首先检查了DB的alert log,没有报错信息。OS也无异常。上网到metalink查,发现有个案例跟我们的相似。大意是说MSC_EXC_DETAILS_ALL这个表没有分区导致的。但实际上我们这个表已经是个分区表了。后来查资料得知我们的plan partition已经用完了。系统默认1个instance partition,5个plan partition。运行SQL进行查询:
SQL>select plan_id, plan_name, free_flag, partition_number from msc_plan_partitions;
 
FREE_FLAG的值都是2,也就说明plan id都被占用了。奇怪的是在NAMES SCREEN里竟然查不到这些计划了,进不同的组织也查不到这些计划了。正常来说,在NAMES SCREEN里删除计划会自动提交一个请求,这请求会自动purge一些记录,MSC_PLAN_PARTITIONS表的free_flag字段的值应该变为1。询问业务人员是怎样删除计划的,得到的答案是:在界面删除的。这就奇怪了。查询MSC_SYSTEM_ITEMS这个分区表的记录,那些占用plan id的计划所在的表分区记录数都是0。正常跑的ACSP计划PDS才有数据。可否删除这些计划分区呢?我想应该是可以的。(没测试过)我们还可以update 表msc_plan_partitions的free_flag值为1,这样新的计划就可以复用这个plan id了。在测试机上我测过,没什么问题。唯一需要担心的就是,这个plan的数据会清不掉。不如界面的删除计划来的彻底。但刚才我们查询了这些计划是没有数据的,应该是可以删除的。因为是生产系统,最后还是选择了一个最保险的方法:创建plan partition,对应的请求是“创建APS分区”。请求完成后再次查看
msc_plan_partitions表发现多了一个plan 分区,且free_flag的值为1。问题到这算是解决了。但怎样彻底删除NAMES里查不到而在msc_plan_partitions表的可以看到的计划,还值的研究。不知道我的以上方法是否可行。
  另外,为何系统默认第5个plan分区的plan id和partition number是21而不是6呢?有知道的兄弟么?
阅读(1606) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~