【Oracle篇】Oracle Data Pump远程备份技术:直接从远端数据库备份至本地环境

💫《博主主页》:
   🔎 CSDN主页__奈斯DB
   🔎 IF Club社区主页__奈斯、
🔥《擅长领域》:擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控;并对SQLserver、NoSQL(Redis)有了解
💖如果觉得文章对你有所帮助,欢迎点赞收藏加关注💖

在这里插入图片描述
    最近需要帮研发小伙伴导出数据,但遇到个小麻烦——没有直接连接到远端Oracle数据库服务器的权限😅。如果使用传统的exp工具,直接运行命令就搞定了,但这次需要导出的数据量比较大,并且需要导出高级数据类型(如SecureFiles LOB等),对于exp而言导出速度较慢,以及不支持导出部分数据库特性。因此需要使用导出速度更快,支持更多导出特性的数据泵expdp,没想到操作起来有点曲折💦。具体步骤有点复杂:
1️⃣ 先在本地部署一个Oracle实例
2️⃣ 然后在本地实例创建DBLINK和DIRECTORY对象
3️⃣ 最后通过 expdp+NETWORK_LINK 实现远端导出

    虽然过程麻烦了点,但好在通过查看官方文档📚和参考DeepSeek🤖,解决了这个问题~ 果然办法总比困难多✨ (顺便夸夸DeepSeek写得真详细👍)

    首先看看通过exp怎么实现直接从远端数据库备份至本地环境。

通过exp实现从远端数据库备份至本地环境:

    通过 exp 远端备份的前提,本地安装了 Oracle 客户端(包含 exp 工具)即可,本地不需要有Oracle实例,就可以直接将远程数据库中的数据导出到本地。

exp \"sys/password@<db_alias>:<listener_port>/<instance_name> as sysdba\" compress=n buffer=4096000 feedback=100000 full=y file=exp_orcl_full.dmp log=exp_orcl_full.log

###1、这里直接使用了简便连接EZCONECT;如果使用TNS(@实例名)连接的话,则需要通过Tnsnames.ora文件的连接描述符来登录数据库。tns这种方式必须保证监听启动(listener.ora)不然报ORA-12541: TNS:no listener
###2、通过exp远端备份连接的用户和密码都是远程数据库的。


    如上可以看到通过exp实现从远端数据库备份至本地环境非常简单,但exp本身有一定的局限性,比如速度不如expdp,以及不支持XMLType数据的完整导出,对某些高级数据类型(如SecureFiles LOB)支持有限等等。

exp相对于expdp的局限性

功能局限性:

  1. 性能较低:
    • exp是单线程操作,而expdp支持并行处理
    • expdp使用直接路径访问方式,速度更快
  2. 不支持部分数据库特性:
    • 不支持XMLType数据的完整导出
    • 对某些高级数据类型(如SecureFiles LOB)支持有限
    • 不支持导出外部表定义
  3. 元数据处理能力弱:
    • 不能选择性导出特定对象类型(如表但不含索引)
    • 重映射功能有限
         

架构局限性:

  1. 服务器端处理:
    • exp在客户端运行,所有数据需通过网络传输
    • expdp在服务器端运行,减少网络流量
  2. 作业管理:
    • exp没有作业控制功能
    • expdp可以暂停、恢复和监控作业
  3. 空间效率:
    • exp生成的转储文件通常较大
    • expdp使用压缩技术(可选的),文件更小
         

可用性限制:

  1. 大对象处理:
    • exp处理大型数据库效率低下
    • expdp专为处理TB级数据库设计
  2. 安全特性:
    • expdp支持加密导出数据
    • expdp可与Oracle Wallet集成

    因此11g之后建议使用expdp导出impdp导入数据,同样的11g之后最好也使用expdp实现从远端数据库备份至本地环境。

通过expdp实现从远端数据库备份至本地环境:

    通过 expdp 远端备份的前提,本地安装了 Oracle 客户端(包含 expdp 工具),以及启动了本地Oracle实例,因为需要在本地Oracle实例上创建连接到远程数据库的dblink。关于在本地安装Oracle数据库软件,以及启动和安装Oracle实例这里博主就不过多说明了,可以参考官方文档以及网上找部署资料,可以是Windows环境,也可以是Linux环境。
   
步骤 1:在本地创建 Database Link
   首先,在本地数据库(或 Oracle 客户端)上创建一个Database Link,用于连接远程数据库:

sqlplus / as sysdbacreate database link remote_to_liudbywc133 connect to liudbywcs identified by "123456" using    -- CONNECT TO是远程数据库的认证用户和密码
' (DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.82.133)         -- 远端数据库的IP地址(PORT = 1521)) )                -- 远端数据库的监听端口(CONNECT_DATA =                (SERVICE_NAME = liudbywc)      -- 远端数据库的连接服务名) )';

    验证 Database Link 是否可用

SELECT COUNT(*) FROM remote_schema.remote_table@remote_to_liudbywc133;

   

步骤 2:在本地创建 DIRECTORY 对象
    expdp 只能写入 Oracle 目录对象(DIRECTORY),因此需要在本地定义一个目录:

sqlplus / as sysdbaCREATE OR REPLACE DIRECTORY remote_liudbywc133 AS '/home/oracle';
grant all on directory remote_liudbywc133 to sys;

   

步骤 3:使用expdp+NETWORK_LINK导出

expdp  \"/ as sysdba\" NETWORK_LINK=remote_to_liudbywc133 directory=remote_liudbywc133 dumpfile=expdp_liudbywc_full_%U.dmp  logfile=expdp_liudbywc_full.log full=y   parallel=2  COMPRESSION=all
参数选项描述
NETWORK_LINK允许直接从远程数据库导出数据到本地,而无需在远程服务器上生成转储文件。

NETWORK_LINK 基本概念:
NETWORK_LINK 参数指定一个预先定义的数据库链接(database link),通过这个链接,expdp 可以:
    1. 访问远程数据库中的数据和元数据
    2. 将数据直接导出到本地系统的转储文件中
    3. 完全避免在远程服务器上存储临时文件

工作原理:
当使用 NETWORK_LINK 时,Data Pump 会:
    1. 通过指定的数据库链接连接到远程数据库
    2. 从远程数据库读取数据
    3. 通过数据库链接将数据传输到本地
    4. 在本地系统上创建转储文件

这里需要注意:这里"/ as sysdba"是本地Oracle数据库的登录用户名和密码,而远程数据库的访问是通过NETWORK_LINK对应的 Database Link 配置的(其中已包含远程数据库的用户名和密码)。
    "/ as sysdba"是本地Oracle数据库的登录用户名和密码的原因如下:

  1. 在本地创建和执行 Data Pump 作业的权限(通常需要 DATAPUMP_EXP_FULL_DATABASE 或 EXP_FULL_DATABASE 角色)。
  2. 对 DIRECTORY=remote_liudbywc133 的读写权限。
       

###1、expdp的远端备份不同于exp,不能直接写简便连接加上远端数据库的密码和用户,这样会导致dmp文件在远端数据库的DIRECTORY目录下,而不是本地。比如在本地数据库上执行如下命令,本地数据库和远端数据库都有DATA_PUMP_DIR目录,执行如下命令后dmp文件在远端数据库的DATA_PUMP_DIR目录下,而不是本地数据库的DATA_PUMP_DIR目录上: expdp \"sys/123456@192.168.82.133:1521/liudbywc as sysdba\" directory=DATA_PUMP_DIR dumpfile=expdp_liudbywc_full_%U.dmp logfile=expdp_liudbywc_full.log full=y parallel=2 COMPRESSION=all
在这里插入图片描述
在这里插入图片描述

###2、通过expdp远端备份连接的用户和密码都是本地数据库的,原因参考上面;对于远程数据库的访问是通过NETWORK_LINK对应的 Database Link 配置的(其中已包含远程数据库的用户名和密码)。


    通过expdp实现从远端数据库备份至本地环境到这里就算介绍啦!实现起来不难,但就是比较麻烦,献给有需要的小伙伴。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/92344.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/92344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统--文件系统

大家好&#xff0c;我们今天继续来学习Linux系统部分。上一次我们学习了内存级的文件&#xff0c;下面我们来学习磁盘级的文件。那么话不多说&#xff0c;我们开始今天的学习&#xff1a; 目录 Ext系列⽂件系统 1. 理解硬件 1-1 磁盘、服务器、机柜、机房 1-2 磁盘物理结构…

KUKA库卡焊接机器人氩气节气设备

在焊接生产过程中&#xff0c;氩气作为一种重要的保护气体被广泛应用于KUKA库卡焊接机器人的焊接操作中。氩气的消耗往往是企业生产成本的一个重要组成部分&#xff0c;因此实现库卡焊接机器人节气具有重要的经济和环保意义。WGFACS节气装置的出现为解决这一问题提供了有效的方…

远程连接----ubuntu ,rocky 等Linux系统,WindTerm_2.7.0

新一代开源免费的终端工具-WindTerm github 27.5k⭐ https://github.com/kingToolbox/WindTerm/releases/download/2.7.0/WindTerm_2.7.0_Windows_Portable_x86_64.zip 主机填写你自己要连接的主机ip 端口默认 22 改成你ssh文件配置的端口 输入远程的 用户名 与密码 成功连接…

笔试——Day32

文章目录第一题题目思路代码第二题题目&#xff1a;思路代码第三题题目&#xff1a;思路代码第一题 题目 素数回文 思路 模拟 构建新的数字&#xff0c;判断该数是否为素数 代码 第二题 题目&#xff1a; 活动安排 思路 区间问题的贪⼼&#xff1a;排序&#xff0c;然…

超高车辆如何影响城市立交隧道安全?预警系统如何应对?

超高车辆对立交隧道安全的潜在威胁在城市立交和隧道中&#xff0c;限高设施的设计通常考虑到大部分正常通行的货车和运输车辆。然而&#xff0c;一些超高的货车、集装箱车或特殊车辆如果未经有效监测而进入限高区域&#xff0c;就可能对道路设施造成极大的安全隐患。尤其在立交…

解决 MinIO 上传文件时报 S3 API Requests must be made to API port错误

在使用 MinIO 进行文件上传时&#xff0c;我遇到了一个比较坑的问题。错误日志如下&#xff1a; io.minio.errors.InvalidResponseException: Non-XML response from server. Response code: 400, Content-Type: text/xml; charsetutf-8, body: <?xml version"1.0&quo…

linux_https,udp,tcp协议(更新中)

目录 https 加密类型 对称加密 非对称加密 加密方案 只用对程加密 只用非对程加密 双方都是用非对程加密 非对称对称加密 非对称对称加密证书 流程图 校验流程图 udp udp协议格式 特点 UDP缓冲区 tcp tcp协议格式 32位序号及确认序号 4位首部 6位标志位 1…

web端-登录页面验证码的实现(springboot+vue前后端分离)超详细

目录 一、项目技术栈 二、实现效果图 ​三、实现路线 四、验证码的实现步骤 五、完整代码 1.前端 2.后端 一、项目技术栈 登录页面暂时涉及到的技术栈如下: 前端 Vue2 Element UI Axios&#xff0c;后端 Spring Boot 2 MyBatis MySQL JWT Maven 二、实现效果图…

疯狂星期四文案网第33天运营日记

网站运营第33天&#xff0c;点击观站&#xff1a; 疯狂星期四 crazy-thursday.com 全网最全的疯狂星期四文案网站 运营报告 今日访问量 今日搜索引擎收录情况 必应收录239个页面&#xff0c;还在持续增加中&#xff0c;已经获得必应的认可&#xff0c;逐渐收录所有页面 百度…

客户端利用MinIO对服务器数据进行同步

MinIO 是一款高性能、开源的对象存储服务&#xff0c;专为海量数据存储设计&#xff0c;兼容 Amazon S3 API&#xff08;即与 AWS S3 协议兼容&#xff09;&#xff0c;可用于构建私有云存储、企业级数据湖、备份归档系统等场景。它以轻量、灵活、高效为核心特点&#xff0c;广…

WPF 双击行为实现详解:DoubleClickBehavior 源码分析与实战指南

WPF 双击行为实现详解:DoubleClickBehavior 源码分析与实战指南 文章目录 WPF 双击行为实现详解:DoubleClickBehavior 源码分析与实战指南 引言 一、行为(Behavior)基础概念 1.1 什么是行为? 1.2 行为的优势 二、DoubleClickBehavior 源码分析 2.1 类定义与依赖属性 2.2 双…

零知开源——基于STM32F103RBT6的TDS水质监测仪数据校准和ST7789显示实战教程

✔零知开源是一个真正属于国人自己的开源软硬件平台&#xff0c;在开发效率上超越了Arduino平台并且更加容易上手&#xff0c;大大降低了开发难度。零知开源在软件方面提供了完整的学习教程和丰富示例代码&#xff0c;让不懂程序的工程师也能非常轻而易举的搭建电路来创作产品&…

luogu P3387 【模板】缩点

原题链接 原题再现 题目描述 给定一个 n 个点 m 条边有向图&#xff0c;每个点有一个权值&#xff0c;求一条路径&#xff0c;使路径经过的点权值之和最大。你只需要求出这个权值和。 允许多次经过一条边或者一个点&#xff0c;但是&#xff0c;重复经过的点&#xff0c;权…

P1119 灾后重建【题解】

P1119 灾后重建 题目背景 B 地区在地震过后&#xff0c;所有村庄都造成了一定的损毁&#xff0c;而这场地震却没对公路造成什么影响。但是在村庄重建好之前&#xff0c;所有与未重建完成的村庄的公路均无法通车。换句话说&#xff0c;只有连接着两个重建完成的村庄的公路才能通…

Horse3D引擎研发笔记(二):基于QtOpenGL使用仿Three.js的BufferAttribute结构重构三角形绘制

在Horse3D引擎的研发过程中&#xff0c;我们致力于构建一个高效、灵活且易于扩展的3D图形引擎。在本篇博客中&#xff0c;我们将详细记录如何基于QtOpenGL框架&#xff0c;使用仿Three.js的BufferAttribute结构&#xff0c;重构三角形绘制流程。通过这一过程&#xff0c;我们希…

MCU程序段的分类

程序的下载&#xff08;烧录到存储器中&#xff09;通常是按照程序文件分段&#xff08;Code段、RO_data段、RW_data段、ZI_data段&#xff09;的方式存储的&#xff0c;但运行时内存的布局会按照程序进程分段&#xff08;TEXT段、DATA段、BSS段、堆栈段&#xff09;进行组织。…

综合项目记录:自动化备份全网服务器数据平台

一、项目背景与需求1.1项目概述该项目共分为2个子项目&#xff0c;由环境搭建和实施备份两部分组成1.2项目总体需求企业内部有一台web服务器&#xff0c;内部数据很重要&#xff0c;现需要为该web服务器数据做备份&#xff0c;这样在数据丢失时可以恢复。要求如下&#xff1a;每…

联合索引全解析:一棵树,撑起查询的半边天

目录 一、为什么联合索引是MySQL性能优化的“王牌”&#xff1f; &#xff08;一&#xff09;索引的基本结构&#xff1a;从聚簇到非聚簇 1. 聚簇索引&#xff08;Clustered Index&#xff09; 2. 非聚簇索引&#xff08;Secondary Index&#xff09; &#xff08;二&…

vue开发的计算机课程页面

课程信息展示页面设计与实现我将设计一个美观且实用的课程信息展示页面&#xff0c;重点展示计算机网络应用课程的相关信息。设计思路使用卡片式布局清晰展示课程各模块信息采用科技感配色方案&#xff0c;符合计算机网络课程主题添加动画效果增强用户体验响应式设计确保在各种…

MySQL 正则表达式详细说明

目录 MySQL 正则表达式详细说明 1. 基本操作符&#xff1a;REGEXP 和 RLIKE 2. 常用正则表达式模式 3. MySQL 正则表达式函数&#xff08;MySQL 8.0&#xff09; 4. 示例查询 5. 注意事项 6. 总结 MySQL 正则表达式详细说明 MySQL 支持正则表达式&#xff08;Regular Ex…