目 录CONTENT

文章目录

Oralce导入导出工具exp/imp和expdp/impdp使用解析

暮渔木鱼
2024-03-28 / 0 评论 / 0 点赞 / 3 阅读 / 0 字 / 正在检测是否收录...

Oracle 数据库提供了两种数据导出/导入工具:传统的 exp/imp(Export/Import)和高效的 expdp/impdp(Data Pump)。以下是它们的详细解析、参数说明及使用场景对比。


一、传统工具:exp/imp

1. 基本功能

  • exp:将数据库对象(表、索引、存储过程等)导出为二进制文件(.dmp)。
  • imp:将导出的 .dmp 文件导入到数据库中。
  • 特点:适用于小数据量,简单操作,但性能较低,不支持并行处理。

2. 常用参数说明

exp 导出参数

参数 说明
FULL=Y 导出整个数据库(需权限)。
OWNER=user1 导出指定用户的所有对象。
TABLES=table1 导出指定表(可多表:TABLES=table1,table2)。
FILE=exp.dmp 指定导出文件名。
ROWS=Y 导出数据(默认);ROWS=N 仅导出表结构。
COMPRESS=Y 压缩存储(仅表结构,不影响数据)。
LOG=exp.log 指定导出日志文件。

示例

exp system/password@orcl FILE=/data/exp.dmp OWNER=scott LOG=exp.log

imp 导入参数

参数 说明
FULL=Y 导入整个数据库。
FROMUSER=scott 指定导出文件的源用户。
TOUSER=new_user 将对象导入到新用户。
TABLES=table1 导入指定表。
FILE=exp.dmp 指定导入文件名。
IGNORE=Y 忽略创建错误(如表已存在)。
LOG=imp.log 指定导入日志文件。

示例

imp system/password@orcl FILE=/data/exp.dmp FROMUSER=scott TOUSER=hr IGNORE=Y

二、高效工具:expdp/impdp(Data Pump)

1. 基本功能

  • expdp:基于服务器端的并行导出工具,生成 .dmp 文件,支持大文件、并行操作和元数据过滤。
  • impdp:并行导入工具,支持灵活的数据映射和转换。
  • 特点
    • 性能高(支持并行处理)。
    • 支持压缩、加密、网络直接传输。
    • 依赖数据库目录对象(DIRECTORY)存储文件。

2. 核心参数说明

expdp 导出参数

参数 说明
DIRECTORY=DATA_PUMP_DIR 指定导出文件存放的目录对象(需提前创建)。
DUMPFILE=expdp.dmp 导出文件名(可多文件:DUMPFILE=expdp_%U.dmp%U表示自动编号)。
SCHEMAS=scott 导出指定用户的所有对象。
TABLES=table1 导出指定表。
FULL=Y 导出全库。
PARALLEL=4 并行进程数(提升导出速度)。
COMPRESSION=ALL 压缩数据(支持 METADATA_ONLYDATA_ONLYALL)。
EXCLUDE=TABLE:"IN ('TEMP')" 排除指定对象(支持正则表达式)。
LOGFILE=expdp.log 指定日志文件。

示例

expdp system/password@orcl DIRECTORY=DATA_PUMP_DIR DUMPFILE=expdp.dmp SCHEMAS=scott PARALLEL=4

impdp 导入参数

参数 说明
DIRECTORY=DATA_PUMP_DIR 指定导入文件的目录对象。
DUMPFILE=expdp.dmp 导入文件名。
REMAP_SCHEMA=scott:hr 将对象从用户 scott 映射到 hr
REMAP_TABLESPACE=old_ts:new_ts 将表空间从 old_ts 映射到 new_ts
TABLE_EXISTS_ACTION=REPLACE 表存在时的处理方式(SKIP, APPEND, TRUNCATE, REPLACE)。
TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y 禁用归档日志(加速导入)。

示例

impdp system/password@orcl DIRECTORY=DATA_PUMP_DIR DUMPFILE=expdp.dmp REMAP_SCHEMA=scott:hr

三、exp/imp 与 expdp/impdp 对比

特性 exp/imp expdp/impdp
性能 单线程,速度较慢。 并行处理,性能高。
存储位置 客户端生成文件。 服务器端目录对象(需 DIRECTORY)。
压缩与加密 不支持。 支持压缩(COMPRESSION)、加密(ENCRYPTION)。
元数据过滤 有限(仅 EXCLUDE/INCLUDE)。 强大的元数据过滤(如 EXCLUDE=TABLE)。
网络传输 不支持。 支持直接导入到远程数据库(NETWORK_LINK)。
依赖关系 依赖客户端安装。 完全基于服务器端。

四、关键注意事项

  1. 目录对象权限​Data Pump 需要操作系统的目录权限和数据库目录对象的读写权限:

    CREATE DIRECTORY DATA_PUMP_DIR AS '/data/pump';
    GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO system;
    
  2. 版本兼容性

    • Data Pump 仅支持 Oracle 10g 及以上版本。
    • 导出文件默认不兼容低版本(可通过 VERSION 参数指定兼容性)。
  3. 字符集问题​导出/导入时需确保源库和目标库字符集一致,否则可能乱码。

  4. 大文件处理
    Data Pump 支持分片导出(FILESIZE)和并行处理(PARALLEL)。


五、总结

  • exp/imp:适合小数据量、简单场景,无需额外配置。
  • expdp/impdp:推荐用于大数据量、高性能需求,支持压缩、并行和元数据过滤。
  • 选择建议:优先使用 Data Pump(expdp/impdp),尤其是生产环境。

示例命令对比

# 传统导出
exp system/password@orcl FILE=exp.dmp OWNER=scott

# Data Pump 导出
expdp system/password@orcl DIRECTORY=DATA_PUMP_DIR DUMPFILE=expdp.dmp SCHEMAS=scott PARALLEL=4

通过合理选择工具和参数,可以显著提升数据迁移效率并减少运维成本。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区