消失的索引

案例:

   某一子公司数据库要迁移几个表到其他表空间,告诉新手DBA做好准备工作,先建立好表空间,预判要迁移的数据量大小,关注约束,联系客户停机等等,最重要的做好备份。

   一切按计划执行,完毕后,他告诉我,OK了,数据迁移完毕,过程中提示索引失效,但rebuild就好了,当时也没在意。那好吧,下班回家。结果在路上,子公司的人打电话过来,系统变得非常非常慢,慢的离谱。回到公司连接数据库,发现,迁移的表索引和主键全部丢失,百万纪录的表,系统不慢才怪。赶紧增加索引,系统恢复正常。查找索引对象表,看有没有异常,发现,丢失的索引都在system表空间下,疑惑中,再看属主,都在迁移表后缀名+bak的表中。询问那个新手DBA,我去,这兄弟听话,不但做了冷备,别出心裁的,把要迁移的表都rename成带bak后缀的表了。难怪。他疑惑,分析过程如下:

   1、rename表的时候,原表中所有的属性对象均还依附原表,并为做任何改变。只是系统表的表名发生变化。

   2、用exp迁移原表,原表中的索引和rename表的索引同名,导致索引失败,也就是他迁移时看到的内容。

   3、rebuild成功了,但rebuild的是rename表的内容,而不是迁移表的内容。

   4、因为要迁移到新的表空间,过程中,有quota 0on 原表空间的操作,所以,rebuild索引的结果是到了system表空间。

画蛇添足净捣乱。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值