数据库管理-第190期 备份堪比生死(20240515)

news2024/11/16 9:53:52

数据库管理190期 2024-05-15

  • 数据库管理-第190期 备份堪比生死(20240515)
    • 1 DDL误操作
    • 2 强大的RMAN
    • 3 ZDLRA
    • 总结

数据库管理-第190期 备份堪比生死(20240515)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Associate: Database(Oracle与MySQL)
PostgreSQL ACE Partner
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、认证技术专家、年度墨力之星,ITPUB认证专家、专家百人团成员,OCM讲师,PolarDB开源社区技术顾问,OceanBase观察团成员
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭

最近听到的一些言论,似乎得出备了以结论,即在很多场景,比如云上或多副本分布式环境中是不需要的。但是综合上一期的内容,加上最近看到的一些新闻,我还是认为,数据库的备份依然是必须且必需的。

1 DDL误操作

其实也就是类似于上一期的truncate,也可能是删除了某一列,这些DDL的误操作,并不会产生undo信息(其他数据库可能是版本快照之类的),在有些数据库上truncate还会直接删除物理文件。这种情况下就不可能想依靠undo或版本快照来恢复数据,当然还是可以通过一些外部工具从表空间数据文件或者操作系统来尝试恢复数据,这个难度和费用就可能不可估了。
那么无论在什么环境上,此类误操作都需要通过备份进行恢复。这里有人肯定会说,还有闪回技术,这里需要说明几点:

  1. 不是所有的数据库都有闪回技术
  2. 恢复DDL一般是要求全库闪回的,对生产数据库来说是灾难性的恢复操作
  3. 闪回需要记录更多的东西,一方面可能影响性能,另一方面大多要放在生产数据库中,而备份可以放进便宜的存储中

2 强大的RMAN

其实针对上一期的恢复,主要还是我这边存储资源不足,如果存储足够,应该还是会通过时间点恢复来将对应的整个PDB恢复出来,以进行更多的操作。使用recover table来操作其实最终也几乎恢复了整个PDB,然后在把对应表通过expdp导出来。整个操作涉及了最近一次全量备份和从这次备份到恢复时间点的全部归档日志,实际需要使用的空间比PDB大的多,又因为很多数据已经转入了多了对象存储之中,恢复拉取数据的速度慢的感人,整体花了接近17个小时。
无论我们通过RMAN来恢复数据多么耗时,但是RMAN提供了全面且强大的备份及恢复功能,可以用各种姿势来恢复你需要的数据,当然这一些还是得看你怎么备份的,备份放在哪的。我认为RMAN的功能和设计理念是值得广大国产数据库学习的。

3 ZDLRA

ZDLRA,Zero Data Loss Recovery Appliance,零数据丢失恢复一体机,Oracle提供的针对Oracle数据库的最强大的备份设备。通过一次全量备份后,全程增量实时备份。并可以将备份开始后,任意时间点的任意数据以极快的方式恢复出来,而不需要除中转空间以外的所有硬件资源。这可以看做RMAN与DG之间的融合增强。单机架的ZDLRA可以实现24TB/小时的持续的增量备份拉取速度与恢复速度,而扩展机架的ZDLRA可以线性提升备份和恢复速度,18机架配置可以达到432TB/小时。
其核心特性:

  • 实时重做传输
  • 高效复制
  • 自动磁带归档
  • 端到端的数据验证
  • 永久增量备份策略
  • 节省空间的虚拟完全备份
  • 备份操作分流
  • 数据库级保护策略
  • 数据库感知的空间管理
  • 云级架构
  • 统一的管理和控制

主要优势:

  • 消除数据丢失风险
  • 备份影响极低
  • 数据库级可恢复性

image.png
对比其他一体机,NBU备份Oracle数据库就是通过对接RMAN来实现的,相对来说是比较易用的。但我看到过一些其他的备份设备,大多数只能通过逻辑备份方式来备份数据库;而有些情况下则需要通过备份操作系统逻辑卷快照的方式来备份数据库,这需要操作系统逻辑卷组预留一半以上的空间,且备份数据不是一致性的,完全不支持数据存储在类似于ASM等对磁盘有优化操作的环境之中。关于统一备份,ZDLRA也是有值得学习的地方。

总结

这里还没有说云上到底需不需要备份,前几天GCP的惨痛案例还历历在目,确实误操作是无法绝对避免的,这更多的是管理、流程、责任心和细心程度等的问题。但是我们不能将整个IT架构的命脉完全交给人,高可用确实重要,但是我认为,备份是守卫数据安全的最后一道保障。
老规矩,不知道写了些啥。

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

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

相关文章

HTTP协议及应用

一.HTTP协议 1.HTTP协议版本 HTTP1.0:服务器处理完成后立即断开TCP连接(无连接),服务器不跟踪每个客户端也不记录过去的请求(无状态); HTTP1.1:KeepAlived长连接避免了连接建立和…

《Mybatis》系列文章目录

什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO&#xff…

03 Linux编程-进程

1、进程的相关概念 1.1 程序与进程 程序是静态的概念,进程是程序的一次运行活动。 1.2 查看系统中有哪些进程 ps #只显示一小部分进程 ps -aux #会打印当前所有进程 ps -aux|grep init #使用grep筛选出只含有init的进程top #运行显示的进程有点类似windows…

5.12学习总结

一.JAVA聊天室项目 文件发送 使用 Java Socket 实现聊天内容或文件的传输的原理如下: 服务器端启动:聊天室的服务器端在指定的端口上监听客户端的连接。它创建一个 ServerSocket 对象,并通过调用 accept() 方法等待客户端的连接请求。客户…

GPT5 如何使用?GPT5 如何订阅?GPT5 功能全面详解

结论是:GPT2 很糟糕 ,GPT3 很糟糕 ,GPT4 可以 ,但 GPT5 会很好。 ChatGPT5今年发布 GPT5发布的具有推理功能的不断发展,就像 iPhone 一样。 Sam Altman 于 17 日(当地时间),在世界…

【数据结构】数据结构大汇总 {数据结构的分类总结:定义和特性、实现方式、操作与复杂度、适用场景、相关算法、应用实例}

一、线性结构 1.1 顺序表 定义和特性:顺序表是一种线性表的存储结构,它采用一段地址连续的存储单元依次存储线性表中的元素。顺序表具有随机访问的特性,即可以通过元素的下标直接访问元素。 实现方式:顺序表可以通过数组来实现&…

初识C++ · string的使用(2)

目录 1 Modifiers部分 1.1 assign的使用 1.2 insert的使用 1.3 erase的使用 1.4 replace的使用 2 capacity部分 2.1 max_size的使用 2.2 capacity的使用 2.3 reserve的使用 2.4 shrink_to_fit简介 2.5 resize的使用 2.6 clear的使用 3 String operations部分 3.1 …

Python查询和操作HTML文档库之pyquery使用详解

概要 在Web开发和数据抓取中,处理HTML文档是一项常见任务。Python的pyquery库提供了一个强大且灵活的方式来查询和操作HTML文档,类似于jQuery的语法。通过这篇文章,将深入了解pyquery的安装、特性、基本和高级功能,以及它在实际应用中的用例。 安装 安装pyquery相当简单,…

3、用Vue快雕塑搭建一个管理系统的页面布局框架

3.2.顶部栏header 在el-header标签里对标签栏header进行样式定义 <template><div id"app"><el-container><el-header style"background-color: #4c535a"><img src"/assets/logo.png" alt"" style"w…

做一个犬榜小程序,警示社会。

2024-5-15新闻&#xff1a;流浪狗咬死3岁男童。 相关链接&#xff1a;3岁男童被恶犬咬伤离世 母亲发声 急寻狗主讨公道_中华网 恶狗的主人终于付出代价 链接&#xff1a;这回&#xff0c;恶狗的主人终于付出代价 - 知乎 7岁女童家门口玩耍被恶犬咬伤头面部&#xff0c;多处撕…

深⼊理解指针(5)

目录 1. 回调函数是什么&#xff1f;1.1 使用回调函数修改 2. qsort使⽤举例2.1 使⽤qsort函数排序整型数2.2 使⽤qsort排序结构数据按年龄排序2.3 使⽤qsort排序结构数据按名字排序2.4整体代码 3. qsort函数的模拟实现3.1 整型数组的实现3.2 结构体按名字排序实现3.3 结构体按…

企业开发(日期格式处理)——注解 @JsonFormatvs VS 消息转换器?

在企业级应用程序开发中&#xff0c;日期是一个常见但又容易被忽视的问题。正确处理日期格式对于系统的正确性和用户体验至关重要。在本文中&#xff0c;我们将探讨两种常见的方式来处理日期格式&#xff1a;通过注解和通过扩展Spring MVC的消息转换器&#xff0c;以及它们各自…

Python-VBA函数之旅-zip函数

目录 一、zip函数的常见应用场景 二、zip函数使用注意事项 三、如何用好zip函数&#xff1f; 1、zip函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a;https://myelsa1024.blog.csdn.net/ 一、zip函数的常见…

网络3--网络通信的深度理解(端口号)

网络通信的进一步理解 两个主机间进行通信&#xff0c;其实是两个主机间的软件进行通信&#xff0c;软件也就是可执行程序&#xff0c;运行时就是进程&#xff0c;所以也为进程间通信。 进程间通信需要共享资源&#xff0c;这里两个主机间的共享资源是网络&#xff0c;利用的是…

MVP产品设计与数据指标

MVP&#xff08;minimum viable product&#xff0c;最小化可行产品&#xff09;概念最早由埃里克莱斯提出&#xff0c;刊载于哈弗商业评论&#xff0c;并有出版物《精益创业》 和常规产品不同&#xff0c;MVP更侧重于对未知市场的勘测&#xff0c;用最小的代价接触客户的方法…

修改远程服务器Nginx默认端口

目录 前言 正文 尾声 &#x1f52d; Hi,I’m Pleasure1234&#x1f331; I’m currently learning Vue.js,SpringBoot,Computer Security and so on.&#x1f46f; I’m studying in University of Nottingham Ningbo China&#x1f4eb; You can reach me by url below:My Blo…

Scala编程基础1:基本数据类型、变量、if、for、IO

注意&#xff1a;Scala系列的文章需要一定的java基础 Scala底层是用java语言编写的&#xff0c;scala是运行在Java虚拟机&#xff08;JVM&#xff09;上的编程语言&#xff0c;它兼容Java&#xff0c;可以直接调用Java的库和框架&#xff0c;并与Java代码无缝集成和互操作。 …

【C语言习题】6.逆序输出

文章目录 1.描述输入描述&#xff1a;输出描述&#xff1a;示例图&#xff1a; 2.解题思路3.具体代码4.代码讲解 1.描述 输入10个整数&#xff0c;要求按输入时的逆序把这10个数打印出来。逆序输出&#xff0c;就是按照输入相反的顺序打印这10个数。 输入描述&#xff1a; 一…

Docker部署MaxKB详细步骤(window系统)

上面章节已经实现了ollama李现部署llama3&#xff0c;并实现了一些简单的问答&#xff0c;但是问答的界面是在命令提示符中&#xff0c;交互很不友好&#xff0c;也不方便局域网其他用户访问&#xff0c;所以这节用docker部署MaxKB实现网页访问llama3&#xff0c;首先电脑上需要…

【面试必看】MySQL部分

MySQL 1. 基础 1. 什么是关系型数据库&#xff1f; 一种建立在关系模型的基础上的数据库。关系模型表明了数据库中所存储的数据之间的联系&#xff08;一对一、一对多、多对多&#xff09;。各种表中&#xff08;比如用户表&#xff09;&#xff0c;表中的每一行就存放着一条…