数仓备机dn重建:快速修复你的数仓dn单点故障

华为云开发者社区 华为云开发者社区     2022-12-02     613

关键词:

摘要:大规模分布式系统中的故障无法避免。当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级数仓黑科技~

 

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

解密数仓高可用failover流程

...DN故障而中断业务。本文分享自华为云社区《【玩转PB级数仓GaussDB(DWS)】dws高可用之failover流程大解密》,作者:fxy0224。众所周知,PostgreSQL通过WAL预写xlog日志的机制解决了在单机环境上因进程故障退出导致数据丢失的... 查看详情

一文介绍备机重建各种方法的实现机制

摘要:本文将介绍备机重建各种方法的实现机制,并结合应用场景分析,以及对新增参数的使用建议,以期获得最佳应用效果。本文分享自华为云社区《先码再看,一文介绍备机重建各种方法的实现机制》,原文作者:Victor_NK&nb... 查看详情

bucket表:数仓存算分离中cu与dn解绑的关键

...文分享自华为云社区《存算分离之bucket表——【玩转PB级数仓GaussDB(DWS)】》,作者:yd_278301229 。在云原生环境,用户可以自由配置cup型号、内存、磁盘、带宽等资源,需要在计算和IO之间做平衡;如果计算和... 查看详情

bucket表:数仓存算分离中cu与dn解绑的关键

...文分享自华为云社区《存算分离之bucket表——【玩转PB级数仓GaussDB(DWS)】》,作者:yd_278301229 。在云原生环境,用户可以自由配置cup型号、内存、磁盘、带宽等资源,需要在计算和IO之间做平衡;如果计算和... 查看详情

数据膨胀了?你的数仓又没有空间了?(代码片段)

摘要:为了解决数据膨胀,GaussDB(DWS)通过vacuum和FSM来清理和重用物理空间。本文简单介绍FSM的设计和原理,并通过一个例子对FSM功能进行简单的测试和验证。本文分享自华为云社区《数据膨胀了?又没有空间了?一招教你解决》... 查看详情

查询涉及时间维度的数仓数据

】查询涉及时间维度的数仓数据【英文标题】:Queryingadatawarehousedatainvolvingtimedimension【发布时间】:2011-08-1411:26:50【问题描述】:我有两个时间维度表日期(每一天的唯一行)一天中的时间(一天中每一分钟的唯一行)给定这个... 查看详情

你应该知道的数仓安全(代码片段)

...。本文分享自华为云社区《【安全无小事】你应该知道的数仓安全——加密函数》,原文作者:zhangkunhn。前言最近遇到一个客户场景,涉及共享schema的权限问题。场景简单可以描述为:一些用户是数据的生产方,需要在schema中... 查看详情

华为ad9430dn奇葩故障问题排查-无法进入系统(代码片段)

最近公司遇到华为无线AD9430DN控制器奇葩故障问题描述:无线AP没有发射信号,无法进入管理平台web、telnet设备检查:一直出现PressCTRL+TforFullMemoryTestin1Seconds:0Core:1000MHzIO:600MHzDDR:533MHz(1066MhzDDR)************************************************* 查看详情

干货:解码onedata,阿里的数仓之路。

免费开通大数据服务:https://www.aliyun.com/product/odps 据IDC报告,预计到2020年全球数据总量将超过40ZB(相当于4万亿GB),这一数据量是2013年的10倍。正在“爆炸式”增长的数据的潜在巨大价值正在被发掘,它有可能成为商业世界的... 查看详情

hadoop离线day08--数据仓库apachehive(代码片段)

...8--数据仓库、ApacheHive今日内容大纲#1、数据仓库基础知识数仓是什么数据分析的平台面向分析数仓由何而来数仓核心特性数仓和数据库区别解决一个核心的误区:数仓绝不是大型数据库。~~~凉凉OLTPT事务OLAPA分析数仓的分层架... 查看详情

大数据开发工程师需要了解的数仓中的指标体系

目录(1)为什么要构建指标体系(2)如何搭建有效的指标体系(3)指标类型及关系(4)企业常用的指标体系方法论(5)指标体系整体架构(6)企业中指标常见的问题(7)... 查看详情

大数据开发工程师需要了解的数仓中的指标体系

目录(1)为什么要构建指标体系(2)如何搭建有效的指标体系(3)指标类型及关系(4)企业常用的指标体系方法论(5)指标体系整体架构(6)企业中指标常见的问题(7)... 查看详情

大数据开发工程师需要了解的数仓中的指标体系

目录(1)为什么要构建指标体系(2)如何搭建有效的指标体系(3)指标类型及关系(4)企业常用的指标体系方法论(5)指标体系整体架构(6)企业中指标常见的问题(7)... 查看详情

基于dms的数仓智能运维服务,知多少?

摘要:GaussDB(DWS)使用DMS来承载数据库的智能运维体系,提供了数据库运维过程中的监控,分析,处理三大核心处理过程。本文分享自华为云社区《GaussDB(DWS)数据库智能监控运维服务-性能监控指标》,作者:power_gouge。GaussDB(DWS)使... 查看详情

离线数仓之kerberos基本使用及问题记录

离线数仓之Kerberos基本使用及问题记录​​0.写在前面​​​1.Kerberos基本使用​​​0.启动Kerberos相关服务​​​​1.安全模式下启动Hadoop集群​​​2.安装Kerberos客户端访问HDFS页面​​​0.Windows下安装MITKerberosTicketManager​​​​1.... 查看详情

数仓建模规范--非常全

...个文章与书籍,整合而成。对大中小厂均具有参考意义。数仓开发规范 一.数据模型架构原则 1.数仓分层原则优秀可靠的数仓体系,往往需要清晰的数据分层结构,即要保证数据层的稳定又要屏蔽对下游的影响,并且要避... 查看详情

数仓第二篇:数据模型(维度建模)(代码片段)

...2ERWin3.3Visio3.4ExcelMapping04.结语本文导航前言:model对于数仓是最核心的东西,数据模型是数据组织和存储方法,模型的好坏,决定了数仓能支撑企业业务多久。为什么大多数企业,数仓都要重建,这不仅仅... 查看详情

大数据开发工程师需要了解的数仓中的维度设计(代码片段)

目录(1)数仓模型如何分层(2)企业数仓模型分层架构(3)维度设计如何理解(4)维表是怎么生成的(5)维度整合的两种策略(6)维度拆分的最佳方案(7)缓慢变化维的... 查看详情