我习惯用imp和exp导入和导出dmp格式,总结如下结论:
(本地)导出命令(这意味着即使是导出远程的数据库,我一般也是用ssh远程登录后,在用此命令,然后再copy下来):
(linux)exp username/password file=./xx.dmp (我一般不加 full=y,不然太大)
本地)导入命令(同上)
(linx) imp username/password file=c:\xx.dmp full=y(必须加full=y)
以我要把a库的dmp文件导入到b库里
心得结论如下:
1. a库中dmp的存储空间名,用户,存储文件位置和b库里的存储空间名,用户,存储文件位置没有任何关系。即我的b库可以使用完全不同的用户和存储空间名
2. 如果我a库中的存储空间的创建语句是这样的:
create tablespace society
logging
datafile 'D:\app\j2ee\oradata\oradb\society.dbf'
size 4G
autoextend on
next 64m
maxsize 4G
extent management local;
在我用导出后的dmp导入到b库里时,如果你这个用户下的存储空间的创建语句是这样的:
create tablespace society
datafile 'C:/oracle/product/10.2.0/oradata/orcl/society.dbf'
size 4G
autoextend on
next 64m
maxsize unlimited;
会出现导入失败的问题,我个人觉得是unlimited的问题,因为extent management local; 是默认的,这仅是工作中遇到的,没有经过反复验证,仅此记下。