使用imp导出在其它机器上用exp导出的数据时,发现有部分表导入了,有部分表没导入
单独指定未导入的表重新导入时,提示表空间不存在,后来重新建表空间,将表空间名字建成与导出机器上相同后,再进行全部导入时,可导入成功。
我想请教几个问题:
1、是否在使用imp导入数据的时候,新数据库里的表空间名称必须和原数据库相同?
2、如果相同,那为什么表空间名称不同时,有些表可以导入成功,而有些表不能成功?
单独指定未导入的表重新导入时,提示表空间不存在,后来重新建表空间,将表空间名字建成与导出机器上相同后,再进行全部导入时,可导入成功。
我想请教几个问题:
1、是否在使用imp导入数据的时候,新数据库里的表空间名称必须和原数据库相同?
2、如果相同,那为什么表空间名称不同时,有些表可以导入成功,而有些表不能成功?
exp/imp 时的表空间必须和原表空间一致。 不知楼主是怎么导出与导入的。
参考:
ORACLE 数据库逻辑备份 简单 EXP/IMP
http://blog.csdn.net/tianlesoftware/archive/2009/10/23/4718366.aspxOracle 10g Data Pump Expdp/Impdp 详解
http://blog.csdn.net/tianlesoftware/archive/2009/10/15/4674224.aspx
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满); DBA2 群:62697977(满)
DBA3 群:62697850 DBA 超级群:63306533;
聊天 群:40132017
--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请
--exp/imp 是这样要求的,expdp/impdp就可以在不同表空间转换了2、如果相同,那为什么表空间名称不同时,有些表可以导入成功,而有些表不能成功?
--可能是有些表建在system或者是user...系统默认存在的表空间里
2、可能有部分表空间不同。
可以指定full=y ignore=y参数
最好是有对应的表空间跟用户加个 ignore=y
1、将数据库orcl完全导出,用户名system,密码accp,导出到d:\daochu.dmp文件中
exp system/accp@orcl file=d:\daochu.dmp full=y2、将数据库orcl中system用户与sys用户的表导出
exp system/accp@orcl file=d:\daochu.dmp owner=(system,sys)3、将数据库orcl中的scott用户的表emp、dept导出
exp scott/accp@orcl file= d:\daochu.dmp tables=(emp,dept)4、将数据库orcl中的表空间testSpace导出
exp system/accp@orcl file=d:\daochu.dmp tablespaces=(testSpace)二、数据导入(imp.exe)
1、将d:\daochu.dmp 中的数据导入 orcl数据库中。
imp system/accp@orcl file=d:\daochu.dmp full=y2、如果导入时,数据表已经存在,将报错,对该表不会进行导入。加上ignore=y即可。
imp scott/accp@orcl file=d:\daochu.dmp full=y ignore=y3、将d:\daochu.dmp中的表emp导入
imp system/accp@orcl file=d:\daochu.dmp tables=(emp)
建用到的所有表空间,imp时带关键字 full=y
imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y 就行了