`
morris
  • 浏览: 176491 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle中Exp/Imp的使用

阅读更多
Oracle的exp/imp是许多用户经常使用的两个工具. 它们常被用来做数据库的逻辑备份,数据库重组和数据转移等工作. 先由exp把数据卸出到文件系统, 产生一个.dmp文件, 然后必要时再由imp将数据装入数据库. 对于一般中小型数据库来说, 全数据库的exp所产生的dmp文件可能小于2GB, 但对稍大型的数据库, exp产生的数据动辄数十至上百个GB. 而现时多数操作系统为32位, 其文件系统允许的最大文件为2GB. 这样显然不能由文件系统存放exp产生的数据. 这是问题之一. 另一个问题是随着数据库的不断增大, exp所需时间越来越长以致实际上很难实施. 本文针对以上两个问题讨论相应对策.

我们以UNIX为例首先看看如何超越2GB限制. 这需利用UNIX的通用技术, 如管道(named pipe), 数据拷贝工具dd以及数据压缩(compress). 下面分别讨论这几种技术.

·管道 是一种伪文件. 它存在于内存中, 用于快速I/O操作. 管道的缓冲区采用先进先出机制, 即写管道进程写到缓冲区头部而读管道进程读取管道尾部. 建立管道的命令为”mknod filename p".

·dd 允许我们从一个设备拷贝数据到另一个设备.

·compress 为UNIX数据压缩工具.

实施exp之前, 我们可先检查所产生dmp文件的大小. 以下步骤既可实现,

1. 生成管道:
$ mknod /tmp/mypipe p

2. exp结果输出到该管道
$ exp file=/tmp/mypipe <...其它exp选项> &

3. 读取管道并把结果输出到管道, 只为查看数据量:
$ dd if=/tmp/mypipe of=/dev/null

结果返回exp (.dmp)文件大小, 单位为块(512 bytes).

现在我们可以着手讨论具体方法,
1. 文件压缩
2. 直接exp到磁带
3. 综合方法

首先看文件压缩方法. 利用文件压缩我们可尽量避免dmp文件大小超过2GB限制. 我们利用UNIX的管道技术, 具体步骤如下,
1. 启动compress进程, 使之从管道读取数据并输出到磁盘文件.
$ mknod /tmp/exp_pipe p
$ compress < /tmp/exp_pipe > export.dmp.Z &

2. exp到管道.
$ exp file=/tmp/exp_pipe ... &
imp时情况类似.

再看看直接exp到磁带上的方法.
$ exp file=/dev/rmt/0m volsize=4G
$ imp file=/dev/rmt/0m volsize=4G

最后看看exp到裸设备上的方法,
$ exp file=/dev/rdsk/c0t3d0s0 volsize=4G

imp类似.以上方法都可使我们避免2GB限制.

下面讨论如何缩短exp索需时间的问题. 目前多数用户会采用exp到磁带的方法只因没有足够的剩余硬盘空间. 而整个exp过程所花时间的大部分都在写磁带上. 通过我们上面对UNIX工具的讨论, 我们可以做到先exp到管道, 再将管道数据压缩后输出到磁带上. 这样写磁带的数据量可大大减少, 从而在相当程度上缩短写磁带时间. 另外从Oracle内部角度讲, 从7.3版开始, Oracle允许用户做direct path export, 即跳过Oracle

$ make -f $ORACLE_HOME/rdbms/lib/oracle.mk expst
$ make -f $ORACLE_HOME/rdbms/lib/oracle.mk impst


以上步骤产生的可执行文件expst (exp single task)和impst与exp/imp用法完全相同. 使用它们比使用exp/imp可节省多至30%的时间. 但在使用它们时千万要注意一点, 即一定要保证在使用expst/impst时不能有任何其他用户在使用Oracle数据库, 否则数据库会产生不可预知的后果甚至毁坏.

分享到:
评论

相关推荐

    Oracle中利用EXP/IMP工具实现数据迁移

    通过EXP/IMP可以实现产品系统的跨平台的迁移,需要迁移的数据库已经部署了高级复制环境,打算进行一系列的测试,测试包含高级复制环境数据库在通过 EXP/IMP工具迁移到新的环境中,复制环境是否生效。文中通过实例...

    Oracle数据库逻辑增量备份之exp/imp

    Oracle数据库逻辑增量备份之exp/imp 1 一、实现需求 1 二、逻辑备份恢复工具exp/imp 2 1、逻辑备份原理 2 2、exp语法和参数 2 3、imp语法和参数 3 三、exp逻辑备份 4 1、exp表模式备份 4 2、exp用户模式备份 5 3、...

    Oracle expimp,备份或导入时注意的事项

    本篇主要讲述的是Oracle exp/imp备份导入的实际操作中需要注意的事项的介绍,凡事都不是完美的。不论哪种计算机语言,不论它的实际操作技巧是如何灵活,都是避免不掉它的缺陷之处,当然在Oracle exp /imp备份导入时...

    oracle exp imp详解

    导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理...

    oracle数据库exp_imp命令详解[参考].pdf

    oracle数据库exp_imp命令详解[参考].pdf

    exp/imp命令详解(实例)

    oracle数据库备份exp/imp命令详解(实例)

    Oracle中用exp_imp命令参数详解

    Oracle中用exp/imp命令参数详解 用 exp 数 据 导 出、用 imp 数 据 导 入

    oracle命令 exp&imp命令详解

    oracle命令 导入和导出命令详解 exp和imp命令详解

    Oracle 管道 解决Exp/Imp大量数据处理问题

    Oracle的exp/imp是许多用户经常使用的两个工具. 它们常被用来做数据库的逻辑备份,数据库重组和数据转移等工作.

    EXP IMP详解

    导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理...

    ORACLE的EXP和IMP

    oracle,exp,imp,备份

    oracleClient安装包exp和imp文件.zip

    Oracle客户端11.2.0.4.0的安装包,及其中exp和imp文件

    exp/imp1oracle导入导出

    ............................

    oracle的expimp使用方法学习

    xp/imp两个命令可以说是oracle中最常用的命令了. ORACLE数据库有两类备份方法。第一类为物理备份,该方法实现数据库的完整恢复,但 数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部 ...

    ORACLE12c客户端含sqlplus、exp、imp等工具

    oracle版本绿色客户端(只收集了32位的,可在32、64下运行),并提供了相应的启动脚本,不需要任何配置,可随时随地拷贝使用。...本包提供windows下的32位绿色免安装、简易oracle客户端,含sqlplus、exp、imp等工具

    oracle中exp与imp命令详解.pdf

    oracle中exp与imp命令详解.pdf

    oracle_exp_imp详解

    导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理...

    oracle9i的EXP和IMP

    oracle9i的EXP和IMP。方便只下载客户端精简版,但是又有导入导出需求的朋友。

    Oracle 10.2.0.5 客户端 精简版,包含exp、imp功能

    Oracle 10.2.0.5 客户端 精简版,可用sqlplusw、PL/SQL Developer 包含exp、imp功能(仅在10.2.0.5及以上版本数据库上可用)

    oracle imp exp 命令详解

    oracle imp exp 命令详解 oracle imp exp 命令详解 oracle imp exp 命令详解 oracle imp exp 命令详解 oracle imp exp 命令详解

Global site tag (gtag.js) - Google Analytics