数据库异常数据恢复(1)-快速恢复和镜像恢复

(一) 数据库服务器的崩溃和恢复

1. 服务器的修复机制

数据库因为某些原因导致数据库突然异常donw机,为了保证数据库的使用,提供了一些机制进行数据库的恢复

  • 快速恢复:数据库异常down机后重启数据库自己的恢复方式,人工无法干预
  • 备份文件恢复:手动进行恢复的方式
  • 磁盘镜像和数据复制:都是一种灾备方式,从一定程度上可以机器自主反应保证应用的运行
    • 镜像:两个chunk,一个为主chunk,一个为镜像chunk,主chunk出现问题,会启用镜像chunk,在一定程度上可保证应用的运行
    • 数据复制:集群灾备

2. 数据库服务武器崩溃的类型和修复方式

  • 系统崩溃:因为电源或其他原因导致机器donw机,重启计算机后,数据库会通过快速恢复的机制,自动恢复
  • 磁盘崩溃:当包含数据库服务器的磁盘因为某些原因不能使用,针对这种,由于数据存放在磁盘中,只能通过备份文件恢复的方式进行恢复
  • 机器失败:如果是整个系统失败了,数据复制(HDR或RSS)提供的第二个数据库实例可以马上作为备份系统使用

(二) 数据库异常down机的表现方式和快速恢复

1. 数据库正常关闭和异常崩溃的差异

  • 正常关闭
    • 数据库正常关闭的情况下,最后一次操作是checkpoint
    • checkpoint之后物理日志会被清空
    • 逻辑日志最后一条是checkpoint
    • 消息日志包含了关闭数据库的时间
  • 异常崩溃
    • 异常关闭的数据库没有执行checkpoint
    • 物理日志没有情况
    • 逻辑日志最后一条不是checkpoint
    • 消息日志没有关闭数据库时间
    • 且数据库异常崩溃,可能会有断裂块的情况产生

2. 快速恢复概述

  • 快速恢复是数据库的一种特性,不能被认为干预,不能被关闭
  • 快速恢复只适合系统方面的异常崩溃,磁盘不可用的情况无法使用异常崩溃恢复
  • 快速恢复的目标有三个
    • 物理日志恢复:恢复到最近的检查点时间,达到物理日志恢复
    • 逻辑日志恢复:通过逻辑日志恢复到最近的逻辑一致状态
    • 事务回滚:回滚崩溃时没有完成的事务

3. 快速恢复的步骤

  • 物理日志恢复:
    • 由于异常关闭没有清空物理日志,所以将物理日志的内容读取到缓冲池内,清页线索会将内容刷新到磁盘中,刷到磁盘是为了避免出现异常down机前数据更新后脏块刷入了磁盘,但是物理日志未刷新的情况。刷新磁盘可以将磁盘的数据恢复到最后一个检查点时的状态
    • 如果物理日志中没有数据,则表示第一步已经完成
  • 逻辑日志前滚恢复到最近的逻辑性一致状态
    • 找到逻辑日志的最后一个checkpoint
    • 前滚最后一个checkpoint之后的所有操作记录
  • 回滚没有递交的事务或者系统失败时没有完成的事务
    • 回滚在逻辑日志中没有commit和rollback work配对的事务
    • 这样保证数据库内不会留下那些失败没有完成的事务

4. 快速恢复对记录日志开启缓冲和不记录日志两种数据库的差异

  • 数据库开启了日志缓冲:由于数据库开启了缓冲,可能出现日志没有刷新到逻辑日志文件中,但是还存在日志缓冲区的情况
    • 这种情况下:还在逻辑日志缓冲区的事务将丢失
    • 针对开启了日志缓冲的数据库,快速恢复无法保证完全恢复
  • 不记录日志的数据库:不会将数据库的操作记录保存记录到逻辑日志中
    • 其最后一次检查点之后的所有事务和操作都丢失

5. 快速恢复后消息日志中的记录

  • 第一步恢复之后记录Physical Recovery Complete的信息
  • 第二步恢复之后记录Logical Recovery Complete的信息
  • 还会记录提交了多少事务、回滚的事务、仍然打开的锁的当前数量
  • onlog可以详细分析

(三) 镜像崩溃和恢复

1. 镜像情况下主primary chunk和镜像Mchunk的状态


[gbasedbt@iZ2ze2nmdlhki0ezcrioayZ node4_dbs]$ onstat -d
Your evaluation license will expire on 2025-03-15 00:00:00
On-Line -- Up 00:02:01 -- 676080 KbytesDbspaces
address          number   flags      fchunk   nchunks  pgsize   flags    owner    name
472a8028         1        0x70002    1        1        2048     M  BA    gbasedbt rootdbs
4a899888         2        0x60001    2        1        2048     N  BA    gbasedbt llogdbs
4a899ab8         3        0x70001    3        1        2048     N  BA    gbasedbt plogdbs
4a899ce8         4        0x68001    4        1        2048     N SBA    gbasedbt sbspace1
4a9b7028         5        0x42001    5        1        16384    N TBA    gbasedbt tmpdbs1
4a9b7258         6        0x60001    6        1        16384    N  BA    gbasedbt datadbs1
4add9028         7        0x60002    7        1        16384    M  BA    gbasedbt db1dbs7 active, 2047 maximumChunks
address          chunk/dbs     offset     size       free       bpages     flags pathname
472a8258         1      1      0          102400     86165                 PO-B-D /home/gbasedbt/gbase/node4_dbs/rootdbs
472a9028         1      1      0          102400     0                     MD-B-- /home/gbasedbt/gbase/node4_dbs/rootdbs_mirror
4a9b7488         2      2      0          51200      1147                  PO-B-D /home/gbasedbt/gbase/node4_dbs/llogdbs
4a9b9028         3      3      0          51200      1447                  PO-B-D /home/gbasedbt/gbase/node4_dbs/plogdbs
4a9ba028         4      4      0          51200      47678      47678      POSB-D /home/gbasedbt/gbase/node4_dbs/sbspace1Metadata 3469       2581       3469
4a9bb028         5      5      0          6400       6347                  PO-B-- /home/gbasedbt/gbase/node4_dbs/tmpdbs1
4a9bc028         6      6      0          64000      63413                 PO-BED /home/gbasedbt/gbase/node4_dbs/datadbs1_1
4add9258         7      7      0          6250       6197                  PO-B-D /home/gbasedbt/gbase/node4_dbs/db1
4ab5c028         7      7      75000      6250       0                     MO-B-D /home/gbasedbt/gbase/node4_dbs/db1_mirror7 active, 32766 maximumNOTE: The values in the "size" and "free" columns for DBspace chunks aredisplayed in terms of "pgsize" of the DBspace to which they belong.Expanded chunk capacity mode: always
  • 镜像功能需要在数据库初始化时进行配置
  • 从上可以看出带有镜像功能的onstat -d和不带有镜像功能的onstat -d在flags列有着很大的差异
  • flags参数含义
    • primary主chunk
      • PO(Primary/Online):在线
      • PD(Primary/Down):down机
      • PR(Primary/Recovery):正在从镜像恢复
      • PI(Primary/Inconsistent):已经从镜像chunk恢复,但是没有逻辑恢复
    • 镜像chunk:
      • MO:在线
      • MD:donw机状态
      • MR:正在恢复

2. 带有镜像的chunk异常的后果

  • 如果primary chunk和镜像Mchunk都遇到了IO错误,或者primarychunk遇到了IO错误但是没有使用镜像,会显示离线
  • 如果离线的数据库是关键数据库,则数据库重启会失败
  • 如果离线的数据空间时非关键数据空间,启动会成功但是需要修复离线的chunk空间
  • 离线的chunk不会自动恢复,需要人工介入

3. 关于镜像chunk出现io错误时的相关参数ONDBSPACEDOWN

  • ONDBSPACEDOWN
    • 0:设备:标记为离线然后继续运行
    • 1:关闭数据库
    • 2:挂起所有的更新操作,直到下次检查点
  • 如果IO出现错误的chunk是关键chunk,只能进行关闭
  • 如果设置为2,服务器会继续检查产产生IO错误的chunk,如果在下次checkpoint时问题已经纠正,则不需要干预,数据库处理会恢复;如果没有恢复,则所有的线索都会挂起

4. chunk出现IO错误的一般处理方式

  • 修复chunk设备,关闭数据库并重启,数据库启动成功,chunk会变成在线状态
  • 把chunk标记为离线,挂起的线索会继续运行,可以通过onmode -o实现
    • onmode -o不能在磁盘设备不能恢复时使用,当替换了新磁盘,需要dbspace的热恢复

5. 镜像chunk恢复失败的chunk的命令

  • 针对出现问题的chunk使用镜像恢复如下
    • 实际上是把其中一个chunk的信息恢复到另一个chunk中
onspaces -s 失效的dbs -p 失效的chunk路径 -o 0 -O
  • 当恢复的dbs是blobdbs时,恢复是瞬间的
  • 当针对已经存在的dbspace增加镜像时,时间取决于dbspace的大小

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

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

相关文章

现代谱估计分析信号的功率谱(1)---AR 模型谱估计

本篇文章是博主在通信等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对通信等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在通信领域笔记:…

Spring相关面试题(一)

Spring 1.谈谈你对Spring的理解 难度系数 Spring 是一个开源框架,为简化企业级应用开发而生。Spring 可以是使简单的JavaBean 实现以前只有EJB 才能实现的功能。Spring 是一个 IOC 和 AOP 容器框架。 Spring 容器的主要核心是: 控制反转(…

进阶篇06——锁

概述 全局锁 表级锁 表锁 元数据锁 元数据锁是系统自动加的,不需要我们手动执行命令添加。 意向锁 意向锁和元数据锁一样,也是在加行锁的时候自动给表加上相应的意向锁,不需要我们手动添加。 行级锁 行锁 读锁和读锁兼容,写锁…

易舟云财务软件:开启云记账新时代

在数字化浪潮的推动下,财务管理正经历着深刻的变革。易舟云财务软件,作为一款引领时代的云记账平台,以其卓越的功能和便捷的操作,为企业带来了全新的财务管理体验。 云记账,财务管理的未来趋势 云记账,即基…

免费试用【汇通动态域名】体验test.htdns.cn

汇通动态域名下载地址: http://www.htsoft.com.cn/htsoft/htdnssoft.html 下载后汇通动态域名是绿色软件,不用安装,直接运行htdns.exe 点注册 二级域名地方改成您自己要的域名,我输入的是test,点保存,提示让您输入密…

2024年618成交额达7428亿 淘宝京东618交易额数据对比排名

2024年618年中大促已经基本落下帷幕,作为上半年最重要的电商节日,今年的618交易额有多少?今年的交易数据有哪些变化?我们来一起看一下! 根据星图监测数据显示,2024年618期间(天猫5月20日20: 00-…

Python 中的 Pandas(数据分析与处理)

Pandas 是 Python 中最受欢迎的数据处理库之一,其名字源自于“Panel Data”(面板数据)的缩写。它提供了三种主要的数据结构:Series , DataFrame , Panel(在新版本已经被弃用) 数…

海外盲盒APP开发,盲盒出海热!

当下,盲盒作为一种热门的娱乐休闲模式,在全球消费市场中都非常火热,各种热门盲盒商品刚一上线就受到了秒杀,受到了各地年轻消费者的追捧! 盲盒全球化对于我国盲盒企业来说是一个新的机会,有助于我国盲盒快…

华为云下Ubuntu20.04中Docker的部署

我想用Docker拉取splash,Docker目前已经无法使用(镜像都在国外)。这导致了 docker pull 命令的失败,原因是timeout。所以我们有必要将docker的源设置在国内,直接用国内的镜像。 1.在华为云下的Ubuntu20.04因为源的原因…

uniapp+unocss报错Error [ERR_REQUIRE_ESM]: require() of ES Module

uniappvue3使用unocss报错 vite.config.ts代码: import { defineConfig } from "vite"; import uni from "dcloudio/vite-plugin-uni"; import AutoImport from "unplugin-auto-import/vite"; import Unocss from unocss/vite;expo…

Python 基础:文件

目录 一、从文件中读取数据1.1 读取整个文件1.2 逐行读取 二、写入文件2.1 写入空文件2.2 写入多行2.3 附加到文件 遇到看不明白的地方,欢迎在评论中留言呐,一起讨论,一起进步! 本文参考:《Python编程:从入…

java-Object 底层实现

### 4. Object类的底层实现 #### 4.1 内存布局 在Java虚拟机中,每个对象都有一个头部(Header),包含对象的元数据和同步信息。对象头部包括两个主要部分: - **Mark Word**:用于存储对象的哈希码、GC年龄、…

[modern c++] 类型萃取 type_traits

前言&#xff1a; #include <type_traits> type_traits 又叫类型萃取&#xff0c;是一个在编译阶段用于进行 类型判断/类型变更 的库&#xff0c;在c11中引入。因为其工作阶段是在编译阶段&#xff0c;因此被大量应用在模板编程中&#xff0c;同时也可以结合 constexpr…

如何理解shell命令 cd $(dirname $0)

理解命令 cd $(dirname $0) 需要逐步拆解和分析每个部分的功能&#xff1a; $0&#xff1a; 在shell脚本中&#xff0c;$0 代表脚本的名称。这个变量包含了脚本的完整路径或相对路径。 dirname $0&#xff1a; dirname 是一个命令&#xff0c;用于去掉路径中的文件名部分&…

【CT】LeetCode手撕—141. 环形链表

目录 题目1- 思路2- 实现⭐141. 环形链表——题解思路 3- ACM实现 题目 原题连接&#xff1a;141. 环形链表 1- 思路 模式识别 模式1&#xff1a;判断链表的环 ——> 快慢指针 思路 快指针 ——> 走两步慢指针 ——> 走一步判断环&#xff1a;若快慢相遇则有环&a…

大模型推理优化技术概述

大模型推理优化技术概述 KVcache一句话总结&#xff1a;KV cache背景KV cache 计算过程PageAttention概述背景&#xff1a; MHD、MQA、GQA注意力机制MHAMQAGQA Flash Attention KVcache一句话总结&#xff1a; KV cache其实就是通过空间换取时间的方式&#xff0c;通过缓存Atte…

QTday5 2024-06-19

作业要求&#xff1a; 1.思维导图 2.整理代码&#xff1a;TCP服务器 作业1&#xff1a;思维导图 作业2&#xff1a;整理代码 运行代码&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> #include <QList>…

信息安全技术基础知识-经典题目

【第1题】 1.在信息安全领域&#xff0c;基本的安全性原则包括机密性(Confidentiality)、完整性(Integrity)和 可用性(Availability)。机密性指保护信息在使用、传输和存储时 (1) 。信息加密是保证系统机密性的常用手段。使用哈希校验是保证数据完整性的常用方法。可用性指保证…

边学边赛拿冠军!北邮学子勇夺昇腾AI原生创新算子挑战赛金奖

导读 如何从零开始学习算子开发&#xff1f;昇腾AI原生创新算子挑战赛冠军“法宝”大揭秘。 “0xCCCCCCCC团队夺冠&#xff01;” 2024年5月9日&#xff0c;在首届昇腾AI原生创新算子挑战赛S1赛季决赛现场&#xff0c;来自北京邮电大学0xCCCCCCCC团队的孙明志和梁昊骞以总分第…

金蝶BI方案与奥威BI:智能、高效的数据分析组合

在当今数据驱动的时代&#xff0c;企业对于快速、准确、全面的数据分析需求日益增长。金蝶BI方案和奥威BI SaaS平台正是为满足这一需求而精心打造的智能数据分析工具。 方案见效快 金蝶BI方案以其高效的数据处理能力&#xff0c;能够快速地将海量数据转化为有价值的信息。通过…