日期:2014-05-17  浏览次数:20721 次

关于导入导出数据,涉及表空间的问题
本人在菜鸟一个,请教各位一点知识。

  关于导入导出数据,涉及表空间的问题。
  我从数据库导出的DMP文件,是否包含表空间信息,比如说,我要导出的数据库里有这些表空间:1个临时表空间、1个缺省表空间(默认)、若干个数据表空间。
  现在我要导入另外一个数据库。
  1、另外一个数据库我只指定了默认表空间和临时表空间,导入数据的时候那些存在的若干个数据表空间怎么办?
  2、另外我在EXP导出的时候,出现正在导出表。。。正在导出分区,这是什么意思?
  3、如果想要打造一个相同的数据库,是否需要在要导入的数据库里创建相同的表空间结构呢?
  4、以建立相同的数据库结构,给我讲一下,导入导出的过程,导出的DMP包含怎样的表空间信息呢?

------解决方案--------------------
expdp/impdp方式导出导入数据:
数据库DA内有两个表空间 TA 、TB,一个临时表空间TC,数据库用户:old_user,密码:123456,system用户密码:123456
导出:
1、建立导出文件的目录:
$ sqlplus /nolog
SQL> conn /as sysdba
SQL> create or replace directory dmpdir as '/orabak/oradmp'; #创建目录
SQL> grant read,write on directory dmpdir to system; #给system用户授权
SQL> exit
2、执行导出语句
expdp system/123456 schemas=old_user directory=dmpdir dumpfile=user_expdp_20110322.dmp logfile=user_expdp_20110322.log; #导出old_user用户的方案

导入:
1、先在数据库内创建表空间,2个正式表空间(假设创建好的表空间名称分别为:T_A,T_B),1个临时表空间
(假设创建好的表空间名称分别为:T_C),此步骤略。
2、导入数据:
impdp system/123456 schemas=user remap_schema=old_user:new_old remap_tablespace=TA:T_A,TB:T_B,TC:T_C,directory=dmpdir dumpfile=user_expdp_20110322.dmp,logfile=user_impdp_20110322.log #将old_user的方案导入给new_old,也即将旧用户所有的数据,导入到新用户内,旧用户所有的数据结构都导入给新用户
3、修改用户new_user的密码
SQL> alter user new_user identified by 123456;