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数据库, 否则数据库会产生不可预知的后果甚至毁坏.
分享到:
相关推荐
通过EXP/IMP可以实现产品系统的跨平台的迁移,需要迁移的数据库已经部署了高级复制环境,打算进行一系列的测试,测试包含高级复制环境数据库在通过 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 exp/imp备份导入的实际操作中需要注意的事项的介绍,凡事都不是完美的。不论哪种计算机语言,不论它的实际操作技巧是如何灵活,都是避免不掉它的缺陷之处,当然在Oracle exp /imp备份导入时...
导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理...
oracle数据库exp_imp命令详解[参考].pdf
oracle数据库备份exp/imp命令详解(实例)
Oracle中用exp/imp命令参数详解 用 exp 数 据 导 出、用 imp 数 据 导 入
oracle命令 导入和导出命令详解 exp和imp命令详解
Oracle的exp/imp是许多用户经常使用的两个工具. 它们常被用来做数据库的逻辑备份,数据库重组和数据转移等工作.
导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理...
oracle,exp,imp,备份
Oracle客户端11.2.0.4.0的安装包,及其中exp和imp文件
............................
xp/imp两个命令可以说是oracle中最常用的命令了. ORACLE数据库有两类备份方法。第一类为物理备份,该方法实现数据库的完整恢复,但 数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部 ...
oracle版本绿色客户端(只收集了32位的,可在32、64下运行),并提供了相应的启动脚本,不需要任何配置,可随时随地拷贝使用。...本包提供windows下的32位绿色免安装、简易oracle客户端,含sqlplus、exp、imp等工具
oracle中exp与imp命令详解.pdf
导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理...
oracle9i的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 命令详解