【Oracle】Oracle导入导出dmp文件
文章目录
- 前言
- 一、什么是dmp?
- 二、imp/impdp、exp/expdp对比及示例
- 1.区别
- 2.imp/impdp对比及示例
- a. imp
- b. impbp
- 3.exp/expdp对比及示例
- a. exp
- b.expdp
- 3.其他事项
- 三、执行导入导出前置条件
- 1.创建角色并授权
- 2.创建目录映射
前言
在工作中,经常会遇到需要备份库,库表迁移的场景,对于oracle会使用dmp文件进行数据迁移和备份。基于一次迁移数据库的经历,整理记录dmp相关知识点,供后续工作参考使用。
一、什么是dmp?
● dmp是"Data Pump"的缩写,它是Oracle独有的一种数据导入导出文件格式。.dmp文件是一种数据库导出文件的扩展名,通常用于存储数据库中的表、数据、视图等对象的结构和内容。是一种特定数据库系统的二进制信息,因此不能直接用文本编辑器打开。
●.dmp文件一般包含数据定义语言(DDL)和数据操作语言(DML)。具体来说,DDL是用来定义数据库对象,例如表、视图、用户等等;DML则是用来操作这些对象,例如插入、删除、更新数据等。常用来进行数据库迁移或者备份操作。
●其他数据库也有类似备份文件,比如MySQL数据库使用.sql文件或者.dump文件来表示数据库导出文件,而SQL Server数据库使用.bak文件来表示备份文件。
二、imp/impdp、exp/expdp对比及示例
imp/exp(Oracle导入导出实用程序)是使用传统的导出技术,而impdp/expdp(数据泵导入实用程序)是使用Oracle Data Pump技术。Data Pump是Oracle在10g版本中引入的高性能、可扩展的导入导出工具,即 Oracle 10g 之前的版本不可以使用 impdp/expdp。
1.区别
●imp和exp是传统的导入和导出工具,而impdp和expdp是数据泵工具,采用了新的架构和方法。
●imp和exp是基于基于二进制文件的,而impdp和expdp则是使用数据泵作业来执行数据移动操作,可以提供更高的性能和扩展性。
●imp和exp不支持在分布式环境中执行,而impdp和expdp可以在分布式环境中执行。
●数据泵通常指的是一种高性能的数据导入和导出工具,用于在数据库系统中进行快速的数据迁移和加载操作。数据泵工具能够提供比传统的导入导出工具更快速、更灵活的数据传输方式,通常支持并行处理、大容量数据传输和高性能加载等特点。
2.imp/impdp对比及示例

a. imp
可通过 imp help=y 命令查询相关参数
- imp常用参数说明,可以根据需要指定不同的参数来控制导入的方式和内容。
| 参数 | 使用说明 |
|---|---|
| TOUSER | 指定要导入数据的用户名。 |
| FROMUSER | 指定导入数据来自的用户名。 |
| FILE | 指定要导入的文件路径和名称。例如,FILE=/path/to/import.dmp。 |
| IGNORE | 指定是否忽略导入过程中遇到的错误。可以是Y或N。 |
| INDEXES | 指定是否导入索引。可以是Y或N。 |
| ROWS | 控制是否导入表中的行数据。可以是Y或N。 |
| DATA_ONLY | 指定只导入数据,不包括对象定义。可以是Y或N。 |
| IGNORECASE | 指定导入时是否忽略大小写。可以是Y或N。 |
| FULL | 指定导入前先删除现有对象。可以是Y或N。 |
| LOG | 指定导入操作的日志文件路径和名称。例如,LOG=/path/to/import.log。 |
| BUFFER | 指定读取导入文件时的缓冲区大小。 |
| REMAP_SCHEMA | 指定要将导入的对象映射到的新模式名。 |
| REMAP_TABLESPACE | 指定要将导入的表空间映射到的新表空间名。 |
| TABLES | 指定要导入的特定表。举例:IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N(or TABLES=(T1:P1,T1:P2) 表分区可用) |
- 命令格式:
imp 用户名/密码@数据库实例 FILE=导入文件的路径.dmp FROMUSER=源用户名 TOUSER=目标用户名
- 命令示例:
--windows环境下
imp username/password@SERVICENAME:1521 file=e:\temp.dmp rows=y
log=E:/test/dmp/kf_workflow_0512.log full = y;
-linux环境路径进行替换
b. impbp
可通过 impbp help=y 命令查询相关参数
- impbp常用参数说明,可以根据需要指定不同的参数来控制导入的方式和内容。
| 参数 | 使用说明 |
|---|---|
| ATTACH | 指定是否附加到正在运行的 impdp 作业。 |
| DIRECTORY | 指定导入和导出文件所在的目录对象。 |
| DUMPFILE | 指定要导入的数据泵文件名。 |
| REMAP_DATAFILE | 指定要将源数据文件映射到的目标数据文件。 |
| REMAP_SCHEMA | 指定要将源模式映射到的目标模式。 |
| REMAP_TABLESPACE | 指定要将源表空间映射到的目标表空间。 |
| TABLE_EXISTS_ACTION | 对于已存在的表,指定要采取的操作(SKIP、APPEND、TRUNCATE、REPLACE)。 |
| TRANSFORM | 指定要应用的数据转换选项。 |
| CONTENT | 指定要导入的对象类型(ALL、DATA_ONLY、METADATA_ONLY)。 |
| PARALLEL | 指定并行执行导入作业的程度。 |
| LOGFILE | 指定导入操作的日志文件名。 |
| INCLUDE/EXCLUDE | 指定要导入或排除的对象。 |
| QUERY | 指定导入时使用的查询条件。For example, QUERY=employees:“WHERE department_id > 10”. |
- 命令格式:
--命令参考
impdp 用户名/密码@数据库实例 DIRECTORY=目录名称 DUMPFILE=导入文件的名称.dmp REMAP_SCHEMA=源用户名:目标用户名
--举例
impdp user/password@SID DIRECTORY=DMPDATA DUMPFILE=fileName.dmp remap_tablespace=um_dev:um remap_schema=u_um_dev:u_um
参数说明:
- user/password@SID 用户名/用户密码@数据库实例;
- directory=dmpdata 导入的目录,DMPDATA为数据库虚拟路径(
参考目录三中的目录映射),即导入dmpdata下的文件也就是’/data/u01/dmpdata/'; - dumpfile=filename.dmp 导入的文件名,结合上面的 directory=dmpdata 就将’/data/u01/dmpdata/filename.dmp’;导入目标服务器(需要注意大小写);
- remap_tablespace=um_dev:um----->um_dev:导出表空间 ,um:导入表空间;
- remap_schema=u_um_dev:u_um ----> u_um_dev:导出用户 u_um:导入用户。
- 命令示例:
impdp kf_gs_workflow_0604/a@gfmisdev directory='DUMP_DIR' DUMPFILE='GSU_WORKFLOW_20240604.dmp' LOGFILE='GSU_WORKFLOW_20240604.log' REMAP_SCHEMA=GSU_WORKFLOW:kf_gs_workflow_0604 REMAP_TABLESPACE=GRP:USERS
3.exp/expdp对比及示例

a. exp
可通过 exp help=y 命令查询相关参数
- imp常用参数说明,可以根据需要指定不同的参数来控制导入的方式和内容。
| 参数 | 使用说明 |
|---|---|
| TABLES | 指定要导出的表格。例如,TABLES=table1,table2。 |
| FILE | 指定导出文件的路径和名称。例如,FILE=/path/to/export.dmp。 |
| LOG | 指定导出过程的日志文件路径和名称。例如,LOG=/path/to/export.log。 |
| QUERY | 指定要导出数据的查询条件。例如,QUERY=“ SELECT * FROM TABLE WHERE column_name=‘value’”。 |
| ROWS | 控制是否导入表中的行数据。可以是Y或N。 |
| STATISTICS | 指定是否导出统计信息。可以是ALL、ESTIMATE或NONE。 |
| GRANTS | 指定是否导出对象的授权信息。可以是Y、N或FULL。 |
| CONSISTENT | 指定是否导出一致性视图。可以是Y或N。 |
| INDEXES | 指定是否导出索引。可以是Y或N。 |
| COMPRESS | 指定是否压缩导出文件。可以是Y或N。 |
- 命令格式:
exp username/password@[database] FILE=[导出文件路径] TABLES=[要导出的表名]
- 命令示例:
--完全导出:
exp user/password@SID file=E:/test/dmp/kf_workflow_0512.dmp full=y--导出A、B表
exp user/password@SID file= E:/test/dmp/kf_workflow_0512.dmp tables=(A,B)
b.expdp
可通过 expdp help=y 命令查询相关参数
- imp常用参数说明,可以根据需要指定不同的参数来控制导入的方式和内容。
| 参数 | 使用说明 |
|---|---|
| SCHEMAS | 指定要导出的模式名。例如,SCHEMAS=schema1,schema2。 |
| INCLUDE | 指定要包括的对象类型。例如,INCLUDE=TABLE,VIEW将只导出表和视图。 |
| EXCLUDE | 指定要排除的对象类型。例如,EXCLUDE=INDEX将排除索引的导出。 |
| DIRECTORY | 指定导出文件的目录对象。例如,DIRECTORY=datapump_dir。 |
| DUMPFILE | 指定导出文件的名称。例如,DUMPFILE=export.dmp。 |
| LOGFILE | 指定导出操作的日志文件名称。例如,LOGFILE=export.log。 |
| PARALLEL | 指定并行导出的进程数。 |
| DIRECTORY | 指定导出文件的目录对象。例如,DIRECTORY=datapump_dir。 |
| COMPRESSION | 指定导出文件是否压缩。可以是ALL、DATA_ONLY、METADATA_ONLY或NONE。 |
| CONTENT | 指定导出内容。可以是ALL、DATA_ONLY、METADATA_ONLY或METADATA_ONLY_EXCLUDING_DATA。 |
| QUERY | 指定导出的数据查询条件。例如,QUERY=“WHERE column_name=‘value’”。 |
| FILESIZE | 指定导出文件的最大文件大小。 |
| JOB_NAME | 指定导出作业的名称。 |
| VERSION | 给定系统版本号的对象。例如,VERSION=SCN,SCN为版本号。 |
- 命令格式:
expdp 用户名/密码@数据库实例 DIRECTORY=目录名称 DUMPFILE=导出文件名.dmp EXCLUDE=TABLE:"IN ('table1','table2')" INCLUDE=TABLE:"IN ('EMPLOYEES', 'DEPARTMENTS')" FULL=Y
- 命令示例:
--按用户导
expdp user/password@SID schemas=u_mom_um dumpfile=expdp.dmp directory=dmp logfile=expdlog.log;--按表名导
expdp user/password@SID tables=test1,test2 dumpfile=expdp.dmp directory=dmp logfile=expdlog.log;--按查询条件导
expdp user/password@SID directory=dmp dumpfile=expdp.dmp Tables=test query='WHERE id<20' logfile=expdlog.log;--按表空间导
expdp user/password@SID directory=dmp dumpfile=expdp.dmp TABLESPACES={#表空间1},{#表空间2} logfile=expdlog.log;--导整个库
expdp user/password@SID directory=dmp dumpfile=expdp.dmp FULL=y logfile=expdlog.log;
- 具体命令示例:
--按照表空间导
expdp user/password@SID directory=DMPDATA dumpfile=tbs2022.dmp TABLESPACES=tbs logfile=expdlog.log;--用EXCLUDE、INCLUDE时,对应的符号需要进行转译
expdp GSU_ELEMENT/yth2023 schemas=GSU_ELEMENT dumpfile=GSU_ELEMENT_20240604.dmp EXCLUDE=TABLE:\"IN\(\'GFM_TB_RESULT\',\'GAP_PAYEE_ACCOUNT\'\)\" directory=GSZX logfile=GSU_ELEMENT_20240604.log
3.其他事项
- 在执行导入导出时需要进入oracle去执行。
--linux
su oracle ;--到这就可执行导入导出
sqlplus / as sysdba;--windows:
win + r,cmd,enter; --到这可执行导入导出
sqlplus 用户名/口令@数据库名 as sysdba;
- 在执行导入、导出的命令时,可通过nohup来执行,nohup是一个在Unix和类Unix操作系统上用来忽略HUP(挂起)信号并运行命令的实用程序。通过使用nohup,您可以使命令在后台运行,即使当前Shell终端窗口关闭,也能继续运行。
- 使用exp 导出文件需要使用imp导入,数据泵类型需要一致。
- 用
EXCLUDE、INCLUDE时,对应的符号需要进行转译;
三、执行导入导出前置条件
如果数据库用户已经存在,并有相关目录跳过此步骤。
1.创建角色并授权
--创建角色
create user orcl identified by orclorcl;--授权
grant dba ,connect ,resource ,select any table,create view to orcl;--查看用户创建情况
select * from all_users;
2.创建目录映射
CREATE DIRECTORY my_dir AS '/path/to/directory';
- 查询现有目录是否满足条件
select * from DBA_DIRECTORIES;
- 创建文件夹
--linux
mkdir /data/u01/dmpdata--windows下自行创建文件,记下目录
- 文件夹创建后给oracle用户授权
chown -R oracle /data/u01/dmpdata
- 数据库里执行SQL创建导入/导出目录(目录映射)
--目录对象在数据库中注册,并映射到实际物理目录的路径。
create or replace directory DMPDATA as '/data/u01/dmpdata';
- 为建立的目录赋权限,须要以其余用户运行,建议在sys用户下执行
grant read,write on directory DMPDATA to {#用户名};
相关文章:
【Oracle】Oracle导入导出dmp文件
文章目录 前言一、什么是dmp?二、imp/impdp、exp/expdp对比及示例1.区别2.imp/impdp对比及示例a. impb. impbp 3.exp/expdp对比及示例a. expb.expdp 3.其他事项 三、执行导入导出前置条件1.创建角色并授权2.创建目录映射 前言 在工作中,经常会遇到需要备…...
渗透测试模拟实战-tomexam网络考试系统
渗透测试,也称为“pentest”或“道德黑客”,是一种模拟攻击的网络安全评估方法,旨在识别和利用系统中的安全漏洞。这种测试通常由专业的安全专家执行,他们使用各种技术和工具来尝试突破系统的防御,如网络、应用程序、主…...
“神经网络之父”和“深度学习鼻祖”Geoffrey Hinton
“神经网络之父”和“深度学习鼻祖”Geoffrey Hinton在神经网络领域数十年如一日的研究,对深度学习的推动和贡献显著。 一、早期贡献与突破 反向传播算法的引入:Hinton是将反向传播(Backpropagation)算法引入多层神经网络训练的…...
[消息队列 Kafka] Kafka 架构组件及其特性(一)
工作中的消息队列用的是Kafka,一直没有系统的了解,这边集中整理一下。 目录 Kafka主要组件有十个部分。 1.Broker(服务器) 2.Record(消息) 3.Producer(生产者) 4.Consumer&…...
【Flutter 面试题】 JIT 与 AOT分别是什么?
【Flutter 面试题】 JIT 与 AOT分别是什么? 文章目录 写在前面口述回答写在前面 🙋 关于我 ,小雨青年 👉 CSDN博客专家,GitChat专栏作者,阿里云社区专家博主,51CTO专家博主。2023博客之星TOP153。 👏🏻 正在学 Flutter 的同学,你好! 😊 Flutter 面试宝典(…...
QT获取最小化,最大化,关闭窗口事件
QT获取最小化,最大化,关闭窗口事件 主程序头文件: 实现: changeEvent,状态改变事件 closeEvent触发点击窗口关闭按钮事件 其代码它参考: /*重写该函数*/ void MainWindow::changeEvent(QEvent *event) {…...
Oracle作业调度器Job Scheduler
Oracle数据库调度器 (Oracle Database Scheduler) 在数据库管理系统中,数据库调度器负责调度和执行数据库中的存储过程、触发器、事件等。它可以确保这些操作在正确的时间和条件下得到执行,以满足业务需求。 1、授权用户权限 -- 创建目录对象 tmp_dir…...
Vue 组件之间的通信
在 Vue.js 中,组件是构建应用程序的基本单位。然而,当你的应用程序变得复杂时,组件之间的通信变得至关重要。本文将介绍几种 Vue 组件之间通信的方式,帮助你更好地管理和组织代码。 父子组件通信 父组件可以通过 props 向子组件传…...
Elementary OS 7.1简单桌面调整
Elementary OS的Pantheon桌面环境提供了一种非常独特和直观的用户体验。默认情况下,Pantheon桌面并没有提供传统的窗口最小化、最大化按钮。但是可以通过安装和使用特定的工具来调整和自定义这些设置。 可以通过以下步骤来启用窗口的最小化和最大化按钮:…...
【C++ | 析构函数】类的析构函数详解
😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 ⏰发布时间⏰:2024-06-06 1…...
ceph radosgw 原有zone placement信息丢失数据恢复
概述 近期遇到一个故障环境,因为某些原因,导致集群原有zone、zonegroup等信息丢失(osd,pool等状态均健康)。原有桶和数据无法访问,经过一些列fix后修复, 记录过程 恢复realm和pool相关信息 重…...
【动手学深度学习】残差网络(ResNet)的研究详情
目录 🌊1. 研究目的 🌊2. 研究准备 🌊3. 研究内容 🌍3.1 残差网络 🌍3.2 练习 🌊4. 研究体会 🌊1. 研究目的 了解残差网络(ResNet)的原理和架构;探究残…...
freertos初体验 - 在stm32上移植
1. 说明 freertos内核 非常精简,代码量也很少,官方也针对主流的编译器和内核准备好了移植文件,所以 freertos 的移植是非常简单的,很多工具(例如CubeMX)点点鼠标就可以生成一个 freertos 的工程࿰…...
ubuntu使用 .deb 文件安装VScode
使用 .deb 文件安装 下载 VSCode 的 .deb 文件: wget -q https://go.microsoft.com/fwlink/?LinkID760868 -O vscode.deb使用 dpkg 安装: sudo dpkg -i vscode.deb如果有依赖项问题,使用以下命令修复: sudo apt-get install -f...
9.1.1 简述目标检测领域中的单阶段模型和两阶段模型的性能差异及其原因
9.1目标检测 场景描述 目标检测(Object Detection)任务是计算机视觉中极为重要的基础问题,也是解决实例分割(Instance Segmentation)、场景理解(Scene Understanding)、目标跟踪(Ob…...
系统化自学Python的实用指南
目录 一、理解Python与设定目标 二、搭建学习环境与基础准备 三、入门学习阶段 四、中级进阶阶段 五、项目实践与持续深化 六、持续学习与拓展 一、理解Python与设定目标 Python概述:详细介绍Python的历史沿革、设计理念、主要特点(如易读、易维护…...
加密货币初创企业指南:如何寻找代币与市场的契合点
撰文:Mark Beylin,Boost VC 编译:Yangz,Techub News 原文来源:香港Web3媒体Techub News 在 Y Combinator 创始人 Paul Graham 《Be Good》一文中概述了初创企业如何找到产品与市场契合点的方法,即制造人…...
【十二】图解mybatis日志模块之设计模式
图解mybatis日志模块之设计模式 概述 最近经常在思考研发工程师初、中、高级工程师以及系统架构师各个级别的工程师有什么区别,随着年龄增加我们的技术级别也在提升,但是很多人到了高级别反而更加忧虑,因为it行业35岁年龄是个坎这是行业里的共…...
RainBond 制作应用并上架【以ElasticSearch为例】
文章目录 安装 ElasticSearch 集群第 1 步:添加组件第 2 步:查看组件第 3 步:访问组件制作 ElasticSearch 组件准备工作ElasticSearch 集群原理尝试 Helm 安装 ES 集群RainBond 制作 ES 思路源代码Dockerfiledocker-entrypoint.shelasticsearch.yml制作组件第 1 步:添加组件…...
JVM相关:Java内存区域
Java 虚拟机(JVM)在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。 Java运行时数据区域是指Java虚拟机(JVM)在执行Java程序时,为了管理内存而划分的几个不同作用域。这些区域各自承担特定的任务,…...
eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...
