【Oracle】Oracle系列之十六--数据库备份

文章目录

  • 往期回顾
  • 1. 数据库备份的分类
    • 1.1 逻辑备份与物理备份
      • (1)逻辑备份
      • (2)物理备份
      • (3)归档模式与非归档模式
    • 1.2 完全备份/差异备份/增量备份
  • 2. Oracle 逻辑备份
    • 2.1 EXP/IMP
      • (1)EXP导出
    • (2)IMP导入
    • 2.2 EXPDP/IMPDP

往期回顾

  • 【Oracle】Oracle系列之一–Oracle数据类型

  • 【Oracle】Oracle系列之二–Oracle数据字典

  • 【Oracle】Oracle系列之三–Oracle字符集

  • 【Oracle】Oracle系列之四–用户管理

  • 【Oracle】Oracle系列之五–Oracle表空间

  • 【Oracle】Oracle系列之六–Oracle表分区

  • 【Oracle】Oracle系列之七–表的创建与管理

  • 【Oracle】Oracle系列之八–SQL查询

  • 【Oracle】Oracle系列之九–Oracle常用函数

  • 【Oracle】Oracle系列之十–Oracle正则表达式

  • 【Oracle】Oracle系列之十一–PL/SQL

  • 【Oracle】Oracle系列之十二–视图、记录、同义词、序列

  • 【Oracle】Oracle系列之十三–游标

  • 【Oracle】Oracle系列之十四–触发器

  • 【Oracle】Oracle系列之十五–存储过程

1. 数据库备份的分类

1.1 逻辑备份与物理备份

数据库备份按照备份状态分为逻辑备份与物理备份。

(1)逻辑备份

利用SQL从数据库中抽取数据,并存为二进制文件的形式进行备份。业务数据库采用此种方式,不需要在归档模式下。如Oracle中,对数据库对象(用户、表、存储过程)利用EXPORT导出,利用IMPORT把逻辑备份文件导入数据库(Oracle exp/imp)。

  • 优点:可以只备份某些表或某些特定的数据;可以在不同版本之间进行跨平台恢复;可以压缩后存储节省空间。
  • 缺点:对于大规模的数据库,执行语句耗时较长;无法保证完全一致性(如同时有新数据插入)。

(2)物理备份

物理备份是指直接拷贝数据库存储介质上的所有内容,包括操作系统层面和数据库引擎层面,这样就能够完整地还原整个数据库。一般需要外部存储设备。

  • 优点:速度快且可靠;能够提供一致性快照。
  • 缺点:只能提供到“某一时间点”上的恢复,无法选择性地(按表或用户)进行备份和恢复,只能全库备份和恢复;不能用于跨平台迁移。

冷备份:发生在数据库已经正常关闭的情况下(脱机状态),所有的数据文件都处于离线状态。在实施备份过程中,数据库不能做其他工作,可以保证数据的完整性和一致性。
热备份:在数据库运行情况下(联机状态)进行,不会影响正常的业务操作,可在表空间或数据库文件级备份,并且对用户透明,能够保持业务连续性,备份时间短,可达到秒级恢复(恢复到某一时间点)。热备份要将日志置为归档模式,需要考虑到正在写入或修改的数据可能导致数据不一致性问题,采取特殊措施来确保数据完整性。

(3)归档模式与非归档模式

归档模式:归档模式下,数据库将历史记录保存到一组称为“归档日志”的特殊文件中。这些日志包含先前已提交的事务的详细信息,使得可以恢复或还原丢失或损坏的数据。由于需要频繁地写入日志文件,性能会有所降低。
非归档模式:非归档模式下,当一个事务被提交时,其结果直接写入主要数据文件中。而不像归档模式那样额外生成日志文件。这种方式虽然可以提高性能,并降低空间开销,但也存在数据丢失或损坏时无法完全恢复的风险。

1.2 完全备份/差异备份/增量备份

(1)完全备份(Full):备份全部选中文件,并不依赖文件的存档属性来确定备份哪些文件(每个文件都被标记为已备份,消除存档属性)。

(2)差异备份(Differential):备份上次完全备份后发生变化的所有文件(备份后不标记为已备份文件,不消除存档属性)。(备份时间长,占空间多,恢复快)。

(3)增量备份(Incremental):针对上次备份后(无论哪种备份)备份上次备份后所有发生变化的文件(备份后标记文件,消除存档属性)。(备份时间短,占空间少,恢复慢)。

组合示例:

完备+差备:周一进行完全备份,周二到周五进行差异备份。若周五数据被破坏,需还原周一的完全备份及周五的差异备份。
完备+增备:周一进行完全备份,周二到周五机型增量备份。若周五数据被破坏,需还原周一的完全备份及周二至周五的增量备份。

2. Oracle 逻辑备份

Oracle支持两种类型的逻辑备份:导出/导入实用程序与数据泵。

2.1 EXP/IMP

(1)EXP导出

完全模式

exp SYSTEM/MANAGER BUFFER=64000 file= C:\full.dmp full=Y

用户模式

exp detail12/detail12 owner=(detail12,detail11) file=/home/oracle/detail.dmp
exp detail12/detail12@RACDB_192.168.1.13 file=d:/detail.dmp

其中,RACDB_192.168.1.13为Oracle Net Configuration Assistant的网络服务名。

表模式

exp detail12/detail12 owner=detail12 tables=(T_JBXX) file=/home/oracle/t_jbxx.dmp

如果T_JBXX为分区表,使用tables=(T_JBXX1:P1,T_JBXX2:P2)的形式。

query字段格式:

query="""where dept_date<to_date('2014-02-01 00:00:10','yyyy-mm-dd hh24:mi:ss')"""

注意:不导入权限和索引可加入 GRANTS=Y INDEXES=Y

关键字说明

关键字说明 (默认值)
USERID用户名/口令
FULL导出整个文件 (N)
BUFFER数据缓冲区大小
OWNER所有者用户名列表
FILE输出文件 (EXPDAT.DMP)
TABLES表名列表
COMPRESS导入到一个区 (Y)
RECORDLENGTH IO记录的长度
GRANTS导出权限 (Y)
INCTYPE增量导出类型
INDEXES导出索引 (Y)
RECORD跟踪增量导出 (Y)
DIRECT直接路径 (N)
TRIGGERS导出触发器 (Y)
LOG屏幕输出的日志文件
STATISTICS分析对象 (ESTIMATE)
ROWS导出数据行 (Y)
PARFILE参数文件名
CONSISTENT交叉表的一致性 (N)
CONSTRAINTS导出的约束条件 (Y)
OBJECT_CONSISTENT只在对象导出期间设置为只读的事务处理 (N)
FEEDBACK每 x 行显示进度 (0)
FILESIZE每个转储文件的最大大小
FLASHBACK_SCN用于将会话快照设置回以前状态的 SCN
FLASHBACK_TIME用于获取最接近指定时间的 SCN 的时间
QUERY用于导出表的子集的 select 子句
RESUMABLE遇到与空格相关的错误时挂起 (N)
RESUMABLE_NAME用于标识可恢复语句的文本字符串
RESUMABLE_TIMEOUTRESUMABLE 的等待时间
TTS_FULL_CHECK对 TTS 执行完整或部分相关性检查
TABLESPACES要导出的表空间列表
TRANSPORT_TABLESPACE导出可传输的表空间元数据 (N)
TEMPLATE调用 iAS 模式导出的模板名

(2)IMP导入

完全模式

imp SYSTEM/MANAGER BUFFER=64000 file=C:\full.dmp full=Y

用户模式

imp detail12/detail12 fromuser=(detail12,detail11) touser=(detail12,detail11) file=/home/oracle/detail.dmp

表模式

imp detail12/detail12 owner=detail12 tables=(T_JBXX) file=/home/oracle/t_jbxx.dmp

注意

IMP导入必须指定Full=Y,或提供fromuser/touser参数,或提供tables参数。
导入前需按要求设置字符集export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
忽略创建表错误可加入IGNORE=Y,不导入权限和索引可加入 GRANTS=Y INDEXES=Y
导入时发生IMP-00032错误,表示SQL语句超过缓冲区长度,可以加入选项:buffer=100000000
关键字说明

关键字说明 (默认值)
USERID用户名/口令
FULL导入整个文件 (N)
BUFFER数据缓冲区大小
FROMUSER所有者用户名列表
FILE输入文件 (EXPDAT.DMP)
TOUSER用户名列表
SHOW只列出文件内容 (N)
TABLES表名列表
IGNORE忽略创建错误 (N)
RECORDLENGTH IO记录的长度
GRANTS导入权限 (Y)
INCTYPE增量导入类型
INDEXES导入索引 (Y)
COMMIT提交数组插入 (N)
ROWS导入数据行 (Y)
PARFILE参数文件名
LOG屏幕输出的日志文件
CONSTRAINTS导入限制 (Y)
DESTROY覆盖表空间数据文件 (N)
INDEXFILE将表/索引信息写入指定的文件
SKIP_UNUSABLE_INDEXES跳过不可用索引的维护 (N)
FEEDBACK每 x 行显示进度 (0)
TOID_NOVALIDATE跳过指定类型 ID 的验证
FILESIZE每个转储文件的最大大小
STATISTICS始终导入预计算的统计信息
RESUMABLE在遇到有关空间的错误时挂起 (N)
RESUMABLE_NAME用来标识可恢复语句的文本字符串
RESUMABLE_TIMEOUTRESUMABLE 的等待时间
COMPILE编译过程, 程序包和函数 (Y)
STREAMS_CONFIGURATION导入流的一般元数据 (Y)
STREAMS_INSTANTIATION导入流实例化元数据 (N)

2.2 EXPDP/IMPDP

(1)数据泵介绍

Oracle Database 10g引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中,与Export / Import相比,它提供更好的性能、安全性和灵活性。

并行处理: Oracle 数据泵支持并行处理(通过指定 PARALLEL 参数启用),这使得导入和导出任务更加快速和高效。
可定制: 数据泵允许用户选择要包含或排除的对象类型(如表、视图、约束等),以及要包含或排除的特定对象。
压缩: Oracle 数据泵支持压缩功能,可减少导出文件的大小,并提高传输速度。
安全性: 数据泵支持 SSL 加密协议来保护敏感信息,在安全方面非常有优势。
多平台兼容性: Oracle 数据泵支持多个平台上运行,例如 Windows 和 Linux 等操作系统。
(2)数据泵的使用

EXP和IMP是客户段工具程序,它们既可以在可以客户端使用,也可以在服务端使用。 EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。

使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录。因此,使用EXPDP工具时,必须首先建立DIRECTORY对象,并且需要为数据库用户授予使用DIRECTORY对象权限。

使用Data Pump,可将整个数据库或特定模式及其对象(如表格、索引、约束和其数据)导出/导入,还可指定选项,例如表空间、压缩级别、加密和远程导出/导入的网络链接。

Data Pump包括两个客户端实用程序:expdp(Export Data Pump)和impdp(Import Data Pump)。

e.g.

create directory imp_dir as 'D:\imp_dir';
GRANT READ, WIRTE ON DIRECTORY imp_dir TO detail;
expdp scott/tiger DUMPFILE=tmp_dump.dmp  DIRECTORY= imp_dir
impdp scott/tiger DUMPFILE=tmp_dump.dmp  DIRECTORY= imp_dir

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录第35天 | ● 01背包问题,你该了解这些! ● 01背包问题—— 滚动数组 ● 416. 分割等和子集

01背包 题目 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 代码 function testWeightBagProblem (weight, value, size) {// 定义 d…

引入短信服务

一、阿里云短信服务 进入阿里云平台&#xff0c;然后选择短信服务&#xff0c;通过API发送短信(需要充值金额&#xff0c;几块钱就可以&#xff0c;我们仅仅是小规模项目) 找到openAPI 可以看到Java语言的代码模板&#xff0c;这个就是Java SendSMS短信服务的代码 创建Accessk…

Eclipse MAT解析headp dump,total size小于file size

1. 问题描述 使用Eclipse MAT分析20GB的heap dump文件 最后解析出来dump size只有1GB 2. 原因&#xff1a;heap dump中包含许多unreachable objects Eclipse MAT的官方文档&#xff0c;《Basic Tutorial》章节&#xff0c;有对上图的Overview page做介绍 针对total size小…

JavaScript操作CSS样式

上节课我们基本完成了游戏的主体&#xff0c;这节课我们来学习如果使用JavaScript去操作CSS样式 ● 例如&#xff0c;我们现在想当玩家输入对的数字之后&#xff0c;我们讲背景改为绿色&#xff0c;并且把number的框宽度变大 const secretnumber Math.trunc(Math.random() * …

Zabbix配置监控文件系统可用空间小于30GB自动告警

一、创建监控项 二、配置监控项 #输入名称–>键值点击选择 #找到磁盘容量点击 注&#xff1a; 1、vfs 该键值用于检测磁盘剩余空间&#xff0c;zabbix 内置了非常多的键值可以选着使用 2、单位B不需要修改&#xff0c;后期图表中单位和G拼接起来就是GB 3、更新时间 10S…

建筑施工行业招投标资源众包分包系统站点开发

一款针对建筑、施工行业开发的程序系统平台&#xff0c;运营方可以招募企业发布招投标信息以及招聘信息。 核心功能&#xff1a;一、项目招投标众包发布和投标 企业可以根据自身资源或者实际需求发布参与招投标信息&#xff0c;程序后台可以管理、审核用户发布的信息。参与招…

第八章 排序 四、冒泡排序

目录 一、算法思想 二、例子 三、代码实现 四、验证 五、算法性能分析 注意&#xff1a;要分清楚交换次数和移动次数 六、总结 一、算法思想 从后往前&#xff0c;两两比较相邻元素的值&#xff0c;若为逆序&#xff0c;则交换它们的值&#xff0c;直到全部比较完。 二…

学习开发一个RISC-V上的操作系统(汪辰老师) — unrecognized opcode `csrr t0,mhartid‘报错问题

前言 &#xff08;1&#xff09;此系列文章是跟着汪辰老师的RISC-V课程所记录的学习笔记。 &#xff08;2&#xff09;该课程相关代码gitee链接&#xff1b; &#xff08;3&#xff09;PLCT实验室实习生长期招聘&#xff1a;招聘信息链接 正文 &#xff08;1&#xff09;在跟着…

LabVIEW工业虚拟仪器的标准化实施

LabVIEW工业虚拟仪器的标准化实施 创建计算机化的测试和测量系统&#xff0c;从计算机桌面控制外部测量硬件设备&#xff0c;以及在计算机屏幕上显示的类似仪器的面板上查看来自外部设备的测试或测量数据&#xff0c;所有这些都需要虚拟仪器系统软件。该软件允许用户执行所有这…

游戏素材网站

OpenGameArt.org&#xff1a;这是一个提供免费游戏素材的社区平台&#xff0c;包括角色、背景、音效、音乐等各种类型的素材。你可以在 https://opengameart.org/ 上找到大量的免费资源。 Kenney.nl&#xff1a;Kenney 是一个知名的游戏开发者&#xff0c;他提供了大量的免费 …

第十七章:Java连接数据库jdbc(java和myql数据库连接)

1.进入命令行&#xff1a;输入cmd&#xff0c;以管理员身份运行 windowsr 2.登录mysql 3.创建库和表 4.使用Java命令查询数据库操作 添加包 导入包的快捷键 选择第四个 找到包的位置 导入成功 创建java项目 二&#xff1a;连接数据库&#xff1a; 第一步&#xff1a;注册驱动…

阿里巴巴K8S集成seata

正文 在K8S集成seata&#xff0c;官方配置 代码 apiVersion: v1 kind: Service metadata:name: seata-servernamespace: wmz-devlabels:k8s-app: seata-server spec:type: NodePortports:- port: 8091nodePort: 30091protocol: TCPname: httpselector:k8s-app: seata-server-…

Android12之H264、H265、H266视频编码标准总结(四十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

[Machine Learning]pytorch手搓一个神经网络模型

因为之前虽然写过一点点关于pytorch的东西&#xff0c;但是用的还是他太少了。 这次从头开始&#xff0c;尝试着搓出一个神经网络模型 &#xff08;因为没有什么训练数据&#xff0c;所以最后的训练部分使用可能不太好跑起来的代码作为演示&#xff0c;如果有需要自己连上数据…

linux下的永久保存行号

linux下的永久保存行号 1.首先 这里是引用 输入命令&#xff1a;vi ~/.vimrc 其次 这里是引用 输入命令 set number

一文看懂功率MOSFET FCP190N60 N沟道 基础知识

什么是MOSFET的原意是&#xff1a;MOS&#xff08;Metal Oxide Semiconductor金属氧化物半导体&#xff09;&#xff0c;FET&#xff08;Field Effect Transistor场效应晶体管&#xff09;&#xff0c;即以金属层&#xff08;M&#xff09;的栅极隔着氧化层&#xff08;O&#…

8.Vue_Element

1 Ajax 1.1 Ajax介绍 1.1.1 Ajax概述 我们前端页面中的数据&#xff0c;如下图所示的表格中的学生信息&#xff0c;应该来自于后台&#xff0c;那么我们的后台和前端是互不影响的2个程序&#xff0c;那么我们前端应该如何从后台获取数据呢&#xff1f;因为是2个程序&#xf…

【云备份项目】【Linux】:环境搭建(g++、json库、bundle库、httplib库)

文章目录 1. g 升级到 7.3 版本2. 安装 jsoncpp 库3. 下载 bundle 数据压缩库4. 下载 httplib 库从 Win 传输文件到 Linux解压缩 1. g 升级到 7.3 版本 &#x1f517;链接跳转 2. 安装 jsoncpp 库 &#x1f517;链接跳转 3. 下载 bundle 数据压缩库 安装 git 工具 sudo yum…

Vue中如何进行响应式图像与图片懒加载优化

Vue中响应式图像与图片懒加载优化 在现代的Web开发中&#xff0c;图像在网站性能和用户体验方面扮演着至关重要的角色。然而&#xff0c;加载大量的图像可能会导致网页加载速度变慢&#xff0c;从而影响用户的满意度。为了解决这个问题&#xff0c;Vue.js提供了一些强大的工具…

Docker Tutorial

什么是Docker 为每个应用提供完全隔离的运行环境 Dockerfile&#xff0c; Image&#xff0c;Container Image&#xff1a; 相当于虚拟机的快照&#xff08;snapshot&#xff09;里面包含了我们需要部署的应用程序以及替它所关联的所有库。通过image&#xff0c;我们可以创建很…