日期:2014-05-16  浏览次数:20467 次

oracle11gEXP和IMP命令的使用,及建表空间
常常会遇到这种情况:需要将一个oracle数据库里的全部表数据转移到另一个刚刚新安装的oracle数据库中。这时候,我们就需要用到oracle的EXP和IMP命令了。


EXP:
首先登陆已有数据的数据库服务器,例如用secureCRT登陆,再输入su - oracle命令切换到oracle用户,然后再输入:exp username/password owner=username file=***.dmp;
其中username和password是你想导出的相应数据库用户的用户名和密码,添加owner这个option的意思是只导出属于这个用户创建的表,因为可能这个用户会是dba级别的用户;如果不添加这个option,而添加了option:full=y,则会导出属于dba级别的所有表。

导出表后,如果两台服务器不能用ftp连接以传输这个dmp文件,则先get到本地,再put到新的数据库服务器。然后下一步就到导入了。


IMP
再用secureCRT登陆新的数据库服务器,切换到oracle用户,输入以下命令:
imp username/password fromuser= userold touser=usernew commit=y buffer=48000000 file=/***/***/***.dmp;

创建表空间
创建表空间(创建表空间的时候注意查看用户权限),这里表空间DATAFILE的位置是作为例子而已,真正的DATAFILE位置必须与select name from v$datafile;得出的位置一致,这是oracle11g跟10g不同的地方。
CREATE TABLESPACE ZHWEB (----表空间名称,根据你的需要更改)
DATAFILE  '+DGDATA/wtdb/datafile/****01.dbf' SIZE 20G
AUTOEXTEND ON
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
;


配置本地oracle的tnsnames.ora用pl/sql developer去连接新的数据库服务器,这时候除了IP端口这些跟新服务器一致之外,还有就是SERVICE_NAME要跟新服务器上的tnsnames的SERVICE_NAME一致。(新服务器的tnsnames.ora的路径举例:
/oracle/app/db/product.11.2.3/dbhome/network/admin)。