例如:
dos cmd 执行
windows环境,直接dos执行如下命令!直接dos执行如下命令!直接dos执行如下命令!
expdp zhdd/密码@localhost/orcl dumpfile=zhhd20250808.dmp logfile=zhhd20250808.log
-全部用户数据
expdp zhdd/xxx@XNORA11 dumpfile=zhhd20250829.dmp logfile=zhhd20250829.log full=y
-只导用户ZHDD数据
expdp zhdd/xxx@XNORA11 dumpfile=zhhd20250829.dmp logfile=zhhd20250829.log schemas=ZHDD
C:\Windows\system32>expdp zhdd/zS203_Zhdd@orcl dumpfile=zhhd20250829.dmp logfile=zhhd20250829.log full=y
Export: Release 11.2.0.4.0 - Production on 星期四 10月 16 16:23:00 2025
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
启动 "ZHDD"."SYS_EXPORT_FULL_01": zhdd/********@orcl dumpfile=zhhd20250829.dmp logfile=zhhd20250829.log full=y
正在使用 BLOCKS 方法进行估计...
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 194 MB
处理对象类型 DATABASE_EXPORT/TABLESPACE
处理对象类型 DATABASE_EXPORT/PROFILE
处理对象类型 DATABASE_EXPORT/SYS_USER/USER
.....
处理对象类型 DATABASE_EXPORT/SCHEMA/POST_SCHEMA/PROCACT_SCHEMA
处理对象类型 DATABASE_EXPORT/AUDIT
. . 导出了 "ZHDD"."DM_DRILLING_DAILY" 21.69 MB 8874 行
. . 导出了 "ZHDD"."DM_TRY_PRODUCTION" 26.47 MB 263091 行
. . 导出了 "ZHDD"."DM_DRAI_PRODUCT_DYNAMICS" 13.57 MB 92192 行
......
. . 导出了 "ZHDD"."DM_CONSTRUCTION_HIDEDANGER" 0 KB 0 行
. . 导出了 "ZHDD"."DM_FRACTURE_TESTOILPLAN" 0 KB 0 行
. . 导出了 "ZHDD"."DM_ZSYM_SJCC" 0 KB 0 行
. . 导出了 "ZHDD"."HAHA" 0 KB 0 行
. . 导出了 "ZHDD"."MP_PREDRILL_PLAN" 0 KB 0 行
. . 导出了 "ZHDD"."MP_RESOURCE" 0 KB 0 行
. . 导出了 "ZHDD"."MP_RIG_BASE" 0 KB 0 行
. . 导出了 "ZHDD"."TB_EXCLE_EXPORT_ATTR" 0 KB 0 行
. . 导出了 "ZHDD"."TB_LOG_INFO" 0 KB 0 行
已成功加载/卸载了主表 "ZHDD"."SYS_EXPORT_FULL_01"
******************************************************************************
ZHDD.SYS_EXPORT_FULL_01 的转储文件集为:
D:\APP\XTZX\ADMIN\ORCL\DPDUMP\ZHHD20250829.DMP
作业 "ZHDD"."SYS_EXPORT_FULL_01" 已于 星期四 10月 16 16:27:01 2025 elapsed 0 00:04:00 成功完成
# expdp(数据泵导出)命令详解
Oracle Data Pump Export (expdp) 是Oracle数据库的高性能数据导出工具,相比传统的exp工具,它提供了更强大的功能和更优的性能。以下是对expdp命令的全面解析:
基本语法
bash复制代码
expdp [用户名]/[密码] [参数键=参数值] ...
核心参数详解
1. 连接与目录参数
参数说明示例必需DIRECTORY指定导出文件存储的目录对象DIRECTORY=dpump_dir✅ 是DUMPFILE指定导出文件名(支持通配符%U)DUMPFILE=exp_full.dmp✅ 是LOGFILE指定日志文件名LOGFILE=exp_full.log❌ 否
目录对象创建示例:
sql复制代码
CREATE DIRECTORY dpump_dir AS '/oracle/dumps';
GRANT READ, WRITE ON DIRECTORY dpump_dir TO scott;
2. 导出范围控制
参数说明示例FULL导出整个数据库FULL=YESSCHEMAS导出指定用户SCHEMAS=scott,hrTABLES导出指定表TABLES=scott.emp,scott.deptTABLESPACES导出指定表空间TABLESPACES=users,exampleINCLUDE包含特定对象类型INCLUDE=TABLE:"IN ('EMP','DEPT')"EXCLUDE排除特定对象类型EXCLUDE=INDEX,CONSTRAINT
3. 数据过滤与转换
参数说明示例QUERY按条件导出数据QUERY=scott.emp:"WHERE sal>5000"REMAP_SCHEMA模式重映射REMAP_SCHEMA=scott:hrREMAP_TABLESPACE表空间重映射REMAP_TABLESPACE=users:new_tsREMAP_DATA数据脱敏转换REMAP_DATA=emp.ename:mask_nameSAMPLE百分比抽样导出SAMPLE=30
4. 性能优化参数
参数说明示例PARALLEL并行度设置PARALLEL=4COMPRESSION压缩算法COMPRESSION=ALLFILESIZE单文件大小限制FILESIZE=2GCLUSTER使用RAC集群CLUSTER=YES
5. 高级控制参数
参数说明示例CONTENT导出内容控制CONTENT=METADATA_ONLYVERSION版本兼容性VERSION=11.2FLASHBACK_TIME时间点导出FLASHBACK_TIME="TO_TIMESTAMP('2023-01-01 12:00:00')"ENCRYPTION加密选项ENCRYPTION=ALLJOB_NAME作业命名JOB_NAME=exp_full_job
实用命令示例
1. 全库导出
bash复制代码
expdp system/password DIRECTORY=dpump_dir DUMPFILE=full_%U.dmp
FULL=YES LOGFILE=full_exp.log PARALLEL=4 COMPRESSION=ALL
2. 用户级导出(SCOTT用户)
bash复制代码
expdp scott/tiger DIRECTORY=dpump_dir DUMPFILE=scott.dmp
SCHEMAS=scott LOGFILE=scott_exp.log
3. 表级导出(带数据过滤)
bash复制代码
expdp hr/hr DIRECTORY=dpump_dir DUMPFILE=hr_emp.dmp
TABLES=employees QUERY="WHERE department_id=50"
EXCLUDE=INDEX,CONSTRAINT
4. 元数据导出(仅表结构)
bash复制代码
expdp system/password DIRECTORY=dpump_dir DUMPFILE=meta.dmp
SCHEMAS=scott CONTENT=METADATA_ONLY
5. 跨版本导出(兼容Oracle 11g)
bash复制代码
expdp system/password DIRECTORY=dpump_dir DUMPFILE=compat.dmp
SCHEMAS=scott VERSION=11.2
作业管理命令
Data Pump作业可以交互式管理:
bash复制代码
# 启动交互式控制台
expdp system/password ATTACH=exp_full_job
# 常用控制命令
Status # 查看作业状态
Stop_job # 暂停作业
Start_job # 恢复暂停的作业
Kill_job # 终止作业
关键注意事项
目录权限:用户必须对DIRECTORY对象有READ/WRITE权限版本兼容:
源数据库版本 ≥ 目标数据库版本高版本→低版本需指定VERSION参数
空间要求:
服务器端需要足够存储空间使用ESTIMATE_ONLY=YES预估空间需求
性能优化:
大表导出使用PARALLEL参数启用压缩减少空间占用避免在业务高峰期执行
安全性:
敏感数据使用REMAP_DATA脱敏导出文件使用ENCRYPTION加密
常用元数据查询
监控Data Pump作业:
sql复制代码
-- 查看运行中的作业
SELECT * FROM DBA_DATAPUMP_JOBS;
-- 查看作业状态
SELECT job_name, state FROM USER_DATAPUMP_JOBS;
最佳实践建议
命名规范:使用%U通配符生成序列化文件名
bash复制代码
DUMPFILE=exp_%U.dmp FILESIZE=2G
日志分离:始终指定LOGFILE参数记录操作日志资源限制:对大库导出使用FILESIZE分割文件兼容处理:跨版本迁移时提前测试VERSION设置验证导出:使用SQLFILE参数生成DDL预览
bash复制代码
expdp ... SQLFILE=ddl.sql
expdp相比传统的exp工具提供了显著改进:
⚡ 服务器端执行(无网络传输瓶颈)🚀 并行处理(加速大数据量导出)🔒 内置加密压缩功能🎯 精细的对象和数据过滤⏯️ 作业暂停/恢复功能
建议在新项目和数据迁移中优先使用expdp工具,特别是处理超过10GB的大型数据库时。
其他:
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager, 实例名TEST 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表table1 、table2导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"