oracle 数据泵导入导出 expdp/impdp
一、 导出/入前检查
查看用户默认表空间
select USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users where USERNAME='USER_NAME';
查看表空间对应数据文件
select tablespace_name,file_name from dba_data_files where tablespace_name='TBSNAME';
查询目录实际路径
select OWNER,DIRECTORY_PATH from dba_directories where DIRECTORY_NAME='DATA_PUMP_DIR';
目录属主授权
grant read,write on directory DATA_PUMP_DIR to system;
或者system用户登录创建目录
alter user system identified by "xxxxx";
create or replace directory DATA_PUMP as '/data/tmp';
二、 导出数据
1. 常用选项
- 排除指定表 EXCLUDE=
- 导出指定表 tables=
- 导出表名带关键字的表 INCLUDE=TABLE:\"LIKE \'%BAK%\'\"
- 只导表结构 CONTENT=METADATA_ONLY
- 只导表数据 CONTENT=data_only
- 输出日志 logfile=expdp1026.log
- 指定并行度 PARALLEL=4
- 压缩 compression=all (测试压缩比约为8:1,但对导出性能有影响)
- 指定版本(高版本导至低版本) version=12.1.0.2.0
2. 导出例子
导出指定用户所有数据
expdp system DIRECTORY=DATA_PUMP schemas=USER_NAME dumpfile=USER_NAME1025.dmp logfile=USER_NAME1025.log
导出指定用户所有数据(排除 IM_HIS 和 IM_OR_HIS表)
expdp system@mydb schemas=user_name dumpfile=user_name.dump DIRECTORY=DATA_PUMP_DIR EXCLUDE=TABLE:\"IN\(\'IM_HIS\',\'IM_OR_HIS\'\)\"
导出用户指定表
expdp system DIRECTORY=DATA_PUMP tables=USER_NAME.t1,USER_NAME.t2,USER_NAME.t3 dumpfile=USER_NAME1206.dmp
导出用户下表名带指定关键字的表
expdp system DIRECTORY=DATA_PUMP schemas=USER_NAME INCLUDE=TABLE:\"LIKE \'%BAK%\'\" dumpfile=USER_NAME1206.dmp logfile=USER_NAME1206.log
高版本导入12.1.0.2版本数据
expdp system@orcl_dev schemas=user1,user2 dumpfile=orcl.dump version=12.1.0.2.0 DIRECTORY=DATA_PUMP_DIR;
只导出用户元数据,且不包含统计信息
expdp system directory=jy schemas=scott content=metadata_only exclude=statistics dumpfile=scott_meta.dmp logfile=scott_meta.log
三、 导入数据
0. 注意事项
- 注意先检查目标表空间是否存在
- 检查目标磁盘空间及表空间大小
- 导入时注意检查DB等待事件及alert log,出现异常时及时处理
1. 常用选项
- 导入新用户下 REMAP_SCHEMA=old:new
- 导入新表空间下 remap_tablespace=old:new
- 导入时重命名表 REMAP_TABLE=scott.T_OLD:T_NEW
- 只导表结构 CONTENT=METADATA_ONLY
- 指定并行度 PARALLEL=4
- 目标库与源库相同 transform=oid:n
- 将dmp文件转为sql语句(不真正导入)sqlfile=xxx.sql
- 指定表已存在时动作 table_exists_action
table_exists_action的值如下:
- 不指定:表已存在会报错
- skip:跳过已存在表并处理下一个对象(不安全,谨慎使用)
- append:为表追加数据(不安全,谨慎使用)
- truncate:截断已存在表然后插入新数据(不安全,谨慎使用)
- replace:删除已存在表,重建并插入数据(不安全,谨慎使用)
2. 导入例子
导入前准备(可选)
create tablespace tbs datafile size 2g autoextend on next 100m maxsize 30g;create role role_user;
grant CREATE JOB,CREATE MATERIALIZED VIEW,CREATE PUBLIC DATABASE LINK,CREATE PUBLIC SYNONYM,CREATE VIEW,ALTER SESSION to role_user;create user USER_NAME identified by "xxxx";
ALTER USER USER_NAME QUOTA UNLIMITED ON tbs;
grant role_user,connect,resource to USER_NAME;
alter user USER_NAME default tablespace tbs;--drop tablespace tbs including contents and datafiles;
--drop user USER_NAME cascade;
导入指定用户数据(需要与源库相同数据/temp表空间存在)
impdp system DIRECTORY=DATA_PUMP schemas=USER_NAME dumpfile=USER_NAME1025.dmp logfile=USER_NAME1025.log
导入指定用户部分表
impdp system DIRECTORY=DATA_PUMP schemas=USER_NAME tables=USER_NAME.t1,USER_NAME.t2,USER_NAME.t3 dumpfile=USER_NAME1206.dmp logfile=USER_NAME1026.log
导入到其他用户及表空间
impdp system DIRECTORY=DATA_PUMP schemas=USER_NAME dumpfile=USER_NAME1206.dmp remap_schema=USER_NAME:userbak remap_tablespace=old:new logfile=USER_NAME1026.log
导入时重命名表
impdp system/oracle directory=dump dumpfile=expdp_T_A.dmp logfile= t_a.log REMAP_TABLE=scott.T_A:EMPS
目标库与源库相同
type默认不能导入到相同的数据库中,因为type的创建SQL中包含源库oid信息,导入时会引起oid冲突,进而导致相关表不能创建。可以使用impdp的transform参数重新生成原有dmp文件中的oid映射,transform=oid:n含义为不加载oid信息而重新生成。
impdp scottback/scottback@wilson directory=my_dir dumpfile=scott.dmp logfile=resimp2.log remap_schema=scott:scottback transform=oid:n
将dmp文件转为sql语句(不真正导入)
impdp scott/tiger directory=dir_name dumpfile=myfile sqlfile=xyz.sql
四、expdp/impdp管理
交互式命令列表
Activity | Command Used |
---|---|
Exit interactive-command mode. |
CONTINUE_CLIENT |
Stop the import client session, but leave the current job running. |
EXIT_CLIENT |
Display a summary of available commands. |
HELP |
Detach all currently attached client sessions and terminate the current job. |
KILL_JOB |
Increase or decrease the number of active worker processes for the current job. This command is valid only in Oracle Database Enterprise Edition. |
PARALLEL |
Restart a stopped job to which you are attached. |
START_JOB |
Display detailed status for the current job. |
STATUS |
Stop the current job. |
STOP_JOB |
查看dump job信息
select * from dba_datapump_jobs;
连接到现有dump job(查看dump进度)
--设置attach为job_name即可查看进度。
expdp system/oracle attach=SYS_EXPORT_SCHEMA_01
--或者
impdp system/oracle attach=SYS_EXPORT_SCHEMA_01
输出大致如下
[oracle@ocm1 ~]$ expdp system/oracle attach=SYS_EXPORT_SCHEMA_01...
Job: SYS_EXPORT_SCHEMA_01Owner: SYSTEM Operation: EXPORT Creator Privs: TRUE GUID: 482CA277B7350F88E053479DA8C00EFBStart Time: Friday, 10 February, 2017 20:57:05Mode: SCHEMA Instance: PROD1Max Parallelism: 1EXPORT Job Parameters:Parameter Name Parameter Value:CLIENT_COMMAND system/******** schemas=eoda directory=ext dumpfile=eoda.dmp State: EXECUTING Bytes Processed: 2,113,260,264Percent Done: 65Current Parallelism: 1Job Error Count: 0Dump File: /home/oracle/ext/eoda.dmpbytes written: 2,113,449,984Worker 1 Status:Process Name: DW00State: EXECUTING Object Schema: EODAObject Name: NEW_TABLE <---------Object Type: SCHEMA_EXPORT/TABLE/TABLE_DATA <---------Completed Objects: 3Total Objects: 52Completed Rows: 1,338,029 <---------Worker Parallelism: 1
暂停dump job
执行ctrl+c
# 或者
expdp system/oracle attach=SYS_EXPORT_SCHEMA_02
Export> STOP_JOB
开始暂停的dump job
Export> START_JOB
Export> CONTINUE_CLIENT# 重新启动暂停的dump job并跳过当前导入/出的对象
Export> START_JOB=SKIP_CURRENT=YES
终止dump job
expdp system/oracle attach=SYS_EXPORT_SCHEMA_02
Export> stop_job=immediate
# 或者
KILL_JOB
参考
Commands Available in Import's Interactive-Command Mode
https://www.cnblogs.com/huacw/p/3888807.html
https://blog.csdn.net/gxc1222/article/details/79272766/
Kill, cancel, resume or restart datapump expdp and impdp jobs (ORA-31626, ORA-31633, ORA-06512, ORA-00955) - Oracle 48
Oracle数据泵(Data Dump)错误汇集 - 潇湘隐者 - 博客园
convert expdp dmp file to SQL DDL statements
如何清除 DBA_DATAPUMP_JOBS 视图中的异常数据泵作业?(文档 ID 1626201.1)
oracle 数据泵导入导出 expdp/impdp相关推荐
- Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解
Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解 关于expdp和impdp 使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户 ...
- 如何将mysql导出数据泵_Oracle数据库之ORACLE 数据泵导入导出数据
本文主要向大家介绍了Oracle数据库之ORACLE 数据泵导入导出数据,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 一.摘要 在平常备库和数据库迁移的时候,当遇到大的数据库 ...
- oracle数据泵导入导出6,oracle 10g数据泵和导入导出性能对比(六)
前一段时间在一次迁移中同时用到了数据泵和EXP,发现二者效率的差别还是相当大的.这里通过一个例子简单比较一下. 这篇文章同时使用直接路径和并行来加速数据泵导入. 上一篇结束了数据泵导入在非归档模式下获 ...
- oracle impdp导入实例,Oracle数据泵导入导出案例
Oracle数据库导入导出工具,可以使用exp/imp,但这是比较早期的工具.本文主要介绍数据泵expdp/impdp工具的使用. 建立数据泵目录 使用数据泵需要先建directory create ...
- ORACLE 数据泵导入导出数据
一.摘要 在平常备库和数据库迁移的时候,当遇到大的数据库的时候在用exp的时候往往是需要好几个小时,耗费大量时间.oracle10g以后可以用expdp来导出数据库花费的时间要远小于exp花费的时间, ...
- oracle import mapping,ORACLE 数据泵导入导出数据
一.摘要 在平常备库和数据库迁移的时候,当遇到大的数据库的时候在用exp的时候往往是需要好几个小时,耗费大量时间.oracle10g以后可以用expdp来导出数据库花费的时间要远小于exp花费的时间, ...
- oracle 命令行输出到文件路径,oracle数据泵导入导出dmp文件语法
导入操作 (本次示例是多个数据泵文件的导入COSPACE.DMP.WISDOMGOV.DMP) 0.数据库登陆 plsql 使用sys账号,as sysdba身份登录orcl实例: 1.在被导入的数据 ...
- (Oracle)DDL及其数据泵导入导出(impdp/expdp)
create tablespace ybp_dev datafile 'G:\app\Administrator\oradata\health\ybp_dev1.dbf' size 10m autoe ...
- 数据泵导入远程oracle,数据泵导入导出远程数据库数据
1.创建数据导出目录 $mkdir -p /home/oralce/dmp_dir 2.创建directory SYS@PROD1>create directory dmp_dir as '/h ...
最新文章
- CentOS各版本ISO下载地址
- 2020公文格式模板及范文_四六级考试答题顺序推荐 2020四级作文预测 四级作文范文模板...
- Java Learning:并发中的同步锁(synchronized)
- Cookie简单使用方法
- JDBC批量操作批量增加批量修改
- 02_Android写xml文件和读xml文件
- 通俗易懂。HTTP请求行、请求头、请求体、响应行、响应头、响应体详解
- vue中如何进行Excel文件的下载
- 如何修改TextView链接点击实现(包含链接生成与点击原理分析)
- 窗体控件绑定泛型数组 0104 c#
- CLR via C# 内存管理读书记
- 开源公告|腾讯 PAG 动画组件对外开源
- 知识图谱研究最新综述论文: 表示学习、知识获取与应用
- matlab coder 转 c语言,MATLAB Coder从MATLAB生成C/C++代码步骤
- 新增spring Converter解析器中使用lambda表达式代替匿名内部类是启动报错:... does the class parameterize those types?
- SQL SERVER数据库置疑后恢复步骤
- android高德地图截屏,高德地图-地图截屏
- 饥荒启动服务器显示error,Win10电脑运行饥荒游戏提示error during initialization解决方法...
- 前端如何实现即时通信?
- JAVA中的deflate压缩实现
热门文章
- openjudge 1.8.20 反反复复
- 【java】java负数
- php+redis 盲盒字符兑换道具
- netty自定义封包实现
- 日内转向加仓交易系统模型TB源码
- javaScript-WebAPIS(二)
- php编码代码工具,php制作unicode解码工具(unicode编码转换器)代码分享_PHP教程
- 无法安装服务“VMware Authorization Service” ,请确保您有足够的权限安装系统,如何解决?
- “视频号”能撑起微博的野心吗?
- php回源鉴权,鉴权示例