设为首页收藏本站
查看: 111|回复: 0

[PHP] Oracle数据DOS命令导入导出imp/exp

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34274
主题
17031
UID
1347
M币
67
贡献
17176

  • 发表于 2018-7-3 16:27:00 | 显示全部楼层 |阅读模式
    imp 命令是在dos提示符下执行的。直接cmd后执行而不是在sql下执行的 数据导出:1 将数据库TEST完全导出,用户名system 密码manage

      imp 命令是在dos提示符下执行的。
    直接cmd后执行而不是在sql下执行的
    数据导出:
    1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中 exp system/manager@TESTfile=d:daochu.dmp full=y
    2 将数据库中system用户与sys用户的表导出
    exp system/manager@TESTfile=d:daochu.dmp owner=(system,sys)
    3 将数据库中的表inner_notify、notify_staff_relat导出
    expaichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmptables=(inner_notify,notify_staff_relat)
    4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
    exp system/manager@TESTfile=d:daochu.dmp tables=(table1) query=" where filed1 like'00%'"
      上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
    也可以在上面命令后面 加上 compress=y 来实现。
    数据的导入
    1 将D:daochu.dmp 中的数据导入 TEST数据库中。
    impsystem/manager@TEST file=d:daochu.dmp
    imp aichannel/aichannel@HUSTfull=y file=d:datanewsmgnt.dmp ignore=y
    上面可能有点问题,因为有的表已经存在,然后它就报错,,对该表就不进行导入。
    在后面加上 ignore=y 就可以了。
    2 将d:daochu.dmp中的表table1 导入
    imp system/manager@TEST file=d:daochu.dmp tables=(table1)
    基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。
    注意:
    操作者要有足够的权限,权限不够它会提示。
    数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。

    当然,上面的方法在导出数据时可能会导出很大的包,那是因为你的用户可能在授权的时候授予了DBA的权限,所以可以采用下面方法来进行数据库备份:
    数据库备份
    建议系统过渡后,每周进行一次备份。或者在数据表发生重大改变前,对要改变的数据表进行备份。
    执行以下步骤,进行备份。
    在命令行里,敲入“cmd”,回车,进入命令行窗口。
    在窗口中,输入:
    exp mas/123456@mas
    系统提示:输入数组提取缓冲区大小: 4096 >
    可以直接回车;
    系统提示:导出文件: EXPDAT.DMP>
    此处输入导出文件的位置,其路径必须存在,Oracle在这里不会自动建立路径,但可以建立文件名。备份文件以dmp作为后缀。
    输入内容如:e:\work\mas_db_090925v1.dmp 回车
    系统提示: (1)E(完整的数据库),(2)U(用户) 或 (3)T(表): (2)U >u
    此处可以输入u,也可以直接回车,因为系统此时默认的是U
    系统提示:导出权限(yes/no):yes>回车
    系统提示:导出表数据(yes/no):yes>回车
    系统提示:压缩区(yes/no):yes>回车
    系统提示:要导出的用户: (RETURN 以退出) > mas
    系统提示:要导出的用户: (RETURN 以退出) > 回车
    此时系统会自动进行备份
    本文对Oracle数据的导入导出 imp ,exp 两个命令进行了介绍,并对其相应的参数进行了说明,然后通过一些示例进行演练,加深理解.
    文章最后对运用这两个命令可能出现的问题(如权限不够,不同oracle版本)进行了探讨,并提出了相应的解决方案;
    本文部分内容摘录自网络,感谢网友的经验总结;

    一.说明
      oracle的exp/imp命令用于实现对数据库的导出/导入操作;
    exp命令用于把数据从远程数据库服务器导出至本地,生成dmp文件;
    imp命令用于把本地的数据库dmp文件从本地导入到远程的Oracle数据库中。
    二.语法
    可以通过在命令行输入 imp help=y 获取imp的语法信息:
    =============================================================================
    C:\Documents andSettings\auduser>imp help=y
      Import: Release 9.0.1.1.1 - Production on 星期二5月 20 18:21:57 2008
      (c) Copyright 2001 OracleCorporation. All rights reserved.
      可以通过输入 IMP 命令和您的用户名/口令
    后接用户名/口令的命令:
      例程: IMP SCOTT/TIGER
      或者, 可以通过输入 IMP 命令和各种参数来控制“导入”
    按照不同参数。要指定参数,您可以使用关键字:
      格式: IMP KEYWORD=value 或KEYWORD=(value1,value2,...,vlaueN)
    例程: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT)FULL=N
    或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表
      USERID 必须是命令行中的第一个参数。
      关键字 说明(默认) 关键字 说明(默认)
    --------------------------------------------------------------------------
    USERID 用户名/口令 FULL 导入整个文件 (N)
    BUFFER 数据缓冲区大小 FROMUSER 所有人用户名列表
    FILE 输入文件(EXPDAT.DMP) TOUSER 用户名列表
    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)
      下列关键字仅用于可传输的表空间
    TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)
    TABLESPACES 将要传输到数据库的表空间
    DATAFILES 将要传输到数据库的数据文件
    TTS_OWNERS 拥有可传输表空间集中数据的用户
    ==============================================
    同样可以通过输入 exp help=y 获取exp的语法信息
      Microsoft Windows XP [版本 5.1.2600]
    (C) 版权所有 1985-2001 Microsoft Corp.
      C:\Documents andSettings\auduser>exp help=y
      Export: Release 9.0.1.1.1 - Production on 星期二5月 20 18:26:34 2008
      (c) Copyright 2001 OracleCorporation. All rights reserved.
      通过输入 EXP 命令和用户名/口令,您可以
    后接用户名/口令的命令:
      例程: EXP SCOTT/TIGER
      或者,您也可以通过输入跟有各种参数的 EXP 命令来控制“导出”
    按照不同参数。要指定参数,您可以使用关键字:
      格式: EXP KEYWORD=value 或KEYWORD=(value1,value2,...,valueN)
    例程: EXP SCOTT/TIGER GRANTS=YTABLES=(EMP,DEPT,MGR)
    或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表
      USERID 必须是命令行中的第一个参数。
      关键字 说明(默认) 关键字 说明(默认)
    --------------------------------------------------------------------------
    USERID 用户名/口令 FULL 导出整个文件 (N)
    BUFFER 数据缓冲区大小 OWNER 所有者用户名列表
    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 模式导出的模板名称
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表