如何将数据*和索引*导入Oracle 11?

时间:2013-06-25 13:41:56

标签: import indexing oracle11g

我使用the original imp tool导入Oracle 11g数据库。通常我使用参数DATA_ONLY=y执行此操作,因为我只关心与数据相关的错误。

但是,我现在正在调查一些与索引相关的问题,所以我想导入索引和数据,但没有其他元数据。我查看了imp help=y以及上面链接的文档,但我无法弄清楚选项的组合或imp调用的序列将实现此目的。

有什么想法吗? (11g答案特有的参数也可以,只要它们也适用于10g dmp文件。)

1 个答案:

答案 0 :(得分:2)

从转储文件构建索引的最简单方法(来自exp;不确定为什么你不使用数据泵而{/ 1}} / expdp如果你&#39 ;重读11g,但希望你从9i或其他东西移动数据)是INDEXFILE parameter

使用它来创建包含所有索引DDL的impdp文件。 (它也包含所有表DDL,但已注释掉)。然后,您可以根据需要进行更改。然后从SQL * Plus中将其作为普通脚本运行,它将执行DDL并构建所有索引。没有.sql调用仅构建索引,您需要在这两个步骤中执行此操作。

它不会更新或重新创建您已有的任何索引,因此如果索引定义已更改,那么它将生效 - 它只会抱怨索引已经存在。如果是这种情况,您可以在运行脚本之前删除现有索引。

通常,您在imp调用之后将INDEXFILE调用作为单独的步骤运行,因为当所有数据都存在时,构建索引的速度通常比它快是为了导入具有索引的数据 - 因为更新每行数据的索引的开销。那么,DATA_ONLY,然后imp DATA_ONLY=y,然后是imp INDEXFILE=ind.sql