我有一个oracle dumpfile,我假设它是使用exp命令而不是expdp创建的
dumpfile大约是4 GB,我想在我的Oracle 11.2数据库上导入它 .
创建的转储文件的表空间为“spaceA”,但我的表空间为“spaceB”
所以我还需要重新映射表空间 .
之前我确实使用过impdp命令并且它曾经工作得非常好,但是我猜也知道impdp只能用于dumpfile,如果它是使用expdp导出的话 .
由于我不太熟悉出口/进口的过程,我想得到帮助
如果表空间没有在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
1 回答
如果表空间没有在dmp文件创建表语句中进行硬编码,那么您应该能够毫无问题地导入 . 所以我的建议是首先尝试以下内容(更多细节:http://docs.oracle.com/cd/E11882_01/server.112/e10701/original_import.htm)
如果您收到IMP-00017错误 . 然后你必须采取更长的路线 . 您需要先创建表,然后使用ignore = y导入 .
要首先创建表,您需要DDL语句,您可以通过运行以下方法获得这些语句:
INDEXFILE.log将包含所有create table语句 . 查找并用“spaceB”替换“spaceA”,创建表,然后使用ignore = y参数运行导入,该参数将忽略表创建错误(因为表已经存在)并加载数据: