• [开发应用] XID为什么只给写事务分配?
    XID是每一个写事务唯一的标识并不是每个事务一开始就分配XID,只有在发生写操作需要XID时才会分配为什么只给写事务分配xid
  • GaussDB(DWS) 813版本pgxc_wlm_session_statistics授权问题
    GaussDB(DWS) 813版本pgxc_wlm_session_statistics授权问题【版本信息】813;821【 问题现象】813版本非管理员用户无法查询其他用户的pgxc_wlm_session_statistics图一:pgxc_wlm_session_statistics报错【原因分析】821版本提供预置角色功能,使非管理员权限用户可访问特定的信息和功能,操作方法为切换至gs_role_read_all_stats角色。图二:gs_role_read_all_stats说明图三:gs_role_read_all_stats操作【处理方法】部署一下脚本:CREATE OR REPLACE FUNCTION func_wlm_session_statistics()RETURNS TABLE (datid oid, dbname name,schemaname text,nodename text,username name,application_name text,client_addr inet,client_hostname text,client_port integer,query_band text,pid bigint,block_time bigint,start_time timestamp with time zone,duration bigint,estimate_total_time bigint,estimate_left_time bigint,enqueue text,resource_pool name,control_group text,estimate_memory integer,min_peak_memory integer,max_peak_memory integer,average_peak_memory integer,memory_skew_percent integer,spill_info text,min_spill_size integer,max_spill_size integer,average_spill_size integer,spill_skew_percent integer,min_dn_time bigint,max_dn_time bigint,average_dn_time bigint,dntime_skew_percent integer,min_cpu_time bigint,max_cpu_time bigint,total_cpu_time bigint,cpu_skew_percent integer,min_peak_iops integer,max_peak_iops integer,average_peak_iops integer,iops_skew_percent integer,warning text,queryid bigint,query text,query_plan text,node_group text)LANGUAGE plpgsqlSECURITY DEFINERAS $$DECLAREBEGINRETURN QUERY EXECUTE 'select * from pgxc_wlm_session_statistics t';END $$;部署完成后,输入以下命令行运行脚本:grant execute on pro_monitor.func_wlm_session_statistics to fin_dmr_sre; 即可解决813版本无法授权查询pgxc_wlm_session_statistics问题。若授权依旧失败:则问题汇总为:授予普通用户预置角色gs_role_read_all_stats权限,不能通过pgxc_wlm_session_statistics查询所有用户的会话信息 ,只能看到当前用户自己信息:这是813受限制,821可实现。通过Function 的定义函数,使用管理员创建该函数,授予普通用户执行权限,这样普通用户可以看到其他用户会话,但是只能看到单个cn,如何才能看到所有cn:这个呢?这个已经不是权限问题了,绕过了813限制的问题 对于上述问题建议以下方案:赋权管理员权限操作升级8.2.1以上版本
  • [其他] GaussDB(DWS)管控面扩容之ECF安装运维容器工步失败
    【问题版本】 管控面821扩容【问题描述】 ECF安装运维容器工步失败【问题影响】 无【问题根因】 scc.domain.id的值存在问题,无法解析【定位过程】1、工步报错报Unexpected response from server: {'status': 500, 'message': 'invoke aos preview stack failed 调用aos预览堆栈失败;2、查看详细日志报错内容包含scc.domain.id,定位是821的scc.domain.id的值存在问题,导致无法解析,CDK脚本cdk_api_internal.py 1090报错。【规避措施】 1)登Turkey后台节点,修改/opt/cloud/hcci/src/HCCI/projects/project_id/plugins_cloudservice/ECF/params/dws-maintain.json文件;2)在该文件中scc.domain.id值的302前后增加英文双引号;(该后为  "scc.domain.id": "302",)3)重启docker容器,docker restart hcci_exec_project_id并重试工步。
  • [热门活动] HCDG城市行·天津站活动回顾——玩转GaussDB(DWS)云原生数据仓库,解锁数智融合新未来
    为推动云原生数据仓库的技术创新和数智融合发展的新需求、新趋势、新路径,为相关行业内的企业、高校和个人,建立一个强大的知识、资源共享平台,共同推动数智化时代的创新和进步。2023年12月23日,由华为云开发者社区HCDG天津地区核心组与华为(天津)开发者创新中心在天津市滨海新区中新生态城,共同举办了“华为云数仓专家带你玩转GaussDB(DWS)云原生数据仓库”,开启了一场精彩的行业对话和专业探讨。活动开始,由华为(天津)开发者创新中心代表嘉宾韩清致开场词。韩清介绍了华为开发者创新中心的发展历程,即从2018年在天津市滨海新区成立华为云基地,到今年2023年7月正式成立北方首家华为开发者创新中心,全国的第三个开发者创新中心。作为国家首批智慧城市建设试点和世界智能大会永久展示基地,华为(天津)开发者创新中心将通过打造“开发者生态赋能平台”、“国家级转型试点平台”、“人才培养示范平台”、“生态运营服务平台”四大平台,为企业提供全方位、链条化的数字云服务,为数字产业高质量发展注入强劲动能。韩清表示,创新中心将从技术构建、业务合作活动等多种形式进行交流,同时欢迎大家加入天津HCDG,在华为云生态的建设中,共同探索和实践了多个创新项目,并对参加本次活动的企业代表、学生代表、开发者个人表示深深的感谢。在未来,华为(天津)开发者创新中心将会携手共同构建一个更开放、创新的生态系统。分享环节华为云数仓GaussDB(DWS)架构师专家周孟韬,分享了“GaussDB(DWS)云原生数仓技术”,从技术和业务两个角度,深入介绍GaussDB(DWS)云原生数据仓库的技术原理、特点、优势和应用案例。展示GaussDB(DWS)云原生数据仓库技术如何帮助企业实现数据资产最大化利用,提升数据分析的价值和效率,助力企业数字化转型,共同探讨数据仓库的发展趋势和挑战。周老师从“数据仓库的起源”、“数据仓库发展趋势”、“GaussDB(DWS)演进历程”等方面分享了自己对数据仓库算力基座的一些思考。同时,结合GaussDB(DWS)的研发工作及架构演进以及实际案例,如大家日常使用的电费账单分析,年度支付账单分析,公司的财务报表,训练AI大模型的数据处理等,解密大数据背后的支撑技术,以及多数开发者在研发过程遇到的难题和痛点,对实时、全场景分析、智慧数仓的开发思路。华为云数仓GaussDB(DWS)已经广泛应用于1700+大客户的核心业务中,基于华为云底座能力打通数据壁垒,通过湖仓一体与大数据互联互通,体验纵向的融合分析,借助数据生产线与AI生产线的高效配合,进行快速开发。特别是利用云原生的方式进行弹性放缩,按需、高性价比地适应灵活多变的业务需求。最后,周老师还表达了自己对华为天津开发者的创新方法和未来探索的祝福。同时分享了使用华为云实验沙箱进行体验的方法。感兴趣的伙伴也可以点击链接进行体验。#快速入门数据仓库服务GaussDB(DWS) cid:link_0#体验GaussDB(DWS)云原生数仓-湖仓一体 cid:link_1#体验GaussDB(DWS)云原生数仓-存算分离 cid:link_2​本场活动还特别邀请到华为云全球生态部,资深技术专家刘震。刘老师也是冒着北方的寒冬,不远万里从深圳飞到天津。刘老师从数据治理的目标与挑战、数据治理案例分享以及数据治理展望与畅享的角度。让大家对数据治理有了初步的了解和认识,并推荐了《华为数据之道》这本书,方便大家进一步深度学习。​交流环节提问交流环节中,学生和在职开发者针对自己的实际情况,向演讲的嘉宾提出了许多关于专业知识、行业发展询问。比如,“作为在校大学生或刚刚就业,如何学习大数据以及数据治理,有什么建议?”华为云数仓GaussDB(DWS)架构师周孟韬先生建议,根据个人专业、兴趣、城市发展等方面做个人职场能力的简历梳理,同时提前了解市场对人才需求情况,可以通过参与一些创新中心及天津HCDG的活动去提升认知,并思考个人能为企业解决什么实际问题。在积极热烈的交流环境下,活动接近尾声,大家合影留念后还持续不断从技术应用、个人发展等角度继续交流。以打造“开发者生态赋能平台”“国家级转型试点平台”“人才培养示范平台”“生态运营服务平台”四大平台为先的华为(天津)开发者创新中心,华为云天津HCDG开发者社区组织,以自身在华为云的实践出发,了解并满足开发者诉求,扎根技术本身,共建创新应用。未来,天津HCDG将一同携手广大开发者,共同延续华为云开发者社区精神,共创更多领域新生态。
  • [集群管理] GaussDB(DWS)CES监控页面不显示
    【问题描述】 CES监控页面不显示【问题影响】 无【排查思路】两方面排查1、界面显示MO侧负责,可以先给MO侧间关联单排查(确认数据已经上报);2、数据上报DWS侧负责,同步先排查DWS侧节点数据上报是否有异常;【定位过程】 数据上报问题1、登CCN节点排查日志,查询/home/Ruby/log/ces/ces.log是否打印正常;1)若日志中有报错:The post request return code is:401,content is2)查看配置文件 /home/Ruby/InitCes.json 是否异常,和正常显示指标的集群节点进行比对,获取正确,ak,sk,替换即可;(案例:cid:link_1)3)若无正确AKSK,需要手动在后台轮转;(案例:cid:link_0)4)若guestAgent版本太低会手动轮转失败,需要升guestAgent;2、查看/home/Ruby/log/cloud-dws-do_checkperf.log是正常采集的;3、查看每个节点Ruby用户下定时任务是否丢失、被修改,定时任务脚本是否执行(主要关注以下两个);* * * * source /etc/profile;source ~/.bashrc; sh /rds/mgntAgent/v8.X.X_XXXX_XXXXX/dataReport.sh >/dev/null 2>&1*/4 * * * * source /etc/profile;source ~/.bashrc; nohup python3 /rds/datastore/dws/v8.X.X_XXXX_XXXXX/checkPerf.py >> /dev/null 2>&1 &4、定时任务若有问题,恢复需要crontab -e更改正确(参考好的节点),等一分钟,一分钟执行一次数据上报;
  • GaussDB(DWS)License容量显示和实际不符合
    【问题版本】HCS821 管控面810->811升级后【业务影响】界面显示不准【问题描述】OC有license超容告警,页面显示容量比实际多或少【问题根因】811前老版本就没有license,需要手动插入数据;【规避措施】情景一:多统计了400状态节点核数 :规避措施1:在rms数据库rds_instance表删除状态为400的实例数据;(此情况是多统计了400状态的,需要手动删除) 1).rms查询sql(包含400状态):select ifnull(sum(x.value), 0) from rds_cluster r join rds_cluster_spec s on r.clusterSpecId = s.id join rds_cluster_instance_resspec t on r.clusterSpecId =t.cluster_spec_id join rds_instance y on r.id = y.clusterId join rds_resspecattr x on t.instance_spec_id = x.specId where r.status in ('199', '200') and x.attrCode = 'cpu';2)先备份原表:create table rds_instance_xxxxxxxx select * from rds_instance; 3).删除状态为400 得:delete from rds_instance where clusterid='集群id' and status=400; 4).5min后检查license页面是否正常; 情景二:只显示了部分集群的核数,且license_used数据为空或缺少:规避措施2:在rms数据库license_used表插入实际所有集群节点总核数数据;(此情况是811前没有这个表,需要手动插入) 1).查询license_used表:select * from license_used; 2).查询所有非400状态集群,并计算实际核数: select id,name,status from rds_cluster where status!='400'; select y.name,y.status from rds_cluster r join rds_instance y on r.id=y.clusterid where r.id in ('集群id') and y.status!='400'; 3)先备份原表:create table license_used_xxxxxxxx select * from license_used; 4).插入数据:insert into license_used(cluster_id,cluster_status,cpu_count,node_cpu,data_used) values('集群id','200','集群节点总核数','单节点核数',''); 5).5min后检查license页面是否正常; 长期措施:建议用户租户面升级到和管控面版本适配的版本就可以了,后面就不会出这问题了;
  • [性能调优] SQL on other GaussDB怎么控制查询外表时,在目标端的sql执行并行度?
    通过SQL on other GaussDB的方式进行高斯数据库跨库数据同步,发现目标端的一个高斯外表查询语句会在源端启动24个并发查询。如果同时查询的数据量过多,有把cn的连接数占满的风险,想请教下怎么降低SQL on other GaussDB在源端查询的并发度
  • [环境搭建] 【集群部署】如何自定义安全环的分配
    背景:线下纯软集群部署时,因DWS没有机架感知策略、无法将安全环组内节点打散到不同机柜。客户现场是40台数据节点主机,每节点2个主dn,主机名为host111~host150,对应ip为x.x.x.111~x.x.x.150。111~120一个机柜(柜内从下往上顺序放置),其他三组一样。问题:1. 纯软部署时,安全环的分配流程是什么,每组安全环是按照什么逻辑去分配的,ip或主机名的字典排序么?              尝试将配置规划工具LLD的“IP规划与进程部署”中的IP打散,不依照host111~host150的顺序填充,生成的集群部署installTemplet.xml文件显示实例是IP打散后的情况,但安装集群完毕后查看实例拓扑信息,最终仍然是按照111~150的顺序配置的安全环,即111~113一组环、114~116一组环、117~119一组环...          2. 部署时,如何根据现服务器柜内部署情况,自定义安全环的分配即考虑反亲和性提升组网架构的高可用性。
  • [备份恢复] GaussDB(DWS)备份失败-备份文件写入介质侧失败
      【问题现象】  备份失败,报错write to compile failed! expected size xxxx, actual size 0!    【原因分析】出现该问题的可能原因如下:1. 备份介质空间占满,备份文件无法正常写入2. roach侧并发太大,导致备份介质负载大,备份报错【排查方法】步骤1:找任意节点查看备份内核日志,确认备份下发节点:沙箱内进行备份日志目录cd /DWS/manager/backup/log注:此目录为HC/HCS/HCSO集群自动备份日志目录,线下集群/后台调用备份命令日志路径:$GAUSSLOG/roach/agent。grep -i "Master IP:" *步骤2:登录备份下发节点确认首次备份/恢复报错节点:从本次备份开始搜索ERROR关键字,根据本次备份/恢复第一次报错,找到上报失败节点:步骤3:登录首次备份/恢复失败节点,查看备份/恢复失败原因从本次报错开始搜索ERROR关键字,确定备份/恢复失败原因:报错:write to compile failed! expected size xxxx, actual size 0!There is an error in storage media.怀疑是备份介质的问题,到对应的roach_client节点查看相应日志,通过grep "Success to connected Remote Media" roach_agent*.log,找到roach_client的ip地址,ssh到对应的roach_client节点,根据对应roach_client节点报错日志协调介质侧同时分析  【处理方法】1、检查备份介质剩余空间是否满足一次备份的空间需求,若空间不足先处理空间问题再重新拉起备份2、如果是并发问题,建议调大filesplit-size参数并减小parallel-process参数,重新拉起备份      
  • [备份恢复] GaussDB(DWS)细粒度恢复表失败-table is not found
    【问题现象】细粒度恢复表失败,报错table is not found,which has been dropped during backup【原因分析】出现该问题的可能原因如下:1. 目标表在备份过程中已经drop,并未备份到完整的表信息2. 后台调用恢复命令时待恢复的table_list文件书写异常导致表名未正确识别【排查方法】  步骤1:找任意节点查看备份内核日志,确认备份下发节点:沙箱内进行备份日志目录cd /DWS/manager/backup/log    注:此目录为HC/HCS/HCSO集群自动备份日志目录,线下集群/后台调用备份命令日志路径:$GAUSSLOG/roach/agent。grep -i "Master IP:" *步骤2:登录备份下发节点确认首次备份/恢复报错节点:从本次备份开始搜索ERROR关键字,根据本次备份/恢复第一次报错,找到上报失败节点:步骤3:登录首次备份/恢复失败节点,查看备份/恢复失败原因从本次报错开始搜索ERROR关键字,确定备份/恢复失败原因:找到对应报错:part ddl not restored success.restored table 95,expected 101.根据以上报错信息可知本次恢复期望恢复101张表,但是实际恢复只找到了95张表的ddl,通常是由于书写table_list文件时粘贴复制等其他操作导致文件中书写的列表多出一些空格或者制表符或者其他,恢复过程中部分表无法正常识别。【处理方法】1、检查table_list文件,删除多余空格、制表符等,保持文件的每一行为包含格式为<模式名称> .TableName的单个条目,确认table_list文件内容正确后重新拉起恢复      
  • [集群性能] GaussDB(DWS)业务报错:memory is temporarily unavailable
    【版本信息】所有版本【问题现象】业务报错:memory is temporarily unavailable【原因分析】出现该问题的原因主要是由于当前sql执行时,可用的动态内存不足,导致无法申请到足够的动态内存,触发报错。动态内存不足的常见场景如下:某个SQL占用内存高,导致其他sql内存不足,此时需要找到高内存sql进行业务优化内部空闲连接占用内存高,导致sql执行内存不足,此时需要清理空闲连接【处理方法】若问题持续存在,且当前仍在发生,可通过如下方式处理:步骤一:查看当前动态内存使用,找到动态内存占用高的实例Select a.nodename,a.memorymbytes as dynamic_used_memory,b.memorymbytes as max_dynamic_memory, dynamic_used_memory/max_dynamic_memory*100 as used_rate from pgxc_total_memory_detail a join pgxc_total_memory_detail b on a.nodename=b.nodename where a.memorytype = 'dynamic_used_memory' and b.memorytype = 'max_dynamic_memory' order by a.memorymbytes desc;步骤二:连接内存占用高的实例,查看语句内存占用情况,并拼接查杀命令,可根据查询结果应急查杀内存高的语句:select 'select pg_terminate_backend(' || pid || ');' , state, query_id, pg_size_pretty(totalsize) total, pg_size_pretty(freesize) free, pg_size_pretty(usedsize) used, sqlstr FROM (SELECT state, query_id, pid, sum(totalsize) totalsize, sum(freesize) freesize, sum(usedsize) usedsize, substr(query,1,100) sqlstr FROM pv_session_memory_detail, pg_stat_activity WHERE pid=split_part(sessid,'.',2) GROUP BY 1,2,3,7 ORDER BY 4 DESC);步骤三:连接内存占用高的实例,查看各线程memory context情况,并拼接查杀命令:select 'select pg_terminate_backend(' || split_part(sessid,'.',2) || ');', split_part(sessid,'.',2) pid,pg_size_pretty(sum(totalsize)) total_size,count(*) context_count from pv_session_memory_detail group by pid order by sum(totalsize) desc limit 100;步骤四:连接CN,清理空闲连接(不影响业务)select * from pgxc_clean_free_conn;若问题发生后当前不再出现,可以通过如下方法确认原因:步骤一: 登录报错节点,cd $GAUSSLOG/pg_log,找到报错实例,在日志中查看报错内容,出现memory temporarily unavailable的报错时,实例日志中会打印相关信息。根据报错的实例日志,在日志中搜索“abnormal”关键字找到当时内存使用最高的语句,找到对应的thread id,再根据thread id找到对应的query id(注意,非日志中的debug_query_id)。示例如下:示例中,实际占用内存高的语句为explain performance对应的语句,对应的queryid为76279718688746485,而非 76279718689098154----debug_query_id=76279718689098154, The abnormal query thread id 140664667547392.It current used memory is 13618 MB and estimated memory is 1102 MB.It also is the query which costs the maximum memory.----debug_query_id=76279718689098154, It is not the current session and beentry info : datid<16389>, app_name, query_id<76279718688746485>, tid<140664667547392>, lwtid<173496>, parent_tid<0>, thread_level<0>, query_string<explainperformance with ws as (select d_year AS ....>.步骤二:还可以根据历史topsql中max_peak_memory字段找到问题时间点内存占用高的语句:select * from pgxc_wlm_session_info where start_time > 'xxxx-xx-xx xx:xx:xx' and start_time < 'xxxx-xx-xx xx:xx:xx' order by max_peak_memory desc limit 100;【恢复确认】业务不再继续报错【参考信息】cid:link_0
  • [热门活动] 线下活动预告 | 华为云数仓专家带你玩转GaussDB(DWS)云原生数据仓库
    开发者们集合啦!期待与资深大佬深入探讨数仓技术?跃跃欲试与更多伙伴切磋代码,交流心得?求召唤行业前辈传授经验,助力职场打怪升级?天津HCDG开发者社区为您通通安排上!
  • [运维管理] 互信工具gs_sshexkey报错 PyInterpreterState_GetDict 
    【问题描述】互信工具gs_sshexkey报错 PyInterpreterState_GetDict 【问题原因】麒麟v10系统默认的Python版本为python3.7,而gs_sshexkey依赖于Python3.8 【规避方案】将Python版本升级到Python3.8.5后规避 
  • [其他] 主动预防配置项检查及参考文档
    DWS主动预防配置项检查内容及操作了解,详见附件,需要登录后下载
  • [热门活动] 获奖公示/////【直播预告+有奖提问】看直播提问题赢GaussDB(DWS)定制礼品~
    本次直播活动,获奖名单如下:抽奖类型本轮奖品姓名手机号第一轮口令抽奖GaussDB(DWS)定制帆布袋屈x兵181xxxx0293GaussDB(DWS)定制帆布袋x进178xxxx0784GaussDB(DWS)定制帆布袋黄x国136xxxx9903第二轮抽奖GaussDB(DWS)定制鼠标垫雷x港173xxxx7243直播间优质问题GaussDB(DWS)定制笔记本刘同学153xxxx9747 GaussDB(DWS)定制笔记本屈x兵181xxxx0293 【直播主题】数据高速公路—数仓集群通信技术详解【直播时间】2023年12月19日 16:30-18:00【直播简介】大数据时代,集群规模越来越大,业务并发越来越高,数据库集群各节点间的通信压力也越来越大。本期直播,将为您深入讲解GaussDB(DWS)集群通信技术,如何在大规模集群中承载高并发业务,如何实现高性能分布式通信系统。直播链接:cid:link_1活动介绍【互动方式】直播前您可以在本帖留下您疑惑的问题,专家会在直播时为您解答。直播后您可以继续在本帖留言,与专家互动交流。我们会在全部活动结束后对参与互动的用户进行评选。【活动时间】即日起—2023年12月22日【奖励说明】评奖规则:活动1:直播期间在直播间提出与直播内容相关的问题,被专家评选为优质问题的开发者进行奖励。奖品:GaussDB(DWS)定制笔记本套装活动2:在本帖提出与直播内容相关的问题,由专家在所有互动贴中选出最优问题贴的开发者进行奖励。奖品:GaussDB(DWS)定制笔记本套装更多直播活动直播互动有礼:官网直播间发口令“华为云数仓GaussDB(DWS) ”抽GaussDB(DWS)定制帆布袋、填写问卷抽GaussDB(DWS)定制鼠标垫等好礼。沙箱实验:完成沙箱实验,并在评论区留言体验截图,将有机会赢取GaussDB(DWS)定制礼品。【注意事项】1、所有参与活动的问题,如发现为复用他人内容或直播间中重复内容,则取消获奖资格。2、为保证您顺利领取活动奖品,请您在活动公示奖项后2个工作日内私信提前填写奖品收货信息,如您没有填写,视为自动放弃奖励。3、活动奖项公示时间截止2023年12月30日,如未反馈邮寄信息视为弃奖。本次活动奖品将于奖项公示后30个工作日内统一发出,请您耐心等待。4、活动期间同类子活动每个ID(同一姓名/电话/收货地址)只能获奖一次,若重复则中奖资格顺延至下一位合格开发者,仅一次顺延。5、如活动奖品出现没有库存的情况,华为云工作人员将会替换等价值的奖品,获奖者不同意此规则视为放弃奖品。
总条数:2746 到第
上滑加载中