我有一个oracle dumpfile,我假设它是使用exp命令而不是expdp创建的
转储文件大约是4 GB,我想在我的Oracle 11.2数据库中导入它。
创建的转储文件的表空间为“spaceA”,但我的表空间为“spaceB”
所以我还需要重新映射表空间。
之前我确实使用过impdp命令,它曾经工作得非常好,但我猜也好 如果使用expdp ..
导出,则只能在dumpfile上使用impdp由于我对导出/导入过程不太熟悉,我想获得有关此
的帮助答案 0 :(得分: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