我有一个预言机转储文件,我假设它是使用 exp 命令而不是expdp
创建的
转储文件约为 4 GB,我想将其导入我的 Oracle 11.2 数据库。
创建的转储文件的表空间为"空间A",但我的表空间为"空间B"
所以我也需要重新映射表空间。
我以前确实使用过 impdp 命令,它曾经工作得很好,但据我所知,猜测ImpDPP 只有在使用 expdp 导出转储文件时才能用于转储文件。
由于我对导出/导入的过程不是很熟悉,因此我想获得这方面的帮助
如果表空间未在 dmp 文件中硬编码 create table 语句,那么您应该能够毫无问题地导入。所以我的建议是首先尝试如下(有关更多详细信息:http://docs.oracle.com/cd/E11882_01/server.112/e10701/original_import.htm)
imp user/password@instance file=FILE.dmp log=LOG.log fromuser=DMPSCHEMA touser=NEWSCHEMA
如果您收到 IMP-00017 错误。然后你必须走更长的路线。您需要先创建表,然后使用 ignore=y 导入。
要首先创建表,您需要 DDL 语句,您可以通过运行以下命令获取这些语句:
imp user/password@instance file=FILE.dmp log=LOG.log full=y indexfile=INDEXFILE.log
索引文件.log将包含所有创建表语句。找到并将"spaceA"替换为"spaceB",创建表,然后使用 ignore=y 参数运行导入,该参数将忽略表创建错误(因为表已经存在)并加载数据:
imp user/password@instance file=FILE.dmp log=LOG.log fromuser=DMPSCHEMA touser=NEWSCHEMA ignore=y