• [技术干货] 日志分叉与脑裂
    尽管GaussDB for DWS主备间是强同步,但各自落盘顺序总有先后。与绝大多数数据库一样,GaussDB for DWS的物理日志总是先写主机后写备机。如上图所示,主机崩溃前可能有一部分日志未同步给备机(红色部分未同步,蓝色部分已同步),备机升主后会提供服务,会写入新的日志(绿色部分)。由于物理日志按照lsn顺序递增,主机的红色日志与备机的绿色日志占用了相同的一段lsn,形成冲突,即日志分叉。 日志分叉可能带来严重问题,例如一旦分叉后发生集群重启,传统两副本方式可能无法通过日志长度判断应该选谁成为新主,选错将造成数据丢失(应选包含绿色日志的节点为主,因为其可能包含已提交事务;而红色段日志一定不存在已提交事务,可以丢弃)。 在引入从备后,主机故障备机升主,升主后将与从备进行强同步,因此从备上的日志一定与新主保持一致。在上述场景中,DN响应升主命令时可以额外判断从备日志,通过校验CRC来判断日志是否分叉,与从备日志一致的才能升主成功,从而保证了仲裁的正确性和数据的一致性。 此外,在极限断网、进程僵死、集群管理失效等场景下,有可能在主机存活时错误的将备机升主,形成双主脑裂。传统的两副本HA机制无法识别此类场景,只能通过外部加固手段减少脑裂发生的概率。而在主备从架构下,从备可临时作为仲裁者,类似三副本多数派机制。DN响应升主时与从备建连并进行日志校验,只有与从备形成多数派的主机才实际有效,而另外的主机因无法与从备强同步而自动失效,从而解决了脑裂的问题。
  • [技术干货] 主备从HA技术
    随着客户业务对数据可靠性和服务可用性要求的提高,主备架构在OLAP系统中也已被广泛使用。而分析型数据库往往数据量大,节点数多,分布式系统下发生硬件故障已成为常态。 对于传统两副本系统(一主一备最大可用HA模式),单节点故障后,为了服务可用性,一般都会选择让另一个正常节点继续提供服务,在故障节点恢复前数据只有单副本运行。而由于数据量大,往往故障节点修复时间和数据重建时间都很长,此时一旦正常主机再次发生故障,将造成数据丢失的严重后果。另外,根据分布式CAP原理,两副本系统一旦采用最大可用策略,将损失分区容错性(即脑裂双主,下文详述)。 尽管三副本通过多数派复制策略可以解决上述问题,但三副本带来了更多的存储成本开销,在OLAP数据库中无法成为主流解决方案。因此,GaussDB for DWS创新性的在数据节点(DN)引入从备概念,使得集群在任意单点故障时仍保持两副本可用,相比传统三副本节约了三分之一的存储空间,但数据可靠性基本持平。 GaussDB for DWS引入备机和从备的概念,正常情况下主机和备机通过日志流复制和数据页流复制进行强同步,主机与从备仅保持连接并不发送日志和数据,因此从备不占用额外存储资源。当备机发生故障时,主机自动感知,将未完成同步的日志和数据发送给从备,并保持主从强同步。主备同步向主从同步的切换在内核底层HA实现,事务层并不感知,因此不会造成任何报错和不一致。 同理,当主机发生故障时,由集群管理感知并仲裁备机升主,升主后的备机连接从备进行主从强同步。因此,在一组DN内发生单点故障后,不会影响服务可用性,同时数据仍然有两份副本的可靠性保障。
  • [技术干货] 内存管控
    实例级别内存管控:guc参数max_process_memory限制DN和CN实例的最大可用内存,当使用内存超过max_process_memory时,作业报错退出; 可动态申请内存:max_dynamic_memory=max_process_memory-cstore_buffers(max_cstore_memory)-(udf_memory_limit - 200M) - max_shared_memory; 资源池内存管控:使用并发点数计算可执行的并发数量,active_statements<=0情况下资源池内存不受控。资源池总点数:total_points = active_statements * 100,作业使用点数:active_points = (estimate_mem/respool_mem) * active_statements * 100,estimate_mem为优化器估算的作业内存,资源池点数耗尽出发排队。
  • [环境搭建] guassdb(DWS) ESL ESL (hybird) ESL(stream)有什么区别?
    在准备gaussdb DWS安装文档时,发现有3个版本的安装指南,请问这3个到底有何区别? 
  • [问题求助] 趋势看板的指标不显示
    前提条件满足,但是趋势看板不显示任何东西白名单参数趋势看板不显示任务东西 
  • [其他] GaussDB(DWS)serviceCM界面添加可用区报DWS.0001 Pattern check fail
    【问题版本】 HCS831【问题描述】 serviceCM界面可用区配置添加可用区报DWS.0001 Pattern check fail:【问题影响】 无【问题根因】是否复制配置这个字段校验不对【排查思路】1、serviceCM界面可用区配置添加可用区时复制配置为不复制时会弹框报DWS.0001 Pattern check fail: [copyConfiguration],[xxxxxxxx,^[a-zA-Z][a-z0-9A-Z_.-]*$]2、界面F12查报错/rds/v1/regions/zone/接口response也报DWS.0001一样的错;3、serviceCM界面日志管理操作日志如下:{"errCode":"DWS.0001","externalMessage":"Pattern check fail: [copyConfiguration],[xxxxxxx,^[a-zA-Z][a-z0-9A-Z_.-]*$]","error_code":"DWS.0001","error_msg":"Pattern check fail: [copyConfiguration],[xxxxxxxx,^[a-zA-Z][a-z0-9A-Z_.-]*$]","retCode":"DWS.0001","retMessage":"访问的资源不存在或不合法,请联系技术支持人员协助解决!"}4、原因是是否复制配置这个字段校验不对,规避方法就是选一个已有可用区把规格配置复制过来(内大网配置是全局的,跟az无关,所有az共用的一个配置);【规避措施】选一个已有可用区把规格配置复制过来,确认即可创建可用区;
  • [其他] ESL之告警周期备份任务失败
    【问题现象】    ALM-12034 周期备份任务失败告警说明:系统每60分钟执行周期备份任务,如果周期备份任务执行失败,则上报该告警,如果下次备份执行成功,则恢复告警。【常见版本】全版本   【定位思路】   1、可以参考产品文档检查/srv/BigData/LocalBackup备份路径挂载点的剩余空间是否小于20GB,小于清理空间即可查看日志/var/log/Bigdata/controller/backup/controller_backup.log,报错信息如下:Free spaces not enough, free space: xxxxxxxxx,localbackupPathMinSize is /srv/BigData/LocalBackup.2、若大于20GB,查看日志/var/log/Bigdata/controller/backup/controller_backup.log,是否会打印backup gaussdb File failed on xxx.x.x.x.3、如果是,请排查floatip和节点间互信是否有问题4、仅出现一次失败日志和告警,但是后续备份都是正常的,可能是由于网络闪断或发生主备切换导致一次失败可以忽略。
  • [集群购买/创建] GaussDB(DWS)下发集群卡50%进度最后失败(高速网络不通)
    【问题版本】 HCS831(其他版本也适用)【问题描述】 下发集群卡50%进度最后失败,无关键报错信息【问题影响】 无【问题根因】 裸金属接入交换机多组高速网络VLAN不通【定位思路】1、登录rms数据库查看失败task名称、jobid、执行任务的dwscontroller容器,操作方法:https://bbs.huaweicloud.com/blogs/427974;1) 失败任务:RdsInitInstanceTask;2) 拿对应失败jobid去dwscontroller容器grep 'jobid' ossres-dws.log | grep ERROR搜日志,只有如下信息:2025-xx-xx xx:xx:xx,xxx|xxxxx...xxxxx||ERROR|xxxxx...xxxxx|task[RdsInitInstanceTask] run fail.|com.huawei.hwclouds.taskmgr.job.impl.CommonJob.dealTaskResultFail(CommonJob.java:307)2025-xx-xx xx:xx:xx,xxx|xxxxx...xxxxx||ERROR|xxxxx...xxxxx|get dwsCreateInstanceJob JobConfig fail|com.huawei.hwclouds.taskmgr.job.impl.JobService.isNotAutoRolback(JobService.java:88)2、登录实例节点查看安装日志/home/Ruby/log/cloud-dws-deploy.log如下,发现只打到chroot步骤,无报错信息:[2025-xx-xx xx:xx:xx,xxx][INFO][xxxxx][xxxxxxxxxxxxxxx][init.py 571][Chroot succeed][2025-xx-xx xx:xx:xx,xxx][INFO][xxxxx][xxxxxxxxxxxxxxx][init.py 571][Chroot succeed][2025-xx-xx xx:xx:xx,xxx][INFO][xxxxx][xxxxxxxxxxxxxxx][init.py 469][Waiting to chroot finished][2025-xx-xx xx:xx:xx,xxx][INFO][xxxxx][xxxxxxxxxxxxxxx][init.py 469][Waiting to chroot finished]3、排查/home/root/log/ssh-agent-monitor.log日志如下,互信配置下发完成,无报错信息:[2025-xx-xx xx:xx:xx,xxx][INFO][create_trust][xxxxx][xxxxxxxxxxxxxxx][create_trust.py 217][Build authorized_keys succeed.][2025-xx-xx xx:xx:xx,xxx][INFO][create_trust][xxxxx][xxxxxxxxxxxxxxx][create_trust.py 311][Begin split authorized_keys file][2025-xx-xx xx:xx:xx,xxx][INFO][create_trust][xxxxx][xxxxxxxxxxxxxxx][create_trust.py 317][no need split authorized key]4、排查发现是节点互信有问题,进而排查是网络不通导致,集群节点间internalIp相互ping不通;1)  登录rms数据库查看rds_instance表获取internalIp,登录数据库方法见:https://bbs.huaweicloud.com/blogs/427974查询internalIp的sql:select id,name,status,manageIp,internalIp from rds_instance where clusterId='界面创建的集群ID';2)  登录实例节点ps -ef | grep ssh查询进程还在,未到达task的重试最大次数,但是前台已经超时失败了(task的最大重试次数是dwscontroller服务CDK参数 listenInitDbCount 乘以2);3)实例节点root用户执行cat /etc/hosts查看节点hostname对应ip验证连通性,发现CN1节点ping不通CN2和CN3节点IP;5、高速平面网络不通导致,需要找网络侧排查原因(仅提供协助排查思路,具体定位细节需要给网络创建关联单进行排查);1)定位是交换机高速平面VXLAN未打通(集中式跨leaf场景);2)属于高速平面网络不通,排查是由于3台BMS服务器没在同一组接入交换机内(serviceOM界面裸机服务器配置下可查看端口),接入交换机之间的高速网络VLAN没有放通导致,需要排查所有裸机接入交换机组;3)找数通侧检查交换机配置是否有遗漏,排查发现只配置了一个VLAN(最佳实践文档有说明是要放通所有的,是以一个为例),需要把规划的VLAN段都放开(交换机上配置高速VLAN),发放后再删除集群重新下发;
  • [分享交流] 【话题互动】2025留下你的新年学习目标
    2025留下你的新年学习目标,大家尽情分享吧
  • [技术干货] 大数据干货合集(2025年1月)
    集群迁移断点续做https://bbs.huaweicloud.com/forum/thread-0272173601021304058-1-1.htmlscp动作介绍https://bbs.huaweicloud.com/forum/thread-0251173601104528058-1-1.html全量备份的断点续做https://bbs.huaweicloud.com/forum/thread-0248173601167597069-1-1.html 节省内存开销的方法https://bbs.huaweicloud.com/forum/thread-0296173601214152058-1-1.html备份过程实质介绍https://bbs.huaweicloud.com/forum/thread-02104173601257779065-1-1.html集群全量恢复https://bbs.huaweicloud.com/forum/thread-0272173601309699059-1-1.html全量恢复介绍https://bbs.huaweicloud.com/forum/thread-02104173601356000066-1-1.html集群间scp中断后的断点续做https://bbs.huaweicloud.com/forum/thread-0296173601429619059-1-1.html一站式实现数据业务科学决策https://bbs.huaweicloud.com/forum/thread-0271173601660275056-1-1.htmlSQL引擎无法支撑复杂SQL查询的挑战https://bbs.huaweicloud.com/forum/thread-0251173601707163059-1-1.html消除数据孤岛https://bbs.huaweicloud.com/forum/thread-0296173601740524060-1-1.html资源管理简介https://bbs.huaweicloud.com/forum/thread-0271173601892622057-1-1.html计算资源介绍https://bbs.huaweicloud.com/forum/thread-02127173601939038055-1-1.html异常处理规则https://bbs.huaweicloud.com/forum/thread-02109173601978478069-1-1.html资源池并发队列https://bbs.huaweicloud.com/forum/thread-0272173602035469060-1-1.html   
  • [技术干货] 资源池并发队列
    全局并发队列采用GUC参数max_active_statements控制单个CN上运行并发执行的作业数量。采用全局并发队列机制将控制所有普通用户的执行作业,不区分复杂度,即执行语句都将作为一个执行单元,当并发执行的作业数量达到此参数阈值时,将进入队列等待。对于初始用户(Oid=10)执行的作业,不走全局并发控制逻辑。 注:max_active_statements限制单CN上运行的作业数,默认值为60,假设用户有3个DN,则实际全局并发上限为3*60=180; DDL和DML语句均受max_active_statements并发控制。 资源池并发队列包含快车道并发队列和慢车道并发队列,配置方式如下: CREATE RESOURCE POOL respool_a WITH (max_dop=10,active_statements=5); 其中max_dop为快车道并发上限,active_statements为慢车道并发上限。 注:资源池队列只限制DML语句,不限制DDL语句; max_dop限制单CN上资源池快车道并发数; active_statements在静态负载管理模式下限制单CN上资源池慢车道并发数,在动态负载管理模式下限制所有CN上资源池慢车道并发数之和。
  • [技术干货] 异常处理规则
    存储资源包含:持久表空间、临时表空间和算子落盘空间。临时表空间和算子落盘空间是作业运行过程中占用的空间,属于临时占用空间。持久表空间和临时占  用空间采用两种不同的管控策略,持久表空间管控通过对用户(队列)和schema空间限制实现,8.1.1版本之后的GaussDB空间管控均为单实例空间,防止出现数据倾斜导致的磁盘使用问题。临时占用空间同样支持在用户层级设置空间限额,另外还提供异常规则查杀临时空间占用异常的作业。异常处理规则GaussDB目前支持算子落盘异常规则,用户通过管控面或gs_cgroup工具设置算子落盘异常规则,设置异常规则后作业执行过程中算子落盘空间达到阈值后报错退出。 用户连接数据库执行SQL后,SQL会经过全局并发队列管控以及资源池队列管控。在作业进入管控逻辑前设置定时器,作业pending超时报错退出,作业经过队列管控开始运行前重新设置定时器,作业运行超时报错退出。作业下推DN执行时实时监控作业消耗的资源并上报CN,CN根据DN上报资源信息提供异常处理和监控视图。
  • [技术干货] 计算资源介绍
    资源管控通过对计算资源和存储资源分别管控实现作业间资源隔离,保证单作业异常不会影响到其他作业运行。下面分别对计算资源和存储资源管控进行概述: 1.计算资源 计算资源包含:CPU、IO和内存。GaussDB中CPU和内存资源关联在队列上,用户通过关联队列使用计算资源。队列按使用场景分为超户队列、默认队列和用户队列。其中超户队列不受资源管控,用于运维和故障修复;默认队列(default_pool)为数据库初始化阶段创建的队列,未关联用户队列的用户使用默认队列;用户队列为用户自己创建的队列,按照用户配置的并发和资源进行管控。IO管控基于逻辑IO实现,根据作业运行时间及优先级对IO进行管控,配置异常处理规则后,在系统IO达到瓶颈后,主动降低作业IO优先级。 2. 存储资源 数据库只读检测主要为防止出现磁盘满的问题,实现逻辑如下:cm_server开启enable_transaction_read_only情况下,每十分钟检查一次磁盘空间占用率,当 磁盘空间占用率超过阈值(默认90%)时,就通过guc参数设置数据库只读,数据库只读后只允许只读作业运行,作业发生写盘操作报错退出。但是因为数据库只读会导致用户所有业务无法运行,因此在磁盘空间占用率达到80%时会提前告警提示用户。
  • [技术干货] 资源管理简介
    通过引入资源监控和控制等手段,实现资源在可控的情况下被合理利用的目的,避免出现资源的无序使用,防止数据库系统性能变慢、停止响应。资源管理可以实现以下功能: 1、通过创建和管理队列,实现队列级别资源(CPU、内存、存储空间)隔离和作业的异常处理; 2、通过设置CN和队列的并发上限,限制允许运行的并发数,超出并发数后作业排队等待唤醒,防止并发过多导致性能下降; 3、通过优先级控制实现资源的有效调度,实现高优先级作业优先运行; 4、支持多维度资源监控视图,可以监控作业、用户和实例的资源消耗。 资源管理主要包含并发控制、资源管控、资源监控以及异常作业处理。并发控制主要分为全局并发控制和资源池并发控制,其中资源池并发管控由快慢车道实现,快车道管控简单作业,慢车道管控复杂作业,支持自动识别和手动切换快慢车道,理论上快车道并发大、作业运行时间短、占用资源少;慢车道并发少、作业运行时间长,占用资源多。
  • [技术干货] 消除数据孤岛
    1、用得随心:用户可以随时查询、使用自己想要的数据,不再因“数据隔夜”而烦恼; 2、用得开心:提供统一的数据入口和数据指标,且保持数据在数仓平台中的唯一性,用户不必担心统一数据指标在不同表单中出现不同数值的问题; 3、用得放心:对每一层数据模型的构建进行质量监控,用户不必担心数据质量问题。消除数据孤岛,链接数据与用户,共创数据智能时代在全面数字化、智能化的时代,互联网行业将产生海量的业务数据。如何将这部分数据进行高效串联,进而挖掘数据价值、盘活数据资产、实现业务创新升级,已成为企业数字化升级的共识与挑战。 作为具备分析及混合负载能力的分布式数据仓库,华为云GaussDB(DWS)基于企业级内核,提供了PB级数据分析能力和实时处理能力,能够用于数据仓库、数据集市、实时分析和实时决策等场景,支持全场景一站式分析,帮助治理数据孤岛的顽疾,解决互联网行业在数据分析时面临的系统扩展性不足、分析能力欠缺、数据集成和流转困难等诸多痛点。华为云GaussDB(DWS)让一站式分析成为现实,数据分析更加民主化,人人都能成为分析师。
总条数:2749 到第 页
上滑加载中