资讯专栏INFORMATION COLUMN

疑难诊断之指定表空间添加分区报错

IT那活儿 / 2746人阅读
疑难诊断之指定表空间添加分区报错

上班屁股刚挨到凳子,就听早班的同事在嘟嘟囔囔,根据哥对这个货的了解,大概率碰到什么问题了。


凑近一看,原来一个测试库在添加分区时指定表空间后报表空间不存在,哥的第一反应是不是这二货昨晚和老婆滚床单滚的有点五行缺肾,把表空间名字写错了。


我自己反复确认后发现,SQL语法没错,表空间没问题。那为啥子会报错呢,真的是遇到锤子了。


其中诡异的是表空间指定的是TBS_005,但报错报的是表空间TBS_001不存在。


但有一个共同的特点是有LOB字段的表都无法创建到新的表空间。


搞到这里,莫名有种挤压感,这问题貌似有点严重啊,分区创建不了,后续数据插不进来,到时候就是菊花满地飘,鸡飞狗跳了。


所以抓紧投入到问题诊断解决中。为了让大家都知道发生了啥,截个报错截图:



作为一个伪专家,上来咱得先收集下相关trace不。于是ora-00959的error stack的走起,看看能不能发现什么幺蛾子:

alter session set tracefile_identifier=959;

alter session set events 959 trace name errorstack level 3;

alter table OUSP.T_TD add partition P20190402 values(20190402) compress for query high tablespace TBS_005

lob(BY_DISTNC_NAME,BY_GPRS_NAME) store as (tablespace TBS_005);

alter session set events 959 trace name errorstack off;


Trace日志截图如下:


然鹅,并没有发现啥有指向性的线索。。。


平复一下思绪,回到刚才的问题点,明明指定的表空间是TBS_005,为啥报TBS_001不存在?


哦!脑子在高速旋转的过程中,突然想起来前段时间这个测试库的表空间因为前期规划不合理,为了规范简约化运维,做过表空间数据迁移,并删除了一部分表空间,TBS_001就是那批删除表空间中的一个。


但当时做数据迁移时我们把所有对象都迁移至其他表空间,确认无误后才删除的TBS_001,并且整个删除过程正常,无任何操作报错+日志报错。


既然TBS_001都变成灰,消户了,那为啥子在添加分区的时候还报它的信息,想到这里感觉头皮发麻。


这种麻觫感下,顺其自然的想到还有什么跟这个表空间有关系,并且还是在添加分区的情况下?


难道是表的默认表空间是TBS_001?也没道理啊,我都指定了其他表空间。


先查下表的默认表空间,截图如下:



尝试更改默认表空间:

ALTER TABLE OUSP.T_TD MODIFY DEFAULT ATTRIBUTES TABLESPACE TBS_005;


卵还是没起到作用,添加分区时报错依旧。


那还有什么对象和表空间相关?脑子想到这里,顺口说了出来,只见单身20多年的这个哥们已经把索引分区的默认表空间打出来了,截图如下:


发现索引及LOB的默认表空间都是TBS_001。


尝试修改LOB索引的默认表空间,截图如下:

从报错来看lob index不能修改,那就修改下LOB的默认表空间。

alter table OUSP.T_TD modify default attributes lob (SYS_LOB0000063498C00043$$) (tablespace TBS_005);

alter table OUSP.T_TD modify default attributes lob (SYS_LOB0000063498C00043$$) (tablespace TBS_005);


更改LOB默认表空间之后,分区可以正常添加了。


到这里这个疑难杂症已经一目了然了。


经验总结:

涉及LOB表在迁移表空间时,除了要修改表的默认表空间,LOB的默认表空间也要根据具体情况考虑是否对应予以修改掉。


这里可以深入思考一下:为啥LOB默认表空间已经不存在,数据还能插入,且不报错?

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/130235.html

相关文章

  • DBASK问答集萃(2)

    摘要:新晋技术专家下面是墨天轮部分新晋的技术专家。大家可以点击往期阅读墨天轮技术专家邀请函了解详情,申请成为我们的技术专家,加入专家团队,与我们一起创建一个开放互助的数据库技术社区。新关联公众号墨天轮是一个开放互助的数据库技术社区。 引言 近期我们在DBASK小程序增加了数据库 MongoDB、Redis、 Elasticsearch、DB2、Weblogic 等新的的专题栏目和一些新的技术...

    liuchengxu 评论0 收藏0
  • DBASK问答集萃第四期

    摘要:问题九库控制文件扩展报错库的扩展报错,用的是裸设备,和还是原来大小,主库的没有报错,并且大小没有变,求解释。专家解答从报错可以看出,控制文件从个块扩展到个块时报错,而裸设备最大只支持个块,无法扩展,可以尝试将参数改小,避免控制文件报错。 链接描述引言 近期我们在DBASK小程序新关联了运维之美、高端存储知识、一森咖记、运维咖啡吧等数据领域的公众号,欢迎大家阅读分享。 问答集萃 接下来,...

    SKYZACK 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<