数据库之数据库恢复技术思维导图+大纲笔记

news/2024/5/6 7:00:48

大纲笔记:

  • 事务的基本概念
    • 事务
      • 定义
        • 用户定义的一个数据库操作系列,这些操作要么全做,要么全不做,是一个不可分割的基本单位
      • 语句
        • BEGIN TRANSACTION
          • 开始
        • COMMIT
          • 提交,提交事务的所有操作
        • ROLLBACK
          • 回滚,撤销事物的所有已完成的操作,回滚到事务的开始状态
    • 事务的ACID特性
      • 原子性
        • A
      • 一致性
        • C
      • 隔离性
        • I
          • 一个事务的内部操作及使用的数据对其他并发事务是隔离的,并发执行的各事务之间不能互相干扰
      • 持续性
        • D
    • 事物的ACID可能遭到破坏的因素
      • 多个事务并行运行时,不同事务的操作交叉执行
      • 事务在运行过程中被强行停止
  • 数据库恢复概述
    • 数据库遭到破坏的原因
      • 计算机系统中硬件的故障
      • 软件的错误
      • 操作员的失误
      • 恶意的破坏
    • 数据库遭到破坏的影响
      • 运行事务非正常中断,影响数据库的正确性
      • 破坏数据库,使数据库中全部或部分数据丢失
    • 数据库的恢复
      • 数据库管理系统必须具有把数据库从错误状态恢复到某一已知的正确状态的功能
  • 故障的种类
    • 事务内部的故障
    • 系统故障
    • 介质故障
    • 计算机病毒
  • 恢复的实现技术
    • 建立冗余数据
      • 数据转储
        • 状态
          • 静态转储
          • 动态转储
        • 方式
          • 增量转储
          • 海量转储
        • 方法
          • 静态增量转储
          • 静态海量转储
          • 动态增量转储
          • 动态海量转储
      • 登记日志文件
        • 日志文件的格式和内容
          • 登记内容
            • 各个事务的开始(BEGIN TRANSACTION)
            • 各个事务的结束(COMMIT或ROLLBACK)标记
            • 各个事务的更新操作
          • 每个日志记录内容
            • 事务标识
            • 操作的类型
            • 操作对象
            • 更新前数据的旧值
            • 更新后数据的新值
        • 日志文件的作用
          • 事务故障恢复和系统故障恢复必须使用日志文件
          • 在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库
          • 在静态转储方式中也可以建立日志文件,当数据库破坏后可重新装入后援副本把数据库恢复到转储结束时刻的正确状态,然后利用日志文件把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤销处理
        • 登记日志文件
          • 原则
            • 登记的次序严格按照并发事务的时间次序
            • 必须先写日志文件,后写数据库
  • 恢复策略
    • 事务故障的恢复
      • 反向扫描日志文件
    • 系统故障的恢复
      • 正向扫描-反向扫描-正向扫描
    • 介质故障的恢复
      • 扫描-正向扫描
  • 具有检查点的恢复技术
    • 检查点记录的内容
      • 建立检查点时刻所有正在执行的事务清单
      • 这些事务最近一个日志记录的地址
    • 动态维护日志文件
      • 方法
        • 周期性执行建立检查点、保存数据库状态的操作
  • 数据库镜像
    • 通过复制数据实现,只对关键数据和日志文件进行镜像,而不是整个数据库

http://www.mrgr.cn/p/76732887

相关文章

什么是敏捷发布规划

敏捷发布规划基于项目路线图和产品发展愿景,提供了高度概括的发布进度时间轴(通常是 3 到 6个月)。同时,敏捷发布规划还确定了发布的迭代或冲刺次数,使产品负责人和团队能够决定需要开发的内容,并基于业务目标、依赖关系和障碍因素确定达到产品放行所需的时间。 对客户而…

李沐57_长短期记忆网络LSTM——自学笔记

LSTM 1.忘记门:将值朝着0减少 2.输入门:决定不是忽略掉输入数据 3.输出门:决定是不是使用隐状态 !pip install --upgrade d2l0.17.5 #d2l需要更新首先加载时光机器数据集。 import torch from torch import nn from d2l import torch a…

GaussDB SQL查询语句执行过程解析

今天我们就从GaussDB SQL引擎入手,了解一下GaussDB SQL 查询语句的执行过程,包括GaussDB SQL引擎原理和关键技术点。本文分享自华为云社区《【GaussTech第2期】GaussDB SQL查询语句执行过程解析》,作者: GaussDB 数据库。SQL于关系型数据库而言,重要性不言而喻。就像一个乐…

P3667 Bovine Genomics Hash+二分题解

P3667 Bovine Genomics Hash+二分题解砂金听说了你在学字符串,于是在CLOI里出了道题给你P3667 Bovine Genomics 题链:洛谷 hzoi提高 \(hash\)基础题。 思路是二分答案,\(check\)中比较每一个区间字串的\(hash\)值是否相等。 比较的时候可以用\(set\)或\(map\)。 \(set\)的好…

使用SSH从公网服务器简易使用内网任意机器服务,比如从外部下载代码

如果有一个台外部的机器waibu-host, 位于阿里云, 腾讯云, 亚马逊, azure云等等; 假设你想从这个waibu-host上访问公司任意服务,下载代码, 访问http服务,等等, 或者你机器上的服务, 不需要额外工具, 只要ssh 反向就可以实现;借个图, 如下: 举个例子, 如果你想从公司内部通过gi…

泰山派RK3566学习记录

一.烧录环境1.rkdeveloptool SPL烧录命令格式 For with SPL: rkdeveloptool db rkxx_loader_vx.xx.bin rkdeveloptool gpt parameter_gpt.txt rkdeveloptool db rkxx_loader_vx.xx.bin rkdeveloptool wl 0x40 idbloader.img rkdeveloptool wl 0x4000 u-boot.itb rkdeveloptool …

倾斜摄影三维模型数据在立面出图应用分析

三维工厂K3DMaker是一款三维模型浏览、分析、轻量化、顶层合并构建、几何校正、格式转换、调色裁切等功能专业处理软件。可以进行三维模型的网格简化、纹理压缩、层级优化等操作,从而实现三维模型轻量化。轻量化压缩比大,模型轻量化效率高,自动化处理能力高;采用多种算法对…

CIO都应该知道的供应商协同平台是这样的!

供应商协同指的是在供应链管理中,企业与其供应商之间建立的一种紧密的合作关系。这种合作关系超越了传统的买卖关系,通过供应商协同平台,实现信息共享、流程对接和共同规划,提升效率。 供应商协同的主要特点包括: 1、信息共享:供应商和企业之间共享关键信息,如库存水平、…

Linux使用Libevent库实现一个网页服务器---C语言程序

Web服务器 这一个库的实现 其他的知识都是这一个专栏里面的文章 实际使用 编译的时候需要有一个libevent库 gcc httpserv.c -o httpserv -levent实际使用的时候需要指定端口以及共享的目录 ./httpserv 80 .这一个函数会吧这一个文件夹下面的所有文件共享出去 实际的效果, 这…

统一SQL 支持Oracle unpivot列转行

统一SQL介绍 https://www.light-pg.com/docs/LTSQL/current/index.html 源和目标 源数据库:Oracle 目标数据库:TDSQL-MySQL 操作目标 在Oracle中,可以使用unpivot将列转换成行,在TDSQL-MySQL中没有对应的功能,由…

开源贡献代码之​探索一下Cython

探索一下Cython 本篇文章将会围绕最近给Apache提的一个feature为背景,展开讲讲Cython遇到的问题,以及尝试自己从0写一个库出来,代码也已经放星球了,感兴趣的同学可以去下载学习。 0.背景 最近在给apache arrow提的一个feature因为…

【深度学习】DDoS-Detection-Challenge aitrans2024 入侵检测,基于机器学习(深度学习)判断网络入侵

当了次教练,做了个比赛的Stage1,https://github.com/AItransCompetition/DDoS-Detection-Challenge,得了100分。 一些记录: 1、提交的flowid不能重复,提交的是非入侵的数量和数据flowid,看check.cpp可知。 2、Stage…

在浏览器输入网址,Enter之后发生了什么?

很多八股文会给出:DNS Resolution Establishing a Connection Sending an Http Request Receiving the HTTP Response Rendering the Web Page但今天我斗胆插入第0.9步URL Parsing, URL( uniform resource locator)由四部分组成: scheme、domain、path、resourceURL Parsing…

政企单位内外网数据交互,如何保障安全性和合规性?

政府内外网隔离是一种网络安全措施,旨在保护政府内部网络的安全性和保密性。根据国家法律要求,涉及国家秘密的计算机信息系统与公共网络之间必须实行物理隔离。这意味着这些系统应该被完全隔离开来,以防止任何未经授权的访问或数据泄露。其次,为了加强网络安全和防止潜在的…

LLM学习(四)——构建 RAG 应用

4.1 接入Langchain 首先我们导入所有需要的库文件 import google.generativeai as genai import os from langchain_google_genai import ChatGoogleGenerativeAI from langchain_google_genai import GoogleGenerativeAIEmbeddings from langchain.prompts import PromptTempl…

【笔记】应对Chrome更新导致Chromedriver失效的解决方案:Chrome For Test

随着网络应用和网站的不断发展,自动化测试变得越来越重要,而Selenium成为了许多开发者和测试人员的首选工具之一。然而,对于使用Selenium来进行网站测试的人来说,Chrome浏览器的频繁更新可能会成为一个头疼的问题。每当Chrome更新…

抢先看!美团、京东、360等大厂面试题解析,技术面试必备。

技术面试必备!美团、京东、360等大厂面试题详解,让你轻松应对各大公司面试挑战!技术面试必备!美团、京东、360等大厂面试题详解,让你轻松应对各大公司面试挑战!往期硬核面经 哦耶!冲进腾讯了! 牛逼!上岸腾讯互娱和腾讯TEG! 腾讯的面试,强度拉满! 前几篇文章分享了上…

「锐利」升级到13.5版本,重磅推出插拼式智能拼版等多项新功能!

国产印前处理软件「锐利」的又一次重磅升级!包装印前软件「锐利」又升级了!13.5版本! 锐利是集印前行业三十多年的技术和经验开发的一款包装印前处理软件,提供陷印、拼大版、预览、智能标记、预飞、工具箱、导出图像、搜索器、油墨编辑、曲线调整、模拟套印不准、导入标准P…

(mac)Promethues监控之mysqld_exporter(MySQL监控)

搭建Mysqld_exporterPrometheusGrafana监控系统 普罗米修斯是后端数据监控平台,通过Mysqld_exporter收集mysql数据,Grafana将数据用图形的方式展示出来 前提:已安装grafana和promethues 1.下载安装Mysql (1)启动MySQL…

条款46:需要类型转换时请为模板定义非成员函数

**常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。 昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。