当前位置: 首页 > article >正文

Oracle exp和imp命令导出导入dmp文件

目录

  • 一. 安装 instantclient-tools 工具包
  • 二. exp 命令导出数据
  • 三. imp 命令导入数据
  • 四. expdp 和 impdp 命令


一. 安装 instantclient-tools 工具包

⏹官方网站

  • https://www.oracle.com/cn/database/technologies/instant-client/linux-x86-64-downloads.html

⏹因为我们在 Oracle Database 21c Express Edition数据库 和 Sqlplus客户端安装配置 这篇文章中使用的oracle服务器和客户端都是21版本的,因此我们的 instantclient-tools 工具包也使用21版本。

  • 获取安装包 instantclient-tools-linux.x64-21.16.0.0.0dbru.zip
  • https://download.oracle.com/otn_software/linux/instantclient/2116000/instantclient-tools-linux.x64-21.16.0.0.0dbru.zip

⏹将安装包放入Ubuntu服务器后,确认安装目录后,进行解压即可。
💥环境变量的配置已经在之前的文章中写过,此处不再赘述。

  • 注意使用root用户进行解压
root@ubuntu24-01:/home/apluser/work# ls -l /opt/oracle/instantclient
total 8
drwxr-xr-x 3 root root 4096 Dec 15 21:16 instantclient_21_16
drwxr-xr-x 2 root root 4096 Dec 15 21:16 META-INF
root@ubuntu24-01:/home/apluser/work#
root@ubuntu24-01:/home/apluser/work# unzip -l instantclient-tools-linux.x64-21.16.0.0.0dbru.zip
Archive:  instantclient-tools-linux.x64-21.16.0.0.0dbru.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
     1061  2024-10-21 04:55   META-INF/MANIFEST.MF
     1223  2024-10-21 04:55   META-INF/ORACLE_C.SF
    11501  2024-10-21 04:55   META-INF/ORACLE_C.RSA
  1009112  2024-10-06 22:42   instantclient_21_16/exp
   233472  2024-10-06 22:42   instantclient_21_16/expdp
   501168  2024-10-06 22:42   instantclient_21_16/imp
   245472  2024-10-06 22:42   instantclient_21_16/impdp
    69072  2024-10-06 22:42   instantclient_21_16/libnfsodm.so
    64688  2024-10-06 22:42   instantclient_21_16/libopcodm.so
  1678760  2024-10-06 22:42   instantclient_21_16/sqlldr
     5780  2024-10-06 22:42   instantclient_21_16/TOOLS_LICENSE
     1635  2024-10-06 22:42   instantclient_21_16/TOOLS_README
   830072  2024-10-06 22:42   instantclient_21_16/wrc
---------                     -------
  4653016                     13 files
root@ubuntu24-01:/home/apluser/work#
root@ubuntu24-01:/home/apluser/work#
root@ubuntu24-01:/home/apluser/work# unzip instantclient-tools-linux*.zip -d /opt/oracle/instantclient

expimp命令的确认

  • 可以看到oracle的环境变量已经配置
  • expimp 命令的路径都可以正常显示
# 查看oracle的环境遍变量
apluser@ubuntu24-01:~$ echo $PATH
/home/apluser/bin:/opt/oracle/instantclient/instantclient_21_16:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
apluser@ubuntu24-01:~$ echo $ORACLE_HOME
/opt/oracle/instantclient/instantclient_21_16
apluser@ubuntu24-01:~$
# 查看exp系列命令
apluser@ubuntu24-01:~$ which exp{,dp}
/opt/oracle/instantclient/instantclient_21_16/exp
/opt/oracle/instantclient/instantclient_21_16/expdp
apluser@ubuntu24-01:~$
# 查看imp系列命令
apluser@ubuntu24-01:~$ which imp{,dp}
/opt/oracle/instantclient/instantclient_21_16/imp
/opt/oracle/instantclient/instantclient_21_16/impdp

二. exp 命令导出数据

⏹导出db_user用户相关的所有的数据

  • owner=db_user
exp db_user/oracle@192.168.118.137:1521/XEPDB1 \
file=/home/apluser/work/db_user_data1.dmp \
owner=db_user

⏹导出指定的表结构和表数据并附带log

  • tables=fruits,person_table
exp db_user/oracle@192.168.118.137:1521/XEPDB1 \
file=/home/apluser/work/db_user_data2.dmp \
log=/home/apluser/work/db_user_data2.log \
tables=fruits,person_table

⏹仅导出指定的表结构,不导出表数据

  • rows=n
exp db_user/oracle@192.168.118.137:1521/XEPDB1 \
file=/home/apluser/work/db_user_data3.dmp \
tables=fruits,person_table \
rows=n

⏹使用直接路径的方式进行数据导出

  • 默认模式(direct=n
    • 也被称为常规路径模式,数据通过 SQL SELECT 语句从数据库中读取,并经过 Oracle 的缓冲区层写入导出文件。
    • 导出需要兼容所有类型的数据和对象,或对数据一致性要求较高,使用常规模式(默认模式)。
  • 直接路径模式(direct=y
    • 直接从数据库文件中读取数据并写入导出文件,而不经过 Oracle 的 SQL 层处理。这种方式减少了上下文切换和内存拷贝操作,速度更快。
    • 数据量较大,并且表中不包含复杂对象或 LOB(如 CLOB 或 BLOB) 数据,建议使用 direct=y 来提高导出速度。
exp db_user/oracle@192.168.118.137:1521/XEPDB1 \
file=/home/apluser/work/direct_export.dmp \
log=/home/apluser/work/direct_export.log \
tables=person_table \
direct=y

三. imp 命令导入数据

⏹通过system用户,将db_user用户的数据导入到scott用户中

imp system/oracle@192.168.118.137:1521/XE \
file=/home/apluser/work/db_user_data2.dmp \
log=user_import.log \
fromuser=db_user \
touser=scott

⏹将指定的表导入数据库中

imp db_user/oracle@192.168.118.137:1521/XEPDB1 \
file=/home/apluser/work/db_user_data2.dmp \
log=/home/apluser/work/table_import.log \
tables=fruits,person_table

在这里插入图片描述


四. expdp 和 impdp 命令

expdpimpdp 是 Oracle 提供的 数据泵(Data Pump) 工具,用于高效地导出和导入数据。
与传统的 expimp 工具相比,expdpimpdp 更具性能优势,支持并行操作、过滤数据、导入导出元数据等更多功能。

expdpimpdp 的优势

  • 并行处理:通过 parallel 参数,可以在导出或导入时使用多个进程并行处理,大大提升速度。
  • 过滤数据:可以通过 excludeinclude 参数选择性地导出/导入特定的数据。
  • 高级映射功能:可以使用 remap_schemaremap_tableremap_tablespace 等功能,在导入时进行数据的重映射。
  • 性能优化:提供更多的控制选项,如 transform 用于在导入时禁用索引、修改表结构等。
  • 更高的可靠性:支持恢复操作,可以在导入过程中处理失败并进行恢复。

💥注意事项💥

  • 传统的 expimp 命令支持在客户端使用,而 expdpimpdp 命令只支持在服务器端使用,且需要dba进行配置。

http://www.kler.cn/a/464859.html

相关文章:

  • 9.系统学习-卷积神经网络
  • vue3 css实现文字输出带光标显示,文字输出完毕,光标消失的效果
  • Vue2/Vue3使用DataV
  • Kafka为什么快(高性能的原因)
  • 解决 ffmpeg “Unknown encoder ‘hevc_nvenc‘“
  • 深入解析爬虫中的算法设计:提升效率与准确度
  • RabbitMQ基础篇之Java客户端 基于注解声明队列交换机
  • 记录一下图像处理的基础知识
  • MBox20边缘计算网关助力各种数字化升级
  • windows C#-字符串和字符串字面量(四)
  • 【运维专题】大数据面试笔试宝典之大数据运维面试(一)
  • 多个DataV遍历生成
  • 【前端】Vue 3.5的SSR渲染优化与Lazy Hydration
  • WebRTC线程的启动与运行
  • 利用 NineData 实现 PostgreSQL 到 Kafka 的高效数据同步
  • Vue3 + ElementPlus动态合并数据相同的单元格(超级详细版)
  • C++软件设计模式之观察者模式
  • 服务端错误的处理和web安全检测
  • 【Yarn】通过JMX采集yarn相关指标的Flink任务核心逻辑
  • 【每日学点鸿蒙知识】一键登录、包资源分析工具、har包版本冲突、系统相册等
  • 常用的mac软件下载地址
  • torch.nn.Embedding模块介绍
  • gesp(C++一级)(14)洛谷:B4001:[GESP202406 一级] 立方数
  • 数据集的处理:将Storystream的数据集处理为可训练的格式
  • 服务器上会话存储项目
  • 在群晖上搭建PlaylistDL音乐下载器