使用EXPDP IMPDP传输不同数据库的不同表空间(新增网络传输)

  expdp/impdp和exp/imp差别还是不小的。其中显著的提高了效率,精度大大细化是比较明显的地方。

  原来我们导入时候设置这几个常用的 owner fromuser,touser咋一看好像都没了。其实都保留了。

 下面的例子:

      expdp system/xxxx DUMPFILE=testxp.dmp schemas=simpreal

      impdp system/xxx DUMPFILE=testexp.dmp  remap_schema=simpreal:simptest remap_tablespace=simpreal:simptest   logfile=123.log

如果不使用默认的data_dump_dir参数所设置的文件夹 也可以创建一个directory 对象后 使用directory=对象名,dumpfile=xxx.dmp

并且remap_schema中新用户最好不创建否则会报错(虽然没影响)

等同于以前imp/exp的:

     exp system/xxx file=testxp.dmp owner=simpreal

     imp system/xxx file=testxp.dmp fromuser=simpreal touser=simptest  log=123.log

更强悍的地方在于:

  新方法连续指定了:从旧方案到新方案,从旧表空间到新表空间

    老方法必须设置一些参数来达到此目的。

参考此文章:http://www.eygle.com/archives/2009/09/oracle_impdp_ig.html

下列场景经常出现:A数据库安装在机器A,B数据库安装在机器B,我们需要把A数据库的某些数据同步到B数据库上,这个时候如果使用导入导出,原先的做法是:在A数据库上exp出dmp文件,在B数据库上使用IMP导入。这样免不了需要通过网络传输拷贝dmp文件,往往一个dmp文件高达几G甚至更大,这样就要消耗很多时间。

新一代导入导出工具DMPDP/IMPDP彻底解决了这个问题--使用network_link参数

首先要先创建一个dblink连接你要导出的数据库----这样你能在本地拥有一份远程dmp文件。

create database link YOURDBLINK  connect to user identified by pwd
  using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )';
然后检查下这个dblink :select * from all_db_links;
开始导出:

expdp system/system network_link=SIMPREAL directory=DUMP_DIR dumpfile=pijumenu.dmp version=11.1.0.6.0 logfile=piju.log tables=simpreal.tsysmen

上面的例子是导出某个表的,注意这个tables参数和schema参数只能2选1. 加version是因为从高版本导入到低版本。

 

你可能感兴趣的:(数据库,schema,File)