我的问题是关于用于主键索引的表空间与用于表本身的表空间不同的情况。 Oracle会使用此索引还是变得无法使用?
因为当我尝试将架构导入包含该表的Oracle时。甲骨文抱怨说这个主键的索引无法使用。我已经通过更改表空间为主键索引修复了架构,再次导出它并将其导入数据库而没有警告。
这是否意味着主键索引表空间必须始终与表本身的表空间相同?或者是否适用于任何类型的索引(例如列索引)?
此规则是否也适用于DB2?
答案 0 :(得分:4)
将索引和数据存储在不同的表空间中是完全可以接受的。当你这样做时会发生什么:
alter index index_name rebuild;
此后索引仍无法使用吗?如果没有,请检查表格中的导入参数。例如,SQL * Loader可以使直接路径加载的索引无效(这只是一个猜测,你没有提到你如何加载数据)。
如果索引仍然无法使用,请检查数据异常,尤其是重复键。希望你解决它!
答案 1 :(得分:3)
马丁说的很好。但是,没有必要分离表空间。您可以做什么,以避免导入时的表空间错误(假设您使用导出/导入而不是数据泵)是创建具有存在的默认表空间的用户。然后只导入数据库,然后添加索引和约束。