我有一个 oracle 转储文件,我假设它是使用 exp 命令创建的,而不是expdp
转储文件大约 4 GB,我想将它导入到我的 Oracle 11.2 数据库中。
创建的转储文件的表空间为“spaceA”,但我的表空间为“spaceB”
所以我也需要重新映射表空间。
我之前确实使用过 impdp 命令,它曾经工作得非常好,但据我所知,impdp 只能用于转储文件,如果它是使用 expdp 导出的。
由于我对导出/导入的过程不是很熟悉,因此我想获得有关此方面的帮助
我有一个 oracle 转储文件,我假设它是使用 exp 命令创建的,而不是expdp
转储文件大约 4 GB,我想将它导入到我的 Oracle 11.2 数据库中。
创建的转储文件的表空间为“spaceA”,但我的表空间为“spaceB”
所以我也需要重新映射表空间。
我之前确实使用过 impdp 命令,它曾经工作得非常好,但据我所知,impdp 只能用于转储文件,如果它是使用 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
INDEXFILE.log 将包含所有创建表语句。查找并用“spaceB”替换“spaceA”,创建表,然后使用 ignore=y 参数运行导入,这将忽略表创建错误(因为表已经存在)并加载数据:
imp user/password@instance file=FILE.dmp log=LOG.log fromuser=DMPSCHEMA touser=NEWSCHEMA ignore=y