2013-09-27 63 views
0

我有转储文件,我认为已经使用exp命令,而不是EXPDP导入的Oracle转储文件

转储文件大约为4 GB,我想将其导入我的Oracle数据库11.2创建的Oracle。

其中创建转储文件有表空间“spaceA”,但我的表是“spaceB”

所以,我需要重新映射表空间为好。

我没有使用之前IMPDP命令,它使用,因为我不是很熟悉,工作完全正常,但你猜我的理解 IMPDP只能在转储文件中使用,如果使用的expdp出口..

导出/导入过程中,我想获得这方面的帮助

回答

1

如果表空间没有硬编码在dmp文件中创建表语句,那么你应该能够导入没有问题。所以我的建议是首先尝试像以下(详情:http://docs.oracle.com/cd/E11882_01/server.112/e10701/original_import.htm

imp user/[email protected] file=FILE.dmp log=LOG.log fromuser=DMPSCHEMA touser=NEWSCHEMA 

如果得到IMP-00017错误。那么你必须采取更长的路线。您需要先创建表格,然后使用ignore = y进行导入。

首先创建你所需要的DDL语句,您可以通过运行获得表:

imp user/[email protected] file=FILE.dmp log=LOG.log full=y indexfile=INDEXFILE.log 

的INDEXFILE.log将包含所有创建表的语句。使用“spaceB”查找并替换“spaceA”,创建表格,然后使用ignore = y参数运行导入,忽略表格创建错误(因为表格已存在)并加载数据:

imp user/[email protected] file=FILE.dmp log=LOG.log fromuser=DMPSCHEMA touser=NEWSCHEMA ignore=y 
imp user/[email protected] file=FILE.dmp log=LOG.log fromuser=DMPSCHEMA touser=NEWSCHEMA ignore=y