• [其他] GaussDB(DWS)单节点长时间故障应急
    前言:单节点长时间故障造成对应主机与备机压力增大,容易造成集群只读,该场景下如何进行应急?1、连接主机删除主备复制槽:1)查看备机故障情况下主备复制槽active为f:select * from pg_get_replication_slots();2)删除主备复制槽,并确认是否删除成功,备机恢复正常后会自动创建该复制槽:2、从备所在磁盘接近只读边缘时需要找空闲磁盘将从备xlog与base/dummy_standby下面数据移动到空闲磁盘防止集群只读。操作时需要华为工程师在场3、待备机磁盘或主机故障修复后对备机进行全量build修复。
  • [技术干货] 先码再看,一文介绍备机重建各种方法的实现机制
    【摘要】 GaussDB(DWS)的实例在运行过程中难免发生故障,引起实例错误或无法启动,此时就需要进行备机重建工作。备机重建功能主要目的是修复实例单点故障,此外,还可用于集群安装的初始化、集群扩容的元数据同步、节点故障后的温备替换等等场景。本文将介绍备机重建各种方法的实现机制,并结合应用场景分析,以及对新增参数的使用建议,以期获得最佳应用效果。1    需求介绍    GaussDB(DWS)的实例在运行过程中难免发生故障,引起实例错误或无法启动,此时就需要进行备机重建工作。备机重建功能主要目的是修复实例单点故障,此外,还可用于集群安装的初始化、集群扩容的元数据同步、节点故障后的温备替换等等场景。本文将介绍备机重建各种方法的实现机制,并结合应用场景分析,以及对新增参数的使用建议,以期获得最佳应用效果。2    设计方案2.1 功能分类    备机重建按照实现方式不同分为:全量重建和增量重建。    备机重建需要在待修复主机上运行gs_ctl build工具。在备机重建过程中,均需要和主DN建立连接进行数据的交互访问。在gs_ctl工具的命令行参数中通过–b=mode参数,可以指定重建DN备机的模式。目前mode支持的取值包括以下四种:    full:全量重建,通过获取主备之间全量镜像差异的方式重新同步DN主机的数据目录。    fullcleanup:全量重建,通过全量镜像的方式重新同步DN主机的数据目录。与full模式区别为:同步前需要清理DN备机的数据目录,保留配置文件。主机将自己的数据目录除了配置文件外,全部发给备机。    incremental:增量重建,通过解析WAL日志获取主备DN差异的数据进行增量修复备DN。    auto(不指定-b):先增量重建,增量重建失败后进行全量重建。    实际生产环境中,具体使用哪种方式,就需要看需求与应用场景所定。2.2 应用场景    备机重建按照功能场景不同分为:DN Build DN、CN build CN、CN Build DN。各Build的应用场景的特点如下:编号场景使用方式特点分析可选模式1安装DN build DN 初始化数据总量小。 无性能和备份需求;有约束,无GTM支撑,直接拉起DN进行Build。fullfullcleanup 2扩容CN build CNCN build DNDN build DN 主机上元数据小文件总量多。备机从无到有,无历史数据。无备份需求;有小文件性能需求;有约束,CN支持一对多的Build,扩容过程中锁集群。fullfullcleanup 3温备替换DN build DN 数据总量比较多。备机从无到有。无备份需求有性能需求有约束,温备过程中锁集群fullfullcleanup 4修复DN build DN 通常,备机上有相当多的数据文件,而且在备机损坏较短时间内,主备之间存在相当多的相同文件。有备份需求有性能需求incrementalfullfullcleanup  表1 Build的应用场景     选择何种修复方式最优,需要理解该模式的工作原理,并根据应用场景合理地设置相关参数。3    实现过程3.1 fullcleanup mode:基于推送方式    fullcleanup mode是一种推送模式,在该模式下,由主机来控制数据流程(我给啥你接啥),在不关心备机损坏程度和范围的情况下,需要主机将自己的数据目录配置文件外的全部数据传送给备机,重建后启动备机。    其主要工作过程如图1所示:图1 fullcleanup build工作过程    fullcleanup mode build的特点很明显,备机将得到彻底重建。但缺点也很明显:主机需要Copy实例上全部的数据和XLOG日志文件,占用较高的网络传输带宽,对运行中的业务有一定影响。备机没有对修复前数据进行原子化管理,过程中一旦失败将无法恢复到原备机。如果全量Build过程中由于偶发网络等原因故障失败,将前功尽弃,再次Build数据需要从头再来。    所以该方式是最保守的最后选项,是在其它重建方式均无效的时候的一种选择。3.2 full mode:基于文件校验获取差异的拉取方式    full mode是一种拉取模式,在该模式下,由备机来控制数据流程(我需要啥拿啥),仅需要补齐主备之间的差异数据。但前提是备机需要知晓自己与主机差异。full mode是直接从文件比较进行切入,主、备机可以同时多线程(并行、并发,提升性能)在各自本地上对数据目录文件进行遍历,获知文件有无、大小、文件校验计算等信息;通过这些信息,不断对计算结果File Map List进行合并筛选,获得最小的差异文件集合,减少数据/文件的拷贝数量。备机既可以仅备份备机的差异文件作为备份集(满足可靠性),又可以仅拉取主机的差异文件来更新(提升性能);备机可以采用多线程(并发,提升性能)同时从主机拉取文件。    其主要工作过程如图2所示:图2 full build工作过程     full mode build的特点是充分利用备机已有的文件,减少数据同步的数量,可以方便地进行备份和恢复、和并行控制。但需要花费一定时间的本地IO和计算为代价。与fullcleanup mode相比较在无资源瓶颈条件下通常速度更快(可获得数倍的提升),可靠性上更安全,是全量build的首选。3.3 incremental mode:基于Xlog分析获取差异的拉取方式    incremental mode是另外一种拉取方式。适用于主备双主等因日志造成的不一致场景。增量重建是一种以主DN文件和备DN的WAL日志为基准,按照多退少补的原则对备DN文件和文件块进行修复。与全量重建相比较,拷贝的粒度、数据量和WAL日志量都更少,代价更小。    其主要工作过程如图3所示:图3 incremental build工作过程     incremental mode build只适用于主备双主等因日志造成的不一致场景。备机数据文件损坏、数据目录丢失等故障通过增量重建的方式无法修复,此时可通过全量重建的方式重新修复备机。4    思考总结    随着备机重建功能的性能提升和可靠性的增强,build新增了部分参数,在使用时候值得了解和注意。4.1 -T THREAD-NUMBER    适用于拉取方式的full和incremental模式。其功能是在备机侧指定与主机连接个数,用于多线程并发进行计算和与文件拉取。    通常情况下默认值为4已可获得较好的性能,在资源允许的情况下,建议使用更高的线程数。但需注意的是增大线程数目可以提升Build的性能,缩短其重建时间,但相应的也增加了网络连接、CPU、和网络IO的消耗,在使用时候需要考虑资源状况,合适设置。4.2 -u    适用于支持原子化功能的full和incremental模式。其功能是Build过程中将不进行原子化恢复和备份,适合于空间不足或无需备份的需要场景中。    Incremental build默认是原子化,过程中严格进行原子化恢复和备份,过程中出错可恢复,排除错误后,可再次调用重入。由于Full Build的涉及的数据文件量大,默认无原子化,但会尝试进行原子化恢复,忽略恢复结果成败,仅在备机拉取主机上的文件占其总量20%内进行备份。在使用时最好明确指出需要或者不需要原子化功能。4.3 -B --backupdir=DIR    适用于支持原子化功能的full和incremental模式。其功能是Build过程中将从指定的路径下进行备份集的恢复和备份。适合于强高可靠需求场景,在Build成功之前可保持备份的原子化,避免原始备份丢失。    需要注意的是,用户指定备份集路径的磁盘剩余空间应大于DN实例数据目录大小。且备份路径下保持空白或者是本节点的数据集,无关数据将会造成备份集失效,重新生成的备份集会让原始数据副本有丢失的风险。除pg_rewind_bak路径外,用户指定备份集路径的应与备机实例工作路径隔离。    想了解GuassDB(DWS)更多信息,欢迎微信搜索“GaussDB DWS”关注微信公众号,和您分享最新最全的PB级数仓黑科技~转载来自:https://bbs.huaweicloud.com/blogs/251510
  • [新手课堂] 微认证之路 鲲鹏云服务搭建BCManager存储灾备系统
    ### 名称及链接 [鲲鹏云服务搭建BCManager存储灾备系统](https://edu.huaweicloud.com/certifications/b492df772f674dd3962ed6c802c7f636)   ### 课程章节 1. 灾备的概念与作用 2. 灾备的原理与应用 3. 华为灾备方案BCManager介绍 4. 华为云搭建BCManager环境 5. BCManager灾备实验   ### 证书 ![wrz-kp-zj-bcmanager.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202105/17/194132ep65lk8m8f0jve5t.png)   ### 笔记 1. 广义的存储定义 1. 存储硬件系统 2. 存储软件 3. 存储网络 4. 存储解决方案 2. 容灾 与 备份 1. 容灾:灾难发生后恢复业务可用保证数据安全,表征了对灾难的容忍程度 2. 备份:对系统或数据创建副本,用于业务与数据恢复 3. 灾备系统的关键指标 1. RPO,数据恢复时间点:故障发生后,丢失的数据量或容忍丢失的数据量 2. RTO,应用恢复时间:故障发生后,业务恢复可用所需要的时间 4. 灾备方案 1. 本地保护 2. 主备容灾 3. 双活数据中心 4. 两地三中心 5. 灾备原理 1. 快照技术 2. LUN克隆技术 3. 数据双写与数据变更日志 4. 存储复制 6. 华为灾备软件OceanStor BCManager 7. BCManager相关概念 1. 生产站点和灾备站点 2. 主机和主机组 3. 保护组(保护对象和保护策略) 8. 实验资源 1. EIP、VPC、ECS、BCManager、estor存储 9. 磁盘阵列 diskarray 10. 华为云服务 1. 网络(VPC、EIP、安全组及规则) 2. 鲲鹏计算(基于ARM和RISC)(ECS) 3. 对象存储OBS服务 11. 操作系统 1. Windows server 2. Suse 3. EulerOS 12. 常见缩写 1. VPC、ECS、EIP、OBS、iSCSI、SAN、IQN、LUN、SSH、SFTP、IP-SAN   ### 备注 1. 感谢老师的教学与课件 2. 欢迎各位同学一起来交流学习心得^_^ 3. 在线课程、沙箱实验、博客和直播,其中包含了许多优质的内容,推荐了解与学习。
  • [运维管理] 【DWS 8.1.0】【主备切换】主备切换逻辑
    其中一个节点内存故障后,主DN发生了重启,重启5分钟后完成,完成后,查询集群,没有发现主备切换,在日志中查看,发现在这5分钟内,cma有每一分钟尝试连接主DN,5次之后,下发failover,这里有几个疑问:1,为什么下发failover之后,集群没有主备切换?2,主备切换的触发条件是啥,通过什么参数控制?
  • [问题求助] 主备不同步问题
    使用GAUSS导入数据以下两种方式:1.一种是COPY2.一种是GDS当导入数据量上亿条时集群界面就会出现主备不同步告警,且集群运行其他SQL就开始卡顿集群规模12台机器,内存512,每台机器数据盘做了4组raid?
  • [运维管理] 【Gaussdb 8.1.0】【主备同步】不同的主备同步状态
    【功能模块】【操作步骤&问题现象】集群发生主备切换后,在恢复的时候,不同的情况会出现不同的主备同步状态,如startingneed repair(disconnected)catcupbuilding这些不同的状态都是表示啥意思,是什么情况下才会出现的?【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [技术干货] 混合云的好处
      互联网应用往往80%的时间流量处于低值,IT系统较为空闲;20%的时间处于流量高并发的波峰(如:O2O、游戏、视频等应用)应对此情况较为经济的解决方案是采用混合云方案。将平稳的业务处理能力部署于物理架构或私有云,获得更高的资源可控性和性能。使用公有云作为IT架构种可灵活扩展的储备,在访问量升高时,将过多的请求导入公有云业务集群,从而分担业务压力。使用CloudLink连接公有云与私有云,实现业务的实时数据交互,协同工作。传统的IT架构中,实现多中心容灾需要部署多个几乎一致的数据中心,一般建设周期在6个月至一年,投入巨大,收效甚微。系统正常情况下采用较小状态部署,保证问题发生时可快速扩容。主系统故障时,快速扩容灾备节点到主节点规模,并启用接替主节点工作主系统故障恢复后,快速缩减灾备节点,至较小规模,确保节省成本。
  • [测试] GaussDB(DWS) 集群管理(CM)介绍(一)
    【摘要】 GaussDB(DWS) 集群管理CM工具使用介绍。GaussDB 是一款shared nothing架构、由多实例节点组成的分布式数据库产品,每一个节点上都分布着不同的实例,包括管理实例、计算实例、调度实例等。不同的节点、实例之间的角色、状态由CM模块进行协调管理。如下图:                                                        CM功能模块包括CMS(Cluster Manager Server)和CMA(Cluster Manager Agent)、CM工具:                CMS——仲裁实例,集群管理的核心模块,负责包括计算实例(GTM、DN)HA状态、调度实例(CN)的存活度仲裁和动作命令的下发。                CMA——仲裁代理实例,负责实例状态的监控上报、动作命令执行、告警模块的上报。                CM工具——集群管理工具,将CM管理能力转换为主动下发的一组命令工具。       下文我们通过CM工具简单介绍下CM模块承载的部分管理功能:                        如上图,常用的动作包括start、switchover、build、stop、query、restart、view等。                  说明:-z、-%arbitration%类参数、-%az%等参数暂时不多赘述,当前华为云发布的产品形态功能不依赖此类参数。        1.start/stop——集群启停,包括完整集群的启停、节点启停、实例启停;             cm_ctl stop/start [-n <nodeId>  [-D <datapath>]]  ;stop/start作为启停的必选参数之一,-n、-D 作为可选分别对应节点、实例级启停,如果启停实例则必须z指定-n节点编号。                         如上图:可以通过query的方式查出实例的编号、节点、路径、状态等信息;停止第2个节点的CN实例cm_ctl stop -n 2 -D /data2/data/coordinator.                  2.query ——集群信息查询,包括集群的静态信息、状态信息、关系节点信息;             cm_ctl query  [-v [-C [-s] [-d] [-i] [-F] [-L ALL] [-x] [-p] [P] ]] [[-n NODEID] [-D DATADIR] [-R]];query作为查询的必选参数之一,-n、-D、-R 作为查询实例的接口参数,需要一起使用,分开使用的意义不大;其余参数可单独使用,其中-v参数作为查询集群状态的基础信息最好和-C参数一起使用,可以更容易看出集群结构和实例的HA关系。                查看集群的整体状态信息:                      查询与指定节点、实例相关的实例信息:                      [-v [-C [-s] [-d] [-i] [-F] [-L ALL] [-x] [-p] [P] ]]:            -v 可以查询到集群所有实例的详细主备信息,包括HA同步状态、同步位置等信息,在不带-C的情况下未进行信息的过滤和格式化。            -s 可以查询到发生switchover 实例组                       -F 查询JAVA UDF实例进程状态                      -x 显示状态异常实例                      -p 显示实例对应的端口号                      -P 显示实例在OS重的PID                 3.switchover——主备切换,主要针对集群中存在主备关系的实例角色进行切换;            cm_ctl switchover [-n NODEID -D DATADIR [-q]] [-a [-q]],主备切换主要分两种一种实例级切换,一种集群级切换(集群均衡状态恢复)。            实例切换,主要针对实例级别的主备关系切换,cm_ctl switchover -n <nodeId> -D <datapath>;                        cm_ctl switchover -a 恢复集群所有非初始化均衡状态实例。                 4. build——重建实例数据,重建实例要求被重建实例能够被拉起(即参数文件postgresql.conf存在),通过保持HA关系的Primary实例恢复备机实例数据;             cm_ctl build -n NODEID -D DATADIR [-b BUILD_MODE] , build只能针对实例级别进行重建,-b表示全量重建。                          说明:该功能重点是重建实例下的数据文件,并不能完全重建实例目录下所有的文件,因此在实例故障情况下,建议用OM模块gs_replace接口进行修复。      5. retsart——重启接口,该接口只针对逻辑集群功能,当一个物理集群中包含逻辑集群的情况下,可以通过指定逻辑集群名重启逻辑集群。              cm_ctl restart -L <LCNAME> ;LCNAME可以通过cm_ctl query -Cv -L ALL查询       本文中主要介绍了CM管理模块中部分功能——CM工具使用方法和基本的功能操作,其中选择了较为通用的命令接口进行介绍,其余接口命令可参考产品详细的帮助信息。原文链接:https://bbs.huaweicloud.com/blogs/244355【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [测试] GaussDB(DWS)基于disk双集群容灾场景介绍
    为什么要进行数据备份?         数据库灾备能力是评价数据库的重要指标之一。GaussDB(DWS)支持线上、线下双集群容灾。支持物理异构、逻辑同构的两套集群进行周期性容灾,满足客户多样化使用需求。 能力介绍:         主容灾能力:生产集群在线周期性备份、灾备集群周期性恢复。根据客户不同需求,灵活设置数据备份恢复周期,有效错开业务高峰,灵活备份恢复。备份恢复期间一次备份恢复故障不影响整个备份恢复流程,能够快速识别,重新拉起任务,数据不丢失。         主备切换能力:生产集群故障,支持灾备集群备升主,快速替代主集群业务。容灾信息配置:         容灾配置文件可以配置容灾任务生产集群的备份文件存储路径、周期性备份全量备份周期、增量备份周期;灾备集群备份文件存储路径、周期性恢复全量恢复周期、增量恢复周期;根据容灾配置文件拉起容灾任务。    生产集群备份任务拉起:         容灾主要通过Gaussdb A内核工具SyncDataToStby.py拉起;         命令:python $GPHOME/script/SyncDataToStby.py -t backup --config-file /data/config/backupRestore.ini灾备集群恢复任务拉起:         命令:python $GPHOME/script/SyncDataToStby.py -t restore --config-file /data/config/backupRestore.ini备升主场景:         生产集群故障,灾备集群升主。         命令:python $GPHOME/script/SyncDataToStby.py -t restore --config-file /data/config/backupRestore.ini –switchover-config  /data/config/backupRestore_switch.ini         备集群备升主过程,通知主集群做最后一次增量备份,追平数据,等待备集群恢复完成所有数据,主备切换才会成功。云上环境,主备切换成功后自动以新的主备关系拉起容灾。原文链接:https://bbs.huaweicloud.com/blogs/238797【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [集群&DWS] GaussDB(DWS)高可用之主备从HA技术
    技术背景随着客户业务对数据可靠性和服务可用性要求的提高,主备架构在OLAP系统中也已被广泛使用。而分析型数据库往往数据量大,节点数多,分布式系统下发生硬件故障已成为常态。对于传统两副本系统(一主一备最大可用HA模式),单节点故障后,为了服务可用性,一般都会选择让另一个正常节点继续提供服务,在故障节点恢复前数据只有单副本运行。而由于数据量大,往往故障节点修复时间和数据重建时间都很长,此时一旦正常主机再次发生故障,将造成数据丢失的严重后果。另外,根据分布式CAP原理,两副本系统一旦采用最大可用策略,将损失分区容错性(即脑裂双主,下文详述)。尽管三副本通过多数派复制策略可以解决上述问题,但三副本带来了更多的存储成本开销,在OLAP数据库中无法成为主流解决方案。因此,GaussDB(DWS)创新性的在数据节点(DN)引入从备概念,使得集群在任意单点故障时仍保持两副本可用,相比传统三副本节约了三分之一的存储空间,但数据可靠性基本持平。技术原理如上图所示,GaussDB(DWS)引入备机和从备的概念,正常情况下主机和备机通过日志流复制和数据页流复制进行强同步,主机与从备仅保持连接并不发送日志和数据,因此从备不占用额外存储资源。当备机发生故障时,主机自动感知,将未完成同步的日志和数据发送给从备,并保持主从强同步。主备同步向主从同步的切换在内核底层HA实现,事务层并不感知,因此不会造成任何报错和不一致。同理,当主机发生故障时,由集群管理感知并仲裁备机升主,升主后的备机连接从备进行主从强同步。因此,在一组DN内发生单点故障后,不会影响服务可用性,同时数据仍然有两份副本的可靠性保障。日志分叉与脑裂尽管GaussDB(DWS)主备间是强同步,但各自落盘顺序总有先后。与绝大多数数据库一样,GaussDB(DWS)的物理日志总是先写主机后写备机。如上图所示,主机崩溃前可能有一部分日志未同步给备机(红色部分未同步,蓝色部分已同步),备机升主后会提供服务,会写入新的日志(绿色部分)。由于物理日志按照lsn顺序递增,主机的红色日志与备机的绿色日志占用了相同的一段lsn,形成冲突,即日志分叉。日志分叉可能带来严重问题,例如一旦分叉后发生集群重启,传统两副本方式可能无法通过日志长度判断应该选谁成为新主,选错将造成数据丢失(应选包含绿色日志的节点为主,因为其可能包含已提交事务;而红色段日志一定不存在已提交事务,可以丢弃)。在引入从备后,主机故障备机升主,升主后将与从备进行强同步,因此从备上的日志一定与新主保持一致。在上述场景中,DN响应升主命令时可以额外判断从备日志,通过校验CRC来判断日志是否分叉,与从备日志一致的才能升主成功,从而保证了仲裁的正确性和数据的一致性。此外,在极限断网、进程僵死、集群管理失效等场景下,有可能在主机存活时错误的将备机升主,形成双主脑裂。传统的两副本HA机制无法识别此类场景,只能通过外部加固手段减少脑裂发生的概率。而在主备从架构下,从备可临时作为仲裁者,类似三副本多数派机制。DN响应升主时与从备建连并进行日志校验,只有与从备形成多数派的主机才实际有效,而另外的主机因无法与从备强同步而自动失效,从而解决了脑裂的问题。数据可靠性对于服务可用性,主备从HA与三副本多数派复制和两副本最大可用HA相同,都能够容忍单副本故障。对于数据可靠性,主备从HA提供了强于两副本、接近三副本的能力。以上图所示场景为例,备机故障一段时间后恢复。从时间轴上看,可以分为P1主备同步、P2主从同步、P3备机追赶和P4主备同步四个阶段。P1/P4:主备同步,数据拥有两副本可靠性,数据可靠性与传统两副本相同。P2:发生单节点故障,主从同步,数据仍然具有两副本可靠性,优于传统两副本。此时如果主机磁盘损坏无法恢复,由于从备仍有一份数据,当备机恢复后即可提供服务,而传统两副本则必须等待主机恢复才能提供服务,否则会数据丢失。P3:备机恢复后追赶P2阶段生成的日志和数据,此时主机仍然与从备强同步并正常服务。追赶阶段一旦发生主机故障,备机升主时可以连接从备补齐日志和数据并提供服务;而传统两副本则因备机没有追赶完成而无法恢复服务,否则会数据丢失。以上,主备从HA在P2、P3阶段相比两副本有额外的可靠性优势。而相比三副本,只有在主备两节点都发生磁盘损坏且不可恢复的场景下,可靠性方面具有劣势。总结综上所述,主备从HA在保持了两副本存储成本的前提下,解决了传统两副本最大可用HA模式中因日志分叉造成的数据一致性问题和脑裂问题,同时提供了接近三副本的更高数据可靠性。原文链接:https://bbs.huaweicloud.com/blogs/175249【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [存储] 数仓GaussDB(DWS)GTM总结
    1 GTM概述:    GTM全称为全局事务管理器,是系统中的常驻进程,主要作用是分发xid(事务ID)、snapshot(快照)、sequence(序列)等信息。为了保证事务标识的一致性和全局唯一性,在集群中只有一个主GTM提供服务,并采用了主备方式,从而实现了高可用。在连接方面,GTM是被动连接的,它不关心连接方的节点类型(是CN还是DN),只会根据接收到的报文信息,进行相应处理,并返回消息。一般情况下,CN会在事务执行阶段连接GTM获取XID和snapshot,DN在AutoVaccumWork时获取XID,CM在仲裁GTM时获取状态信息。GTM在架构中的关系如图1所示。图1 GTM在架构中的关系图 注:        a)        Coordination:名为协调者,是所有客户端(gsql,jdbc,odbc)的入口,执行解析器、优化器、分布式事务等。        b)        CM:名为集群管理,保障各个组件自动化协同工作。        c)        DN:名为数据节点,是数据存储引擎,支持行存和列存、HDFS存储、向量化引擎和HA等。        d)       xid:事务ID,具有全局一致性。        e)        snapshot: 快照,用来判断给定的事务是否还在运行,如果一个事务在快照之中,那么即使该事务已经结束了也会被认为是正在运行        f)         Sequence:序列,是用来产生唯一整数的数据库对象。序列的值是按照一定规则单挑自增的整数。因为自增所以不重复,因此sequence具有唯一性,常用于做主键。              二 GTM工具和文件简述2.1 GTM工具GTM二进制常用工具有两个:gtm_ctl和gtm_initgtm。该类工具都是单线程执行,不存在多线程并发。gtm_ctl通过信号控制GTM的进程,包括GTM的启停和升主降备,GTM的switchover和failover,以及GTM的状态查询和同步设置等命令。例如GTM启动命令:gtm_ctl -Z gtm -D ../gtm start。gs_initgtm主要在集群安装时用于生产GTM配置文件。例如gtm.control,gtm.conf等文件。2.2 GTM文件       gtm.conf是GTM的配置文件,GTM启动时会解析该文件的参数,具体参数含义如表1。 表1 gtm.conf参数表gtm.control:是GTM控制文件,用来存放xid、timeline,文件格式如下:     xid     timeline     transaction_num (默认是1)gtm.sequence:存放GTM的uuid和sequence文件,数据行数不定,文件格式如下:    uuid    seq1 info (包括sequence的基本属性值)    seq2 info     。。。。gtm.pid:存储GTM的进程号和数据目录等。gtm.opts:存储GTM启动arguments参数。三GTM的HA机制  3.1 GTM的状态       在GTM的HA机制,我们将GTM分为三种类型的状态,分别为主机状态、连接状态和同步状态,下面简要介绍三种类型的状态。GTM 主机状态有四种:    1:Pending:初始启动状态,GTM待仲裁状态。    2:Priamry:主GTM状态表示。    3:Standby:备GTM状态表示。    4:Unknow:GTM进程不在的状态。GTM连接状态,表示主GTM与备GTM或ETCD的连接状态。    1:Connection ok:主备连接正常或与ETCD连接正常。    2:Connetion bad:主备连接异常。GTM同步状态,表示GTM的同步逻辑。    1:Most available:最大可用模式。当无ETCD,且主备GTM连接异常时,主GTM的同步状态为该状态。    2:Sync:同步状态。3.2 GTM的状态切换流程简述GTM的状态切换流程如图2所示。CM拉起的GTM状态初始都是Pending状态,然后通过比较xid决定主备,xid大的为主GTM,xid小的为备GTM。当主备连接异常且无ETCD时,主GTM的同步状态会变为most_available。当主GTM出现问题时,CM会仲裁备GTM,通过failover升主GTM,如果无ETCD,那么同步状态变为most available。也可以通过switchover进行主备GTM转换,此时同步状态不会变化。图2 GTM状态切换流程图3.3 GTM同步机制       GTM的同步需要满足相应的同步条件并处于对应的同步模式才可以进行。例如xid的同步需要满足curval(当前值)>=backupVak(备份值)且GTM_SyncGXIDFlag为true时才可进行同步。Sequence的同步也要满足curval(当前值)>=backupVak(备份值)的条件,sequence创建时会默认同步一次。此外还需要处于相应的同步模式下才可以,有三种同步模式:        a)        sync auto:异步同步模式。GTM以pending模式启动后,所呈现的初始同步模式。        b)       sync on:强同步模式。当GTM主备启动后,CM_Server接收到CM_Agent上报的主备GTM连接正常的消息时,会将GTM主备的同步状态从sync auto置为sync on。        c)        sync off:GTM主备不同步并且主GTM也不与ETCD同步。Sync off默认不使用。    注:        1 在主备从无ETCD集群中,如果主备连接异常,主GTM的同步状态会变为most available。而在有ETCD的集群中,无论主备是否连接异常或挂掉,ETCD是否挂掉,都不会切换最大可用模式。        2 只有GTM处于sync on模式下,failover和switchover操作才可进行。原文链接:https://bbs.huaweicloud.com/blogs/198243【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [环境搭建] 【GaussDB 200产品】【LLD规划配置功能】LLD配置规划工具-集群参数配置 CMS和GTM互为主备的要求问题
    MPPDB备cmserver的主机IP地址,该地址必须是集群中存在的IP地址,且需要配置在业务平面,CMServer与GTMServer部署节点互为主备,建议coordinator不部署在这两个节点上。集群运行过程中,不允许调整CMServer、GTMServer所在节点到其他节点。LLD配置规划工具-集群参数配置 中针对CMS和GTM要求是互为主备的,这样要求的依据是啥?如果不这样配置会有什么问题?
  • [运维管理] 【GaussA 8.1.0】【主备切换】主备切换逻辑
    【功能模块】【操作步骤&问题现象】一直有个问题想问下,我们的集群在发生主备切换后,  为什么一定要切回来呢,如果不切回来,会有什么影响?备升主后,就一直让备作主的话,会有什么问题?【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [经验交流] 如何配置服务器接入交换机
    简介本章节介绍服务器接入交换机的配置。其中交换机的组网方式可以是堆叠、M-LAG和单机,为了使网络具有更高的可靠性,推荐采用M-LAG组网方式。服务器网卡模式可以是主备模式和负载分担模式。图1-1 组网示意图配置过程表1-1 接入交换机配置要求服务器网卡模式交换机组网交换机配置要求主备模式堆叠配置堆叠系统SwitchA&SwitchB。[~SwitchA&SwitchB] interface 10ge 1/0/1[*SwitchA&SwitchB-10GE1/0/1] stp edged-port enable    //如果交换机接带交换板的服务器,需要在服务器上去使能STP,防止发生抢根现象。 [*SwitchA&SwitchB-10GE1/0/1] quit[*SwitchA&SwitchB] interface 10ge 1/0/2[*SwitchA&SwitchB-10GE1/0/2] stp edged-port enable[*SwitchA&SwitchB-10GE1/0/2] commitM-LAG配置SwitchA。[~SwitchA] interface 10ge 1/0/1[*SwitchA-10GE1/0/1] stp edged-port enable    //如果交换机接带交换板的服务器,需要在服务器上去使能STP,防止发生抢根现象。 [*SwitchA-10GE1/0/1] commit配置SwitchB。[~SwitchB] interface 10ge 1/0/1[*SwitchB-10GE1/0/1] stp edged-port enable[*SwitchB-10GE1/0/1] commit单机配置SwitchA。[~SwitchA] interface 10ge 1/0/1  [*SwitchA-10GE1/0/1] stp edged-port enable    //如果交换机接带交换板的服务器,需要在服务器上去使能STP,防止发生抢根现象。  [*SwitchA-10GE1/0/1] commit配置SwitchB。[~SwitchB] interface 10ge 1/0/1  [*SwitchB-10GE1/0/1] stp edged-port enable    //如果交换机接带交换板的服务器,需要在服务器上去使能STP,防止发生抢根现象。  [*SwitchB-10GE1/0/1] commit负载均衡模式堆叠配置堆叠系统SwitchA&SwitchB,将交换机接口10GE1/0/1和10GE1/0/2加入eth-trunk。[~SwitchA&SwitchB] interface eth-trunk 1  [*SwitchA&SwitchB-Eth-Trunk1] trunkport 10ge 1/0/1  [*SwitchA&SwitchB-Eth-Trunk1] trunkport 10ge 1/0/2  [*SwitchA&SwitchB-Eth-Trunk1] mode lacp-static [*SwitchA&SwitchB-Eth-Trunk1] stp edged-port enable  //如果交换机接带交换板的服务器,需要在服务器上去使能STP,防止发生抢根现象。 [*SwitchA&SwitchB-Eth-Trunk1] commitM-LAG配置SwitchA,将交换机接口10GE1/0/1加入eth-trunk。[~SwitchA] interface eth-trunk 1  [*SwitchA-Eth-Trunk1] trunkport 10ge 1/0/1  [*SwitchA-Eth-Trunk1] mode lacp-static [*SwitchA-Eth-Trunk1] dfs-group 1 m-lag 1 [*SwitchA-Eth-Trunk1] stp edged-port enable    //如果交换机接带交换板的服务器,需要在服务器上去使能STP,防止发生抢根现象。  [*SwitchA-Eth-Trunk1] commit配置SwitchB,将交换机接口10GE1/0/1加入eth-trunk。[~SwitchB] interface eth-trunk 1  [*SwitchB-Eth-Trunk1] trunkport 10ge 1/0/1  [*SwitchB-Eth-Trunk1] mode lacp-static [*SwitchB-Eth-Trunk1] dfs-group 1 m-lag 1 [*SwitchB-Eth-Trunk1] stp edged-port enable    //如果交换机接带交换板的服务器,需要在服务器上去使能STP,防止发生抢根现象。  [*SwitchB-Eth-Trunk1] commit
  • [热门活动] 华为云数据复制服务DRS于2021年2月1日00:00(北京时间)计费通知
    尊敬的华为云客户:华为云计划于2021/02/01 00:00(北京时间)对数据复制服务(DRS)如下场景正式开始计费,此次计费仅对2021/02/01 00:00(北京时间)后启动的DRS任务生效,具体价格详情如下:公有云计费模式如下:场景引擎关系区域入云出云配置费用数据传输费(仅公网)配置费用数据传输费(仅公网)实时迁移源:MySQL目标:GaussDB(for MySQL)中国站1周内免费,超过1周计费2.4元/时入云免费24元/时1.5元/G实时迁移源:MySQL目标:GaussDB(for MySQL)中国站(香港)1周内免费,超过1周计费2.8元/时入云免费28元/时2.24元/G实时迁移源:MySQL目标:GaussDB(for MySQL)中国站(亚太-曼谷)1周内免费,超过1周计费2.5元/时入云免费25元/时1.55元/G实时迁移源:MySQL目标:GaussDB(for MySQL)中国站(亚太-新加坡)1周内免费,超过1周计费2.7元/时入云免费27元/时1.69元/G实时同步源:Oracle/MySQL/RDS MySQL目标:Kafka中国站2.4元/时入云免费24元/时1.5元/G实时同步源:Oracle/MySQL/RDS MySQL目标:Kafka中国站(香港)2.8元/时入云免费28元/时2.24元/G实时同步源:Oracle/MySQL/RDS MySQL目标:Kafka中国站(亚太-曼谷)2.5元/时入云免费25元/时1.55元/G实时同步源:Oracle/MySQL/RDS MySQL目标:Kafka中国站(亚太-新加坡)2.7元/时入云免费27元/时1.69元/G实时灾备源:MySQ目标:MySQL类型:双主灾备中国站2.4元/时入云免费2.4元/时1.5元/G实时灾备源:MySQ目标:MySQL类型:双主灾备中国站(香港)2.8元/时入云免费2.8元/时2.24元/G实时灾备源:MySQ目标:MySQL类型:双主灾备中国站(亚太-曼谷)2.5元/时入云免费2.5元/时1.55元/G实时灾备源:MySQ目标:MySQL类型:双主灾备中国站(亚太-新加坡)2.7元/时入云免费2.7元/时1.69元/G注:专属云(Dec)、金融区、华为云全栈(HCS、HCSO)的DRS报价,请以华为云项目报价为准。华为云在此提醒您,如果您不再需要使用该服务,请及时结束任务,以免产生费用。更多关于华为云数据复制服务(DRS)的产品介绍,请您点击了解。如您有任何问题,可随时通过工单或者服务热线(4000-955-988或950808)与我们联系。感谢您对华为云的支持!