上一篇
快速导出Oracle表命令
- 主机动态
- 2025-06-17
- 8
使用Oracle数据泵工具expdp导出数据库表,命令基本结构为: expdp 用户名/密码 DIRECTORY=目录对象名 DUMPFILE=导出文件名.dmp LOGFILE=日志名.log TABLES=表名1,表名2,需提前创建目录对象并授权。
使用数据泵工具(expdp – 推荐)
适用Oracle 10g及以上版本,高效且功能强大
步骤详解:
-
创建逻辑目录(需DBA权限)
数据泵要求操作系统的物理目录必须与Oracle逻辑目录映射:
CREATE DIRECTORY export_dir AS '/u01/app/oracle/dumps'; -- 替换为实际路径 GRANT READ, WRITE ON DIRECTORY export_dir TO 您的用户名; -- 授权给操作用户 -
执行导出命令(命令行操作)
基础导出单表命令:
expdp 用户名/密码@数据库实例 DIRECTORY=export_dir DUMPFILE=table_export.dmp LOGFILE=export_log.log TABLES=表名关键参数说明:

- SCHEMAS:导出整个用户下的表
- TABLESPACES:导出指定表空间的所有表
- INCLUDE/EXCLUDE:按对象类型过滤
- COMPRESSION=ALL:压缩导出文件
- PARALLEL=4:启用并行加速
-
验证结果
检查日志文件 export_log.log 中的 ORA- 错误及末尾的 “成功转储” 提示。
使用传统导出工具(exp – 兼容老版本)
适用于Oracle 9i等旧环境
操作命令:

注意:
- 若导出大表可能效率较低
- 不支持部分高级特性(如压缩、并行)
通过SQL Developer图形化导出
适合非命令行用户
- 连接数据库 → 展开”表”目录
- 右键目标表 → 选择”导出”
- 设置选项:
- 格式:SQL 或 Loader
- 输出文件:指定保存路径
- 勾选”导出数据”
- 点击”应用”执行导出
关键注意事项:
-
权限要求

- expdp 需要 EXP_FULL_DATABASE 角色
- 操作系统目录需对Oracle进程可读写
-
字符集一致性
导出前确认NLS_LANG环境变量与数据库一致,避免中文乱码:
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # Linux示例
-
大表优化建议
- 使用 PARALLEL 参数提升速度
- 添加 COMPRESSION=ALL 减少空间占用
- 通过 QUERY 参数分批次导出(例:QUERY="WHERE id<10000")
-
云数据库特殊说明
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补丁集最佳实践,生产环境操作前请备份归档日志。