zoukankan      html  css  js  c++  java
  • expdp/impdp导入导出

    1.需求:需要将windows上的10g oracle数据库导入到Linux上的10g Oracle数据库

    2.分析:使用exp导出dmp文件后导入到Linux的Oracle中

    imp test/test@orcl full=y file=/home/oracle/exp20191017.dmp ignore=y
    

      

    3.问题:导入后发现导入后的表不全,缺失了十七个表

    4.分析TWO:分析日志和表结构发现,这十七个表中都包含有CLOB类型的字段

    5.办法:查询后知道imp命令不能导入clob类型的字段,那就换一种新的命令:expdp/impdp

    导出步骤:

    a.连接Oracle后建立导出目录:注意,这个目录需要手动创建

    create directory dir as 'D:	est';
    

      然后查询导出目录列表:

    select * from dba_directories;
    

      如果发现重名的dir就删掉重建:

    drop directory dir;
    

      然后将此目录的权限授权给test用户:

    grant read,write on directory dir to test;
    

     

    b.然后退出Oracle,在命令行中直接导出:

    expdp test/test directory=dir dumpfile=20191104exp.dmp logfile=20191104log.log  

     这样就可以在D: est中查看到导出的文件了。

    然后我们看导入步骤:

    a.前边和导出一样,导入命令:

    impdp wl/wl directory=dir dumpfile=20191104EXP.DMP REMAP_SCHEMA=test:wl EXCLUDE=USER 
    

      注意:REMAP_SCHEMA=test:wl参数,是导出导入用户名

    如果导入时报错:

    ORA-39002: invalid operation
    ORA-39070: Unable to open the log file.
    ORA-29283: invalid file operation
    ORA-06512: at "SYS.UTL_FILE", line 536
    ORA-29283: invalid file operation
    

      这是linux的目录权限不够,因为执行导入时使用的是Oracle账户,而新建的目录权限时root的权限,我们只需要切回root用户后给予目录授权即可:

    chown -R oracle:oinstall   /home/oracle/20191104
    

      这样就可以直接导入了。

    至于不同版本的Oracle导入导出,下回说。

    工作记录:

    1.expdp导出:
    sqlplus /nolog
    
    connect /as sysdba
    
    create directory dir as 'D:ziyuan';
    
    select * from dba_directories;
    
    drop directory dir;
    
    grant read,write on directory dir to ZIYUAN;
    
    SELECT SUM(s.BYTES)/1024/1024 "sizes(MB)" from dba_segments s where s.owner= 'ZIYUAN';
    
    select count(*) from dba_tables t where t.owner='ZIYUAN';
    
    oracle下
    expdp ZIYUAN/ZIYUAN2015 directory=dir dumpfile=20191104exp.dmp logfile=20191104log.log
    
    2.impdp 导入:
    create directory dir as '/home/oracle/Desktop';
    
    select * from dba_directories;
    
    drop directory dir;
    
    grant read,write on directory dir to MBZY;
    
    SELECT SUM(s.BYTES)/1024/1024 "sizes(MB)" from dba_segments s where s.owner= 'ZIYUAN';
    
    select count(*) from dba_tables t where t.owner='ZIYUAN';
    
    impdp MBZY/MBZY directory=dir dumpfile=20191104EXP.DMP logfile=20191104log.log
    impdp MBZY/MBZY directory=dir dumpfile=20191104EXP.DMP REMAP_SCHEMA=ZIYUAN:MBZY EXCLUDE=USER logfile=20191104log.log
    impdp MBZY/MBZY schemas=certification directory=dir dumpfile=20191104EXP.DMP
    
    impdp MBZY/MBZY schemas=ZIYUAN directory=dir dumpfile=20191104EXP.DMP logfile=imp.log
    
    IMPDP USERID='SYS/ggoabak10@ggbak10 as sysdba' schemas=ZIYUAN directory=dir dumpfile=20191104EXP.DMP logfile=aa.log version=10.2.0.1.0
    

      

  • 相关阅读:
    YXY-压测
    禅道使用
    抓https包
    数据库基本查询语句
    限制网速 制造测试条件
    测试中认识 sqlite
    Adb 命令
    jmeter 查看提取的参数
    jmeter传入字符时文本显示乱码
    nginx 访问springboot项目
  • 原文地址:https://www.cnblogs.com/milude0161/p/11791646.html
Copyright © 2011-2022 走看看