摘要:大规模分布式系统中的故障无法避免。当DN发生单点故障时,恢复手段有哪些,又是如何恢复的,本节重点介绍操作gs_ctl build是如何修复DN单点故障的。

本文分享自华为云社区《华为云数仓备机DN重建,快速修复DN单点故障!》,原文作者:welblupen。

1. 技术背景

GaussDB(DWS)的DN高可用架构为主、备、从备架构。即在分布式环境中,完整的集群数据采用分片技术分布在多个DN组上,每组DN承担一个数据分片,包括:一个主DN、一个备DN和一个从备DN。主和备各有一份完整的数据,从备上一般不存储数据,仅在备机故障时做数据的暂存,当备机故障恢复之后,为了保持集群数据的一致性,需要备机连接主机进行数据和xlog日志的拷贝。

2. 备机DN需要进行重建的场景

2.1. 主机发生单点故障之后,备机进行failover升主,原主降备,集群降级;待原主故障恢复后,可能会导致主备机WAL日志CRC校验失败,CM系统检测到该状态后会自动通过备机重建的方式进行自动备机重建。

2.2. 备机发生单点故障之后,备机状态变为unknown,集群降级,待备机故障恢复之后,需需要进行备机重建操作同主机同步数据。

3. 备机DN重建的操作分类

3.1. 增量重建: gs_ctl build -b incremental -Z datanode

用途:

增量build可修复常见的主机或实例故障导致的备机日志分叉问题,也可修复部分数据文件丢失的问题,在重建过程中发生主机异常,可以手动回退有损恢复。

过程:

  • 获取差异文件:通过解析Xlog日志获取主备DN差异文件
  • 备份与恢复:对主备差异文件进行严格进行原子化恢复和备份,过程中出错可恢复,排除错误后,可再次调用重入
  • 传输文件:由备机创建指定(1-16)个线程从主机拉取差异文件
  • 完成增量重建等待xlog日志落盘

分析:

增量重建是,根据Xlog日志计算主备DN差异文件,将文件发送给备DN,在备机数据没有损坏的情况下快速进行增量重建,代价较小。

3.2. 全量重建: gs_ctl build -b full -Z datanode

用途:

备机全量重建能够修复绝大多数数据和日志损坏或丢失的场景,但修复时间比增量build更长

过程:

  • 获取差异文件:使用依据硬件调优的CRC-32C系列算法获取主DN上相应文件的CRC校验值,同时本地也进行对应操作,二者比较获得差异文件列表
  • 备份与恢复:默认无原子化,但会尝试进行原子化恢复,忽略恢复结果成败
  • 传输文件:由备机创建指定(1-16)个线程从主机拉取差异文件
  • 完成增量重建等待xlog日志落盘

分析:

全量重建是一种以主DN文件为基准,备DN文件同其进行校验,如果备DN文件的某个文件块校验不一致,则主机将此文件块发给备DN。与全量清理重建相比较,拷贝的数据量和WAL日志量都更少,代价中等。

3.3. 全量清理重建: gs_ctl build -b fullcleanup -Z datanode

用途:

与full模式区别为:同步前需要清理DN主机的数据目录。能够修复绝大多数数据和日志损坏或丢失的场景,但修复时间比其他模式更长

过程:

  • 清理备机数据文件:备机清空数据目录,保留配置文件
  • 主机向备机传输全量镜像:主机使用单个线程将自己的数据目录除了配置文件外,全部发给备机
  • 完成全量重建等待xlog日志落盘

分析:

全量清理重建是备机清空数据目录,保留配置文件,向主机发送全量重建请求,主机将自己的数据目录除了配置文件外,全部发给备机,重建后启动备机,代价较大。

4. 总结

备机DN重建功能主要目的是单点故障修复,备机重建方式按照实现分为全量重建,全量清理重建和增量重建,均和主DN进行交互。当DN出现单点故障时,操作人员应该根据实际损坏程度和资源消耗选择合适的重建方法进行备机的数据重建。

想了解GuassDB(DWS)更多信息,欢迎微信搜索“GaussDB DWS”关注微信公众号,和您分享最新最全的PB级数仓黑科技~

点击关注,第一时间了解华为云新鲜技术~

数仓备机DN重建:快速修复你的数仓DN单点故障相关推荐

  1. 数易云备开启虚拟机备份新时代

    摘要:随着云服务的发展,各大公司.企业机构都开始通过削减物理机的数量来达到降低成本.减少能耗和空间的目的.据Gartner调查显示,到2014年,72%的服务器工作负荷已实现虚拟化,近1/3的企业具有 ...

  2. Microsoft Word文档损坏,如何快速修复?一招解决文档修复

    遇见过☞文件无法打开,或☞文件打开乱码等情况的伙伴们看过来,从事数据恢复行业20余年的"技术宅"效哥,直接给大家上权威恢复方法啦~ 方法一:通过手动重建文件头,修复损坏的Micro ...

  3. 【TDSQL】更换DB节点硬盘后快速修复实例方法

    [情况描述] TDSQL的DB节点硬盘发生故障后,如果是数据盘故障,部署在该数据盘的实例无法正常使用:如果是管控盘故障,会造成该DB节点全部实例无法正常使用.按正常处置方式,是新增一台DB节点,替换这 ...

  4. HD Tune结合硬盘再生器HDDREG快速修复硬盘错误

    最近用HD Tune检查硬盘状态,结果显示(C5) 当前待映射扇区数显示黄色的警告状态 赶紧对硬盘做了备份,果然出现了某几个文件损坏读取失败的情况. 网上查了资料,发现HDDREG可以修复硬盘,但实际 ...

  5. PostgreSQL数据库WAL——备机回放checkpoint WAL

    从PostgreSQL数据库WAL--资源管理器RMGR文章中,我们知道XLog日志被划分为多个类型的资源管理器,每个资源管理器只需要负责与自己相关的日志处理(抽象出操作函数,不同的日志实现不同的操作 ...

  6. 北京大学再次选择AnyBackup,印证爱数灾备云高校数据保护实力

    2015年,爱数AnyBackup为北京大学计算中心200多台虚拟机,约10TB数据提供了保护.今年,北京大学采购了两套AnyBackup,将为其提供进一步的数据保护,保障近800台虚拟机,约100T ...

  7. lenovoquickfix关闭不了_联想快速修复工具

    联想快速修复工具集是联想官方针对旗下电脑用户推出的一款win10系统优化工具,用户通过工具集里的软件只需轻轻点击几下鼠标就能实现对自己电脑的优化设置与修复,省去了繁琐复杂的设置步骤,小白都能操作,兼容 ...

  8. 如何快速构建企业级数据湖仓?

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 本文整理自火山引擎开发者社区技术大讲堂第四期演讲,主要介绍了数据湖仓开源趋势.火山引擎 EMR 的架构及特点,以及 ...

  9. Mysql备机复制到主机_mysql主从复制的实现

    唱宇 2010-10-13 北京 最近测试了mysql主从复制的实现,现在记录一下:因为网上有些文章的mysql版本较老,有些参数已经不适合了. 确保 Master 与 Slave 之间的数据一致 [ ...

最新文章

  1. html 简单机器人对话页面,简单的js聊天机器人框架BotUI
  2. CENTOS7 高性能Linux集群 通过yum进行 haproxy配置 !安装 !使用!HAProxy配置文件详解
  3. VMware 主机基板管理控制器的状态
  4. 【运营】产品经理必须了解的运营方法,让你的产品有产有销
  5. 04 | 深入浅出索引(上)
  6. equals()和==
  7. UPC2018组队训练赛第六场
  8. 零基础Python学习路线图,Python学习不容错过
  9. Flink 生成数据源
  10. css3 Gradient 背景渐变
  11. 网页中自私自利且影响他人的Float
  12. MFC窗口最小化到托盘
  13. table隔行变色与table单元格根据条件更改字体颜色
  14. MaxDEA如何计算DEA-Malmquist指数
  15. 【2014】手机卡关于怎么剪 让我告诉你
  16. 智能网联时代汽车智能座舱操作系统的发展
  17. 病毒+蠕虫+bot+rootkit
  18. postman更换皮肤
  19. spinner requestlayout() improperly called by during layout running second layout pass
  20. Android 9.0 10蓝牙音乐获取歌手、歌曲等信息

热门文章

  1. Git笔记(7) 撤消操作
  2. JAVA中的适配器应用_Java适配器模式详解和实际应用.md
  3. matlab与c 接口与混合编程,Matlab与C/C++混合编程接口及应用方法解析
  4. ajax五种回调函数,Ajax的回调函数
  5. . mybatis指定配置文件的根元素_MyBatis框架
  6. ubuntu emacs的安装
  7. 团队作业4——第一次项目冲刺(Alpha版本)第三天
  8. ELK学习总结(2-5)elk的版本控制
  9. SQL Server中关于跟踪(Trace)那点事(转载)
  10. Java Web-网页基础-HTML-选择器Selector-DOM