zoukankan      html  css  js  c++  java
  • 使用数据泵expdp/impdp在远端导入导出数据

    对于oracle常用的导入导出工具:expimp,expdpimpdp后者速度快,但是expdp属于服务端工具,而exp属于客户端工具,expdp生成的文件默认是存放在服务端的,而exp生成的文件是可以存放在客户端的

    expdp是server端工具,但可以通过NETWORK_LINK参数实现远端导出,但是前提是远端也安装有Oracle数据库,只有CLIENT端是没有办法利用数据泵的。

    使用expdpusername/password@connect_string这种格式导出数据,生成的文件存放在服务端,可以通过在expdp中使用network_link完成再远端服务器通过expdp导出数据。对于impdp亦然。

    如:expdp system/oracledba directory=my_dir dumpfile=test.dmp logfile=test.log network_link=DB_LINK_TEST schemas=test01,test02 parallel=4

    1、使用dblink远程导出导入数据的步骤为:

    create database link link_name connect to username identified by password using 'connect_string' ;
    //username和 password是 server端的,并且特别注意该处的connect_string 就为tnsnames.ora中的服务名(连接服务端的串),

    如:

    
    SQL> create public database link yjtestlink connect to yjtest identified by "yjtest22324" using '//177.100.42.102:30145/orcl';
    Database link created.
    
    

    创建完成以后可以使用dblink,查询远程数据库表数据进行验证

    
    SQL> select count(*) from yjtest.devicemodel@dbnmslink;
    
      COUNT(*)
    ----------
       7921574
       
    

    验证成功

    1.2 在源端创建导入导出文件夹并赋权

    语句:

    sqlplus / as sysdba
    create or replace directory DMPDIR as 'directory';
    grant read,write on directory DMPDIR to username;

    
    sqlplus / as sysdba
    create or replace directory dir as 'directory';
    grant read,write on directory dir to yjsource;
    
    

    1.3 源端使用dblink远程导出数据

    expdp 'yjsource/"yjsource123"@orclsource' schemas=yjtest directory=DMPDIR dumpfile=yjtest20201013.dmp log=ytest20201013.log network_link=yjtestlink tables=ALARMLOGINHIS

    分区表network_link的说明:
    这里要指出的是:network_link不支持远端导出分区表中的某一个分区,但可以导整个分区表

    2、远程导出导入示例

    ORCL1 是源端,ORCL2是服务端

    --在ORCL2上创建DBLINK到ORCL1

    create [public] database link <link_name> connect to identified by using '';

    create public database link scms_test connect to dbmt identified by dbmt using '//192.168.1.144:1521/scms';

    create public database link to_orcl1 connect to system identified by oracle using 'ORCL1';

    --在ORCL2上执行IMPDP

    $ impdp localusername/"localpasswd"@localsid' directory=DUMP_DIR logfile=impdp_to_orcl2.log network_link=to_orcl1 schemas=scott

    --在ORCL2上创建DBLINK到ORCL1

    create public database link to_orcl1 connect to system identified by oracle using 'ORCL1';

    --在ORCL2上执行EXPDP,导出的DUMP文件在ORCL2上

    expdp 'localusername/"localpasswd"@localsid' directory=DUMP_DIR logfile=expdp_from_orcl1.log network_link=to_orcl1 schemas=scott parallel=2

  • 相关阅读:
    <庆余年>
    JUC-12.3-线程的调度
    JUC-12.1-线程池介绍
    JUC-12.2-线程池使用
    JUC-11-线程八锁
    JUC-10-ReadWriteLock读写锁
    JUC-9-线程按序交替
    JUC-8-lock和Condition使用
    JUC-7-lock接口
    xcode单词及回调
  • 原文地址:https://www.cnblogs.com/yj411511/p/13811809.html
Copyright © 2011-2022 走看看