首页 文章

导入oracle dumpfile

提问于
浏览
0

我有一个oracle dumpfile,我假设它是使用exp命令而不是expdp创建的

dumpfile大约是4 GB,我想在我的Oracle 11.2数据库上导入它 .

创建的转储文件的表空间为“spaceA”,但我的表空间为“spaceB”

所以我还需要重新映射表空间 .

之前我确实使用过impdp命令并且它曾经工作得非常好,但是我猜也知道impdp只能用于dumpfile,如果它是使用expdp导出的话 .

由于我不太熟悉出口/进口的过程,我想得到帮助

1 回答

  • 1

    如果表空间没有在dmp文件创建表语句中进行硬编码,那么您应该能够毫无问题地导入 . 所以我的建议是首先尝试以下内容(更多细节: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将包含所有create table语句 . 查找并用“spaceB”替换“spaceA”,创建表,然后使用ignore = y参数运行导入,该参数将忽略表创建错误(因为表已经存在)并加载数据:

    imp user/password@instance file=FILE.dmp log=LOG.log fromuser=DMPSCHEMA touser=NEWSCHEMA ignore=y
    

相关问题