快速导出Oracle表命令

使用Oracle数据泵工具expdp导出数据库表,命令基本结构为:expdp 用户名/密码 DIRECTORY=目录对象名 DUMPFILE=导出文件名.dmp LOGFILE=日志名.log TABLES=表名1,表名2,需提前创建目录对象并授权。

使用数据泵工具(expdp – 推荐)
适用Oracle 10g及以上版本,高效且功能强大

快速导出Oracle表命令

步骤详解:

  1. 创建逻辑目录(需DBA权限)
    数据泵要求操作系统的物理目录必须与Oracle逻辑目录映射:

    CREATE DIRECTORY export_dir AS '/u01/app/oracle/dumps';  -- 替换为实际路径
    GRANT READ, WRITE ON DIRECTORY export_dir TO 您的用户名;  -- 授权给操作用户
  2. 执行导出命令(命令行操作)
    基础导出单表命令:

    expdp 用户名/密码@数据库实例 DIRECTORY=export_dir DUMPFILE=table_export.dmp LOGFILE=export_log.log TABLES=表名

    关键参数说明:

    • SCHEMAS:导出整个用户下的表
    • TABLESPACES:导出指定表空间的所有表
    • INCLUDE/EXCLUDE:按对象类型过滤
    • COMPRESSION=ALL:压缩导出文件
    • PARALLEL=4:启用并行加速
  3. 验证结果
    检查日志文件 export_log.log 中的 ORA- 错误及末尾的 “成功转储” 提示。


使用传统导出工具(exp – 兼容老版本)
适用于Oracle 9i等旧环境

快速导出Oracle表命令

操作命令:

exp 用户名/密码@数据库实例 FILE=导出文件.dmp LOG=导出日志.log TABLES=(表名1,表名2) ROWS=Y

注意:

  • 若导出大表可能效率较低
  • 不支持部分高级特性(如压缩、并行)

通过SQL Developer图形化导出
适合非命令行用户

  1. 连接数据库 → 展开”表”目录
  2. 右键目标表 → 选择”导出”
  3. 设置选项:
    • 格式:SQLLoader
    • 输出文件:指定保存路径
    • 勾选”导出数据”
  4. 点击”应用”执行导出

关键注意事项:

  1. 权限要求

    • expdp 需要 EXP_FULL_DATABASE 角色
    • 操作系统目录需对Oracle进程可读写
  2. 字符集一致性
    导出前确认NLS_LANG环境变量与数据库一致,避免中文乱码:

    快速导出Oracle表命令

    export NLS_LANG=AMERICAN_AMERICA.AL32UTF8  # Linux示例
  3. 大表优化建议

    • 使用 PARALLEL 参数提升速度
    • 添加 COMPRESSION=ALL 减少空间占用
    • 通过 QUERY 参数分批次导出(例:QUERY="WHERE id<10000"
  4. 云数据库特殊说明
    AWS RDS/Oracle Cloud需通过DBMS_DATAPUMP包操作,示例:

    BEGIN
      DBMS_DATAPUMP.DUMP_HANDLE := DBMS_DATAPUMP.OPEN(
        operation => 'EXPORT', 
        job_mode  => 'TABLE');
    END;

故障排查指引:

  • ORA-39002:目录不存在 → 检查DIRECTORY对象权限
  • ORA-01555:快照过旧 → 增大UNDO_RETENTION参数
  • 导出文件为0字节 → 验证磁盘空间及目录所有权

引用说明:
本文操作基于Oracle 19c官方文档(Database Utilities指南)及MOS补丁集最佳实践,生产环境操作前请备份归档日志。

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/27466.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月17日 02:50
下一篇 2025年6月17日 02:58

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN