ITPub博客

首页 > 数据库 > Oracle > 数据泵 impdp 操作

数据泵 impdp 操作

原创 Oracle 作者:shytodear 时间:2015-05-14 14:31:26 0 删除 编辑

注:数据泵是基于服务器的,如果没有生产环境主机的权限,我们可以用数据泵的impdp的network_link参数。

帮助手册:$impdp help=y

例:倒换生产datadb库的数据 到 测试data630中

1、需要开通data630主机(192.168.202.168)到datadb主机(192.168.218.1或192.168.218.3)   的网络。检查网络是否开通:
            data630库主机执行:tnsping datadb1 或 tnsping datadb2  -返回ok则为已开通。
          或登录data630库执行:select * from dual@dbl_to_datadb;  -有结果则为已开通。
    
2、登录data630库,创建访问datadb的dblink:
   select * from dba_db_links;   ---查看库中已存在的dblink
   
   ---system用户登录data630用户创建dblink
   create database link DBL_TO_dataDB connect to bakuser identified by "123456"
   using '(DESCRIPTION =
       (ADDRESS_LIST=(LOAD_BALANCE=OFF)(FAILOVER=ON)
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.218.1)(PORT = 1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.218.3)(PORT = 1521)))
       (CONNECT_DATA =
          (SERVICE_NAME =datadb)(FAILOVER_MODE =(TYPE = SELECT)(METHOD =  
       BASIC)))   
      )';

    ---drop database link DBL_TO_dataDB;


3、创建DIRECTORY
   
   select * from dba_directories;  ---查看库中已存在的directory
   
   ---system用户登录data630创建directory
   create directory trans_work as '/databak/liuqi/';
   GRANT READ, WRITE ON DIRECTORY dmpdir TO user;

   ---drop directory trans_work;

   注:directory对应着数据库主机上的系统路径。


4、以oracle用户登录192.168.202.168主机,到目录/databak/liuqi/下操作。
   
   ======== 常用倒换举例 =======

   ---倒换用户
   $vi impdp_user.par
    userid=system/manager@data630
    directory=trans_work
    logfile=impdp_user.log
    schemas=usera
    skip_unusable_indexes=y
    table_exists_action=replace
    network_link=dbl_to_datadb
    parallel=6   ---并发谨慎使用,容易报错!
  
   $nohup impdp parfile=impdp_user.par &

   ---倒换表(表的全部内容)
   $vi impdp_table.par
    userid=system/manager@data630
    directory=trans_work
    logfile=impdp_table.log
    tables=ucr_data1.tablea,
    ucr_data1.tableb
    skip_unusable_indexes=y
table_exists_action=replace
#content=metadata_only  ---只倒换表的结构
network_link=dbl_to_datadb

   $nohup impdp parfile=impdp_table.par &


   ---倒换表(只倒表的数据)
   $vi impdp_table.par
    userid=system/manager@data630
    directory=trans_work
    logfile=impdp_table.log
    tables=ucr_data1.tablea,
    ucr_data1.tableb
    #skip_unusable_indexes=y
    #table_exists_action=replace
    content=data_only
network_link=dbl_to_datadb 

   $nohup impdp parfile=impdp_table.par &


   注:常用的数据泵参数还有很多,如:
#exclude=statistics,index  ---不倒 统计信息和索引
#include=statistics,index   ---只倒 统计信息和索引
#exclude=table:"like 'td_s_dbinfo%'"  ---不倒的表
#exclude=table:"in ('td_s_dblogin')"  ---不倒的表
#remap_tablespace=tbs_old:tbs_data_def ---转换表空间
#query='where rownum < 3000'   ---根据查询条件倒数据
nologfile=y
reuse_dumpfiles=y


5、如需做统计信息收集,sql如下参考:

---对用户做统计信息收集
exec dbms_stats.gather_schema_stats('usera',estimate_percent=>10,cascade=>true,no_invalidate =>false,degree=>8);

---对表做统计信息收集
exec dbms_stats.gather_table_stats(ownname => 'usera',tabname => 'tablea', estimate_percent => 10, method_opt=> 'for all indexed columns',degree=>8);


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27126919/viewspace-1654374/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-11-05

  • 博文量
    66
  • 访问量
    238107