返回顶部
首页 > 资讯 > 数据库 >exp imp
  • 164
分享到

exp imp

expimp 2020-10-12 17:10:45 164人浏览 绘本
摘要

一.说明    oracle 的exp/imp命令用于实现对数据库的导出/导入操作;   exp命令用于把数据从远程数据库server导出至本地,生成dmp文件;   imp命令用于把本地的数据库dmp文件从本地导入到远程的Ora

exp imp

一.说明

   oracle 的exp/imp命令用于实现对数据库的导出/导入操作;
   exp命令用于把数据从远程数据库server导出至本地,生成dmp文件;
   imp命令用于把本地的数据库dmp文件从本地导入到远程的Oracle数据库中。

二.语法

能够通过在命令行输入 imp help=y 获取imp的语法信息:
=============================================================================
  C:/Documents and Settings/auduser>imp help=y

  Import: Release 9.0.1.1.1 - Production on 星期二 5月 20 18:21:57 2008

  (c) Copyright 2001 Oracle Corporation.  All rights reserved.

  能够通过输入 IMP 命令和您的username/口令
  后接username/口令的命令:

  例程: IMP SCOTT/TIGER

  或者, 能够通过输入 IMP 命令和各种參数来控制“导入”
  依照不同參数。要指定參数,您能够使用keyWord:

  格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
  例程: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
  或 TABLES=(T1: P1,T1: P2),假设 T1 是分区表

  USERID 必须是命令行中的第一个參数。

  keyword  说明(默认)        keyword      说明(默认)
  --------------------------------------------------------------------------
  USERID   username/口令           FULL         导入整个文件 (N)
  BUFFER   数据缓冲区大小         FROMUSER     全部人username列表
  FILE     输入文件 (EXPDAT.DMP)    TOUSER       username列表
  SHOW     仅仅列出文件内容 (N) TABLES      表名列表
  IGNORE   忽略创建错误 (N)    RECORDLENGTH  IO 记录的长度
  GRANTS  导入权限 (Y)           INCTYPE      增量导入类型
  INDEXES 导入索引 (Y)          COMMIT       提交数组插入 (N)
  ROWS    导入数据行 (Y)        PARFILE      參数文件名称
  LOG      屏幕输出的日志文件   CONSTRaiNTS  导入限制 (Y)
  DESTROY                覆盖表空间数据文件 (N)
  INDEXFILE              将表/索引信息写入指定的文件
  SKIP_UNUSABLE_INDEXES  跳过不可用索引的维护 (N)
  FEEDBACK               每 x 行显示运行进度 (0)
  TOID_NOVALIDATE        跳过指定类型 ID 的验证
  FILESIZE               每一个转储文件的最大大小
  STATISTICS             始终导入估计算的统计信息
  RESUMABLE              遇到与空格有关的错误时挂起 (N)
  RESUMABLE_NAME         用来标识可恢复语句的文本字符串
  RESUMABLE_TIMEOUT      RESUMABLE 的等待时间
  COMPILE                编译过程, 程序包和函数 (Y)

  下列keyword仅用于可传输的表空间
  TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)
  TABLESPACES 将要传输到数据库的表空间
  DATAFILES 将要传输到数据库的数据文件
  TTS_OWNERS 拥有可传输表空间集中数据的用户

==============================================
相同能够通过输入 exp help=y 获取exp的语法信息

  Microsoft windows XP [版本号 5.1.2600]
  (C) 版权全部 1985-2001 Microsoft Corp.

  C:/Documents and Settings/auduser>exp help=y

  Export: Release 9.0.1.1.1 - Production on 星期二 5月 20 18:26:34 2008

  (c) Copyright 2001 Oracle Corporation.  All rights reserved.

 

  通过输入 EXP 命令和username/口令,您能够
  后接username/口令的命令:

  例程: EXP SCOTT/TIGER

  或者,您也能够通过输入跟有各种參数的 EXP 命令来控制“导出”
  依照不同參数。要指定參数,您能够使用keyword:

  格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
  例程: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
  或 TABLES=(T1: P1,T1: P2),假设 T1 是分区表

  USERID 必须是命令行中的第一个參数。

  keyword  说明(默认)        keyword      说明(默认)
  --------------------------------------------------------------------------
  USERID   username/口令           FULL         导出整个文件 (N)
  BUFFER   数据缓冲区大小         OWNER     全部者username列表
  FILE       输出文件 (EXPDAT.DMP)  TABLES       表名称列表
  COMPRESS   导入到一个区 (Y) RECORDLENGTH IO 记录的长度
  GRANTS  导出权限 (Y)           INCTYPE      增量导出类型
  INDEXES    导出索引 (Y)         RECORD       跟踪增量导出 (Y)
  DIRECT     直接路径 (N)            TRIGGERS     导出触发器 (Y)
  LOG        屏幕输出的日志文件  STATISTICS   分析对象 (ESTIMATE)
  ROWS    导出数据行 (Y)        PARFILE      參数文件名称
  CONSISTENT 交叉表一致性    CONSTRAINTS  导出约束条件 (Y)

  FEEDBACK             每 x 行显示运行进度 (0)
  FILESIZE             每一个转储文件的最大大小
  FLASHBACK_SCN        用于回调会话快照的 SCN
  FLASHBACK_TIME       用来获得最接近于指定时间的 SCN 的时间
  QUERY                用来导出表的子集的选择子句
  RESUMABLE            遇到与空格有关的错误时挂起 (N)
  RESUMABLE_NAME       用来标识可恢复语句的文本字符串
  RESUMABLE_TIMEOUT    RESUMABLE 的等待时间
  TTS_FULL_CHECK       对 TTS 运行全然或部分相关性检查
  TABLESPACES          要导出的表空间列表
  TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
  TEMPLATE 调用 iAS 模式导出的模板名称

三.使用演示样例

1 数据导出:

 1 将数据库SampleDB全然导出,usernamesystem passwordmanager 导出到E:/SampleDB.dmp中

   exp system/manager@TestDB file=E:/sampleDB.dmp full=y

 2 将数据库中system用户与sys用户的表导出

   exp system/manager@TestDB file=E:/sampleDB.dmp  owner=(system,sys)

 3 将数据库中的表 TableA,TableB 导出

    exp system/manager@TestDB  file=E:/sampleDB.dmp  tables=(TableA,TableB)

 4 将数据库中的表tableA中的字段filed1 值为 "王五" 的数据导出

   exp system/manager@TestDB  file=E:/sampleDB.dmp  tables=(tableA)  query=" where filed1="王五"
 
   假设想对dmp文件进行压缩,能够在上面命令后面 加上 compress=y 来实现。

2 数据的导入

 1 将备份数据库文件里的数据导入指定的数据库SampleDB 中,假设 SampleDB 已存在该表,则不再导入;

   imp system/manager@TEST  file=E:/sampleDB.dmp  full=y  ignore=y
 

 2 将d:/daochu.dmp中的表table1 导入

 imp system/manager@TEST  file=E:/sampleDB.dmp  tables=(table1)

导入一个完整数据库

 imp system/manager file=bible_db log=dible_db full=y ignore=y

导入一个或一组指定用户所属的所有表、索引和其它对象

 imp system/manager file=seapark log=seapark fromuser=seapark imp
 system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)

将一个用户所属的数据导入还有一个用户

 imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy
 imp system/manager file=tank log=tank fromuser=(seapark,amy)
 touser=(seapark1, amy1)

导入一个表

 imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)

从多个文件导入

 imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G full=y

使用參数文件

 imp system/manager parfile=bible_tables.par
bible_tables.par參数文件:
 #Import the sample tables used for the Oracle8i Database Administrator"s
Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import
參数文件演示样例见附录


9. 增量导入

 imp system./manager inctype= RECTORE FULL=Y  FILE=A

 
不少情况下要先将表彻底删除,然后导入。
 

 

四.參数说明

1、8i EXP经常使用选项
 1、FULL,这个用于导出整个数据库,在ROWS=N一起使用时,能够导出整个数据库的结构。比如:
 exp sys file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y
 2、BUFFER和FEEDBACK,在导出比較多的数据时,我会考虑设置这两个參数。比如:
 exp new file=yw97_2003.dmp log=yw97_2003_3.log feedback=10000 buffer=100000000 tables=WO4,OK_YT
 3、FILL和LOG,这两个參数分别指定备份的DMP名称和LOG名称,包含文件名称和文件夹,样例见上面。
 须要说明的是,EXP能够直接备份到磁带中,即使用FILE=/dev/rmt0(磁带设备名),可是一般我们都不这么做,原因有二:一、这样做的速度会慢非常多,二、如今一般都是使用磁带库的,不建议直接对磁带进行操作。至于没有使用磁带库的朋友能够考虑和UNIX的TAR结合使用。
 假设你真想使用EXP直接到磁带,你能够參考Metalink文章“EXPORTING TO TAPE ON UNIX SYSTEMS”(文档号:30428.1),该文中有详解。
 4、COMPRESS參数将在导出的同一时候合并碎块,尽量把数据压缩到initial的EXTENT里,默认是N,一般建议使用。DIRECT參数将告诉EXP直接读取数据,而不像传统的EXP那样,使用SELECT来读取表中的数据,这样就降低了sql语句处理过程。一般也建议使用。只是有些情况下DIRECT參数是无法使用的。
 5、怎样使用SYSDBA运行EXP/IMP?
 这是一个非常现实的问题,有时候我们须要使用SYSDBA来运行EXP/IMP,如进行传输表空间的EXP/IMP,以及在9i下用SYS用户来运行EXP/IMP时,都须要使用SYSDBA才可。我们能够使用以下方式连入EXP/IMP:
 exp ""sys/sys as sysdba"" file=1.dmp tables=Gototop.t rows=n
 6、QUERY參数后面跟的是where条件,值得注意的是,整个where子句须要使用""括起来,where子句的写法和SELECT中同样,假设是UNIX平台全部"和"都须要使用/u26469屏蔽它们的特殊含义:
 exp gototop/gototop file=1.dmp log=1.log tables=cyx.t query="where c1=20 and c2=gototop"
 假设是windows平台,则使用以下的格式:
      exp c/c@ncn file=c.dmp log=c.log tables=t query="""where id=1 and name="gototop""""
4.2、8i IMP经常使用选项
 1、FROMUSER和TOUSER,使用它们实现将数据从一个SCHEMA中导入到另外一个SCHEMA中。
 2、IGNORE、GRANTS和INDEXES,当中IGNORE參数将忽略表的存在,继续导入,这个对于须要调整表的存储參数时非常实用,我们能够先依据实际情况用合理的存储參数建好表,然后直接导入数据。而GRANTS和INDEXES则表示是否导入授权和索引,假设想使用新的存储參数重建索引,或者为了加快到入速度,我们能够考虑将INDEXES设为N,而GRANTS一般都是Y。
 另外一个EXP/IMP都有的參数是PARFILE,它是用来定义EXP/IMP的參数文件,也就是说,上面的參数都能够写在一个參数文件里,但我们一般非常少使用。
4.4、Oracle9i EXP功能描写叙述
 Oracle9i EXP在原有的基础上新增了部分新的參数,按功能主要分为以下几个部分:
 1、OBJECT_CONSISTENT - 用于设置EXP对象为仅仅读以保持对象的一致性。默认是N。
 2、FLASHBACK_SCN和FLASHBACK_TIME - 用于支持FLASHBACK功能而新增。
 3、RESUMABLE、RESUMABLE_NAME和RESUMABLE_TIMEOUT - 用于支持RESUMABLE空间分配而新增。
 4、TTS_FULL_CHECK - 用于在传输表空间时使用依赖性检查。
 5、TEMPLATE - 用于支持iAS。
 6、TABLESPACES - 设置表空间导出模式。个人认为对于一般用户而言,这个才是新增參数中最实用的一个,能够让用户在原来的FULL、OWNER、TABLES的基础上多了一种选择,使得EXP更加灵活。

五、不同版本号的EXP/IMP问题?
 一般来说,从低版本号导入到高版本号问题不大,麻烦的是将高版本号的数据导入到低版本号中,在Oracle9i之前,不同版本号Oracle之间的EXP/IMP能够通过以下的方法来解决:
 1、在高版本号数据库上执行底版本号的catexp.sql;
 2、使用低版本号的EXP来导出高版本号的数据;
 3、使用低版本号的IMP将数据库导入究竟版本号数据库中;
 4、在高版本号数据库上又一次执行高版本号的catexp.sql脚本。
 但在9i中,上面的方法并不能解决这个问题。假设直接使用底版本号EXP/IMP会出现例如以下错误:
 EXP-00008: ORACLE error %lu encountered
 ORA-00904: invalid column name
 这已经是一个发布的BUG,须要等到Oracle10.0才干解决,BUG号为2261,你能够到METALINK上去查看有关此BUG的具体信息。
 BUG归BUG,我们的工作还是要做,在没有Oracle的支持之前,我们就自己解决。在Oracle9i中执行以下的SQL重建exu81rls视图就可以。
 CREATE OR REPLACE view exu81rls 
 (objown,objnam,policy,polown,polsch,polfun,stmts,chkopt,enabled,spolicy) 
 AS select u.name, o.name, r.pname, r.pfschma, r.ppname, r.pfname, 
 decode(bitand(r.stmt_type,1), 0,"", "SELECT,") 
 || decode(bitand(r.stmt_type,2), 0,"", "INSERT,") 
 || decode(bitand(r.stmt_type,4), 0,"", "UPDATE,") 
 || decode(bitand(r.stmt_type,8), 0,"", "DELETE,"), 
 r.check_opt, r.enable_flag, 
 DECODE(BITAND(r.stmt_type, 16), 0, 0, 1) 
 from user$ u, obj$ o, rls$ r 
 where u.user# = o.owner# 
 and r.obj# = o.obj# 
 and (uid = 0 or 
 uid = o.owner# or 
 exists ( select * from session_roles where role="SELECT_CATALOG_ROLE") 
 ) 
 / 
 grant select on sys.exu81rls to public; 
 / 

六、其它问题

 本文仅仅讨论了Oracle8i和9i中的EXP/IMP的一些情况,对于之前的版本号,在8.0.X中,除了QUERY參数不能用外,其他区别不大。针对没有QUERY的情况,我们能够先在数据库中使用查询条件建立暂时中间表,然后使用EXP导出这个中间表就可以。至于Oracle7由于眼下使用的人较少,gototop不打算在此做详解了,假设读者朋友有需求,你能够參考Metalink文档:“Overview of Export and Import in Oracle7”(文档号:61949.1)。关于EXP/IMP的具体參数信息你能够通过EXP/IMP HELP=Y来获得。
 另外关于传输表空间的很多其他信息能够參考以下的Metelink文档,本文不再详述。
 [NOTE:77523.1] Transportable Tablespaces -- An Example to setup and use. 
 [NOTE:100698.1] PerfORM tablespace point-in-time recovery using Transportable Tablespace. 
 在进行并行EXP/IMP的时候,假设IMP过程建索引的话不建议同一时候执行5个以上的IMP,假设你想加高速度,能够在IMP的时候不建索引,这样仅仅要内存同意,能够多跑几个,然后是SQL脚本创建须要的索引。 


注意:
 操作者要有足够的权限,权限不够它会提示。
 数据库能否够连上, 能够用tnsping TestDB  来获得数据库 TestDB 能否连上。

附录一:
 给用户添加导入数据权限的操作
 第一, 启动sql*puls
 第二,以system/manager登陆
 第三,create user username IDENTIFIED BY password (假设已经创建过用户,这步能够省略)
 第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
   DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
      DBA,CONNECT,RESOURCE,CREATE SESSION  TO username字
 第五, 执行-cmd-进入dmp文件所在的文件夹,
      imp userid=system/manager full=y file=*.dmp
      或者 imp userid=system/manager full=y file=filename.dmp

  附录二:
 Oracle 不同意直接改变表的拥有者, 利用Export/Import能够达到这一目的.
  先建立import9.par,
  然后,使用时命令例如以下:imp parfile=/filepath/import9.par
  例 import9.par 内容例如以下:
        FROMUSER=TGPMS       
        TOUSER=TGPMS2     (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户能够不同)          
        ROWS=Y
        INDEXES=Y
        GRANTS=Y
        CONSTRAINTS=Y
        BUFFER=409600
        file==/backup/ctgpc_20030623.dmp
        log==/backup/import_20030623.log

您可能感兴趣的文档:

--结束END--

本文标题: exp imp

本文链接: https://lsjlt.com/news/6966.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • exp imp
    一.说明    oracle 的exp/imp命令用于实现对数据库的导出/导入操作;   exp命令用于把数据从远程数据库server导出至本地,生成dmp文件;   imp命令用于把本地的数据库dmp文件从本地导入到远程的Ora...
    99+
    2020-10-12
    exp imp
  • exp和imp详解
      之前写了关于expdp和impdp的文章,感兴趣的可以移步http://blog.itpub.net/30485601/viewspace-2151455/,由于expdp和impdp是ora...
    99+
    2024-04-02
  • Oracle下的exp/imp
       在平时做Oracle的备份的时候一般都是做逻辑热备份,而做逻辑热备份一般都是使用exp/imp,在这里就简单的说一说。   使用exp导出数据imp导入数据操作...
    99+
    2024-04-02
  • ORACLE exp/imp导入报错IMP-00009&IMP-00028&IMP-00015
        2017年8月14日,一实施同事使用imp导入exp导出的dmp文件时,遇到报错IMP-00009&IMP,具体报错如图所示: 出现报错的原因可能是dmp文件本身不完整...
    99+
    2024-04-02
  • EXP/IMP工具怎么用
    小编给大家分享一下EXP/IMP工具怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! Exp概...
    99+
    2024-04-02
  • Oracle 传输表空间-EXP/IMP
    Transport_Tablespace-EXP/IMP   通过传输表空间(EXP/IMP方式)将192.168.3.199数据库下,chenjc用户下的t1表,导入到192...
    99+
    2024-04-02
  • Oracle中exp和imp怎么用
    这篇文章主要介绍Oracle中exp和imp怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! Oracle数据库导入导出方法:     ...
    99+
    2024-04-02
  • 怎么使用oracle exp和imp
    这篇文章主要讲解了“怎么使用oracle exp和imp”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用oracle exp和imp”吧!--1.ex...
    99+
    2024-04-02
  • 利用exp/imp传输表空间
    传输表空间TABLESPACES、TRANSPORT_TABLESPACE、TTS_FULL_CHECK 使用exp/imp将表空间data_tbs从a库传输到b库?下面是准备工作。 create tabl...
    99+
    2024-04-02
  • EXP/IMP双引号有什么用
    小编给大家分享一下EXP/IMP双引号有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 在导...
    99+
    2024-04-02
  • orcle imp/exp 导入导出dmp 文件
    导入 文件 需要导入的用户 来源用户 登陆的用户 imp file=E...
    99+
    2019-11-21
    orcle imp/exp 导入导出dmp 文件
  • exp imp 导入到FTP 从FTP导出
    ...
    99+
    2024-04-02
  • exp/imp与expdp/impdp区别是什么
    exp/imp与expdp/impdp区别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在平常备库和数据库迁移的时候,当遇到大的数据...
    99+
    2024-04-02
  • Oracle之管理以及exp、imp的使用
    oracle管理、备份与恢复管理数据库的用户是sys、system,可以将sys比作董事长,system比作总经理,两者有如下区别1、最重要的区别,存储的数据的重要性不一样sys:所有oracle的数据字典...
    99+
    2024-04-02
  • Oracle—— 导入/导出 数据:exp,imp 命令
    exp,imp 命令是需要在windows  的 cmd  命令中执行的命令,主要用于数据的导入和导出工作,方便高效。远程地址——  @ip:port/orcl   ...
    99+
    2024-04-02
  • ORA-1400 抛弃exp imp 数据迁移吧
    描述: 客户需要做数据迁移,从Oralce 10g 迁移到11g RAC环境下,使用了exp直接路径导出,导入到11g报错ORA-1400。建议在10g以后大家可以使用数据泵进行数据库的迁移工...
    99+
    2024-04-02
  • oracle中exp和imp的作用是什么
    oracle中exp和imp的作用是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。oracle中exp和imp是什么,or...
    99+
    2024-04-02
  • 数据库中exp/expdp imp/impdp怎么用
    小编给大家分享一下数据库中exp/expdp imp/impdp怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • CentOS7使用exp/imp时报错怎么办
    这篇文章给大家分享的是有关CentOS7使用exp/imp时报错怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在CentOS7下使用exp语句导出数据时遇到报错,使用的脚本...
    99+
    2024-04-02
  • oracle中exp和imp的区别是什么
    oracle中exp和imp的区别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  exp和imp的输入都是名字和值对:exp pa...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作