• [其他] GaussDB(DWS)管控面之并发请求数量超过服务端限制提示DWS.0097
    【问题现象】        数据仓库服务->集群管理、容灾管理等页面 提示并发请求数量超过服务端限制 DWS.0097【常见版本】      8.2.0版本    【定位思路】    1、 日志对应定位信息 登录CDK master节点 执行以下命令列出dwscontroller容器列表。 kubectl get pods -n dws 进入DWS controller容器 kubectl exec -ti dwscontroller-xxx -n dws bash 进入容器中,默认在logs目录下,查看ossres-dws.log, 搜索日志DWS.0097有对应日志。 2、修改CDK参数配置去解决【解决方法】1、登录CDK界面,服务升级,选dwscontroller升级,搜maxConnectionPerTenant参数;2、检查dws-controller上maxConnectionPerTenant默认参数配置为20 ;3、将maxConnectionPerTenant的20修改成200,点击升级,完成后重启dws-controller容器让其生效。 
  • [其他] GaussDB(DWS)集群后台UDF进程异常二
    【问题现象】UDF未启动,会导致使用javaUDF报错;导致cm在频繁重启UDF进程的时候,产生大量日志,消耗大量inode,严重情况会导致磁盘慢。使用UDF出现报错,后台查看集群UDF进程发现进程异常。影响:重要不紧急。【排查方法】本帖通过简单示例介绍UDF进程异常的排查和处理方式,示例中用到的数据、路径配置、主机名等信息均为测试环境信息。首先,通过以下命令查看集群UDF进程状态:cm_ctl query -CvF结果如下:[ Fenced UDF State ] node state -------------------- 1 ASG003 Down 2 host17967 Down 3 host17995 Down发现UDF进程处于异常状态,查看cm_agent日志(在$GAUSSLOG/cm/cm_agent目录下)发现udf频繁拉起失败,内容如下:2023-04-25 14:54:03.850 tid=41015 StartStop LOG: FENCED UDF START system(command: /DWS/manager/app/bin/gaussdb --fenced -k /opt/huawei/Bigdata/mppdb/mppdb_tmp -D /DWS/manager/log/Ruby/cm/cm_agent --ud6 >> "/DWS/manager/log/Ruby/cm/cm_agent/system_call-2023-04-25_145402-current.log" 2>&1 &).通过查看UDF日志(在$GAUSSLOG/cm/cm_agent/pg_log/目录下)发现报错文件不存在,内容如下:经确认,此路径与cm配置文件中的unix_socket_directory参数配置有关。此路径为$PGHOST的绝对路径,云上应为:/opt/dws/tmp;云下应为:/opt/huawei/Bigdata/mppdb/mppdb_tmp。修改cm配置文件unix_socket_directory参数,(由于客户环境敏感,未尝试是否能通过kill cm_agent解决。)待客户重启集群后解决。
  • DWS恢复到新集群启动新集群出错
    启动命令python3 $GPHOME/script/GaussRoach.py -t start --restore-new-cluster -X /home/omm/cluster.xml
  • [其他] GaussDB(DWS)ECF常规排查方法
    【问题现象】            ecfclustermanager相关问题排查 【常见版本】      全版本    【排查方法】    1、 ECF容器登录 登录serviceOM, 查询EICommon-Region-Master虚拟机所在ip。 通过本地虚机跳转至region区CDK master节点 , 然后切换root用户。 ssh opsadmin@${region_cdk_master_ip} su - root 获取ecfclustermanager容器名称并登入。 kubectl get pods --all-namespaces -o wide kubectl exec -it ${NAME} -n ecf bash 2、ECF日志查看(主要看容器日志就行,搜索ERROR) 2.1日志路径(容器)/opt/cloud/3rdComponent/tomcat/logs/ossres-ecf.log 2.2日志路径(宿主机)/var/log/dws/controller/ossres-ecf.log 3、ECF数据库登录方式 3.1通过CDK查看数据库相关信息 登录CDK找到命名空间为ecf的namespace的ecfclustermanager服务(注意: ECF的有的版本在POD区,有些版本是在Region区,可以在POD区和Region区都找一下) 在参数信息中搜索db,搜索结果中db.username为数据库用户,db.password为数据库用户密码,  db.url中包含了包含了数据库IP、端口号、数据库名 db.password为数据库用户密码, 该密码是经过加密过的,需要通过dwsmaintaintool来进行解密,执行命令即可登录上数据库: mysql -h 数据库IP -u 数据库用户名 -P 数据库端口号 -D 数据库名 –p数据库密码 
  • [SQL] GaussDB(DWS)业务报错之perl调用gsql未返回正确的退出码
    问题背景业务perl脚本使用perl函数open一个文件通过管道符进行gsql调用,gsql \q 0正常退出后perl脚本退出后状态码为141,且perl脚本内无法捕获gsql退出状态码对应伪代码业务对应伪代码use strict;use warnings;my $database = "postgres";my $username = "username";my $password = "password";my $rc = open(infile,"|gsql -d ${database} -p 25308 -U $username -W $password -a -e -r");print infile<<ENDOFINPUT;drop table if exists t1;create table t1(id int,a int);insert into t1 values(1,1);select '1' from t1; \\if :row_count=1 \\q 0 \\endif...几千行注释加代码--->问题点所在ENDOFINPUTclose(infile);my $RET_CODE=$?;print "";print $RET_CODE;if($RET_CODE==0){ print 'true';}else{ print 'false';}执行脚本后 echo $?会显示141解决方案my $rc = open(infile,"|gsql -d ${database} -p 25308 -U $username -W $password -a -e -r");改为my $rc = open(infile,"|cat|gsql -d ${database} -p 25308 -U $username -W $password -a -e -r");(此处加了|cat)后执行正常perl可以捕获gsql正常退出码
  • [SQL] GaussDB(DWS)业务咨询之C函数传入一个数字返回字符串如何实现
    问题背景C函数传入一个数字返回字符串如何实现解决方案----------------------------------------cpp文件#include "postgres.h"#include "fmgr.h"#include <stdio.h>#include "utils/builtins.h"PG_MODULE_MAGIC;extern "C" Datum ISNUMBER(PG_FUNCTION_ARGS);PG_FUNCTION_INFO_V1(ISNUMBER);DatumISNUMBER (PG_FUNCTION_ARGS){ Datum num = PG_GETARG_DATUM(0); const char *inbuf=TextDatumGetCString(num); PG_RETURN_TEXT_P(cstring_to_text(inbuf));}---------------------------------------------------创建函数create or replace function isnumberb(text)returns textas '/home/omm/yyb/c/in/isnumber.so', 'ISNUMBER'language c strict fenced IMMUTABLE SHIPPABLE;CREATE FUNCTIONTime: 2298.165 ms---------------------------------------------------验证postgres=# select isnumberb('12'); isnumberb ----------- 12(1 row)Time: 3.460 mspostgres=# select isnumberb('123456789'); isnumberb ----------- 123456789
  • [SQL] GaussDB(DWS)业务报错之upsert对应列未更新
    问题背景业务使用upsert语句进行数据更新插入,对应字段未按实际情况进行更新问题原因业务insert into tablename后面未指定对应字段导致语句执行不符合预期,出现结果错误 ----------------------------------测试用例------------------------------------ 测试数据 1、创建目标表 create table t1(id int,a int,b int, c int,d int)distribute by hash(id); insert into t1 values(generate_series(1,3),generate_series(1,3),generate_series(1,3),generate_series(1,3),generate_series(1,3)); select * from t1 order by 1; id | a | b | c | d ----+----+----+----+---- 1 | 1 | 1 | 1 | 1 2 | 2 | 2 | 2 | 2 3 | 3 | 3 | 3 | 3 ALTER TABLE t1 ADD CONSTRAINT t1_id_a_b UNIQUE (id, a, b); 2、创建查询表 create table t2 (id int,a int,b int, c int,d int)distribute by hash(id); insert into t2 values(1,1,1,2,3); select * from t2; id | a | b | c | d ----+---+---+---+--- 1 | 1 | 1 | 2 | 3 3、业务语句 insert into t1 select id,a,b,d from t2 on conflict(id,a,b) do update set d=EXCLUDED.d; 4、执行结果(异常语句,d列被更新为空,实际应该为3) select * from t1 order by 1; id | a | b | c | d ----+----+----+----+---- 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 2 3 | 3 | 3 | 3 | 3 5、指定列后结果正常--insert into t1(id,a,b,d) insert into t1(id,a,b,d) select id,a,b,d from t2 on conflict(id,a,b) do update set d=EXCLUDED.d; select * from t1 order by 1; id | a | b | c | d ----+----+----+----+---- 1 | 1 | 1 | 1 | 3 2 | 2 | 2 | 2 | 2 3 | 3 | 3 | 3 | 3解决方案insert into tablename后面指定对应列避免出现结果错误。
  • [环境搭建] 关于异构数据库迁移数据膨胀压缩比例问题
    1.例如Oracle、TD、GP等异构数据库迁移时,数据同步至DWS后数据存储膨胀或压缩比大致是多少有没有大概的区间呢?2.和行列存、压缩比关系大吗?
  • [其他] 【DWS】【网络重传】CMA和CMS连接中断导致主备切换集群短暂不可用
    【问题现象】CMA和CMS连接中断导致主备切换集群短暂不可用【问题根因】裸机向交换机下发了限流配置,导致交换机突发丢包【问题排查】1.dws侧发生主备切换集群短暂不可用,查看CM日志,其中一个节点是cma和cms心跳超时,另外两个节点是实例状态上报超时,从而导致cms触发仲裁,主备切换;发现是由于cma和cms间的旧链接管道异常关闭了,重新连接之后恢复正常,集群主备切换后业务也正常;断开原因怀疑网络问题导致,排查网络,同时调整实例心跳超时时间instance_heartbeat_timeout=600s,尽量避免问题影响;2.部署gsar.sh脚本监控,排查是否网络问题;监控一天网络后分析结果,发现网络重传一直很高,判定网络链路问题(丢包/重传率 > 0.05%)3.交换机侧同事排查,发现对应设备的接口上存在限速配置,其限速为1gbps;4.查看对应聚合扣上的成员信息,发现日志内存在有成员口突发丢包记录;该日志表示接口流量存在突发,突发超过car的限速值时,会占用缓存,当缓存占用耗尽时,就会产生丢包。综上,可以确认是突发的流量超过了car的限速值,导致缓存消耗超过交换机本身缓存,初出现丢包。需要扩大car的限速值或者取消限速。【解决方案】1.现场instance_heartbeat_timeout为60s,已调整为600s降低问题出现概率;2.修改限速值或者取消限速策略,示例如下:修改car限速值:[huawei] traffic behavior bm[huawei] car cir x gbps[huawei] commit取消限速策略:[huawei] interface Eth-Trrunk124[huawei-Eth-Trunk124] undo traffic-policy bm-Eth-Trunk124 inbound[huawei-Eth-Trunk124] undo traffic-policy bm-Eth-Trunk124 outbound[huawei-Eth-Trunk124] commit
  • [SQL] GaussDB(DWS)业务咨询之C函数多文件编写
    问题背景由于业务函数功能复杂希望使用多个cpp文件编写函数易于后期管理解决方案以下为ISNUMBERA.cpp文件内容实现判断字符串是否为数字,isnumberB会进行调用 --------------------------------------------------ISNUMBERA.cpp文件 #include<cstring> #include "isNumberA.h" int ISNUMBERA (char *q) {     int len = strlen(q);     for (int i = 0; i < len; i++)     {         if (q[i] >= '0' && q[i] <= '9')         {             continue;         }         else         {             return 0;         }     }     return 1; }  --------------------------------------------------isNumberA.h文件 extern int ISNUMBERA (char *q);--------------------------------------------------ISNUMBERB文件  #include "postgres.h" #include "fmgr.h" #include "utils/builtins.h" #include "isNumberA.h"  PG_MODULE_MAGIC;  extern "C" Datum ISNUMBERB(PG_FUNCTION_ARGS); PG_FUNCTION_INFO_V1(ISNUMBERB); Datum ISNUMBERB (PG_FUNCTION_ARGS) {     Datum source = PG_GETARG_DATUM(0);     char *q = TextDatumGetCString(source);      int len = ISNUMBERA(q);         if (len==0)         {                 return 0;         }     return 1; }  --------------------------------------------------编译操作 生成动态库文件 g++ -fpic -c  isNumberA.cpp -I  $GAUSSHOME/include/postgresql/server/cfunction  g++ -fpic -c  isNumberB.cpp -I  $GAUSSHOME/include/postgresql/server/cfunction g++ -shared  -o  isNumberB.so  isNumberB.o isNumberA.o 创建函数 create or replace function isnumberb(text) returns integer as '/路径/isNumberB.so', 'ISNUMBERB' language c strict fenced IMMUTABLE SHIPPABLE; 总结从上面可以看到,被调用函数其实就是普通的C函数,按照C语法写就行了,主函数需要遵守DWS对应C函数语法规范,这部分可以参考官方文档C函数编写。编译上最终生成主函数动态库,先编译调用的函数文件,再编译主函数文件最后生成动态库文件。
  • [其他] 【通信】【连接报错】ERROR: canceling statement due to coordinator request
    【报错日志】ERROR: canceling statement due to coordinator request, thread that sends the signal is 281411362154816.(老版本可能没有后面这句下发signal信号的线程号日志)【报错含义】此报错意思是CN下发cancel信号中断,新版本日志会记录发送信号的线程号 thread that sends the signal is 281411362154816,收到信号后由281411362154816线程杀【可能原因&排查方法】首先了解清楚现场是否有超时查杀脚本之类工具,可以根据报错作业执行时间大体判断;1.直接执行ctrl C中止作业;日志:2.使用pg_cancel_backend中止线程,此类情况可以在cn日志中grep cancel 找到pg_cancel_backend操作定位;日志:3.日志中只报错cancel,上述排查都不存在,不知道是谁下发的cancel将业务中止了;此类情况比较特殊,老版本没有记录发送signal信号的线程号无法确定是谁下发的;新版本增加线程号后,针对该场景仍不能有效定位;针对此类找不到谁下发的cancel信号导致业务中止场景,版本计划加入更多日志定位,近期应该就会发补丁,后续补充定位效果。。。。
  • [开发应用] DWS是否支持BigDecimal
    如图所示,在使用尝试开发UDF时,返回值全为0,且报错, 请问DWS是否支持BigDecimal
  • [热门活动] 『2023年4月刊』GaussDB(DWS)社区月刊·Vol.1 | 大事发生,今天我们创刊啦!
    首期GaussDB(DWS)社区月刊隆重登场,在这里我们提供一站式资讯服务,包括产品动态、技术领域精华帖、实践案例、社区活动等等,让您不会错过任何热点信息。同时也欢迎大家热情回帖提出建议,可以说说本期月刊中哪些内容对您有帮助,也可以说说您还想看什么内容,我们会根据大家的建议和反馈不断优化社区月刊,提供更优质的内容服务。GaussDB(DWS)社区月刊·Vol.12023年4月📢产品动态GaussDB(DWS)始终秉持精益求精的态度,持续打磨更新我们的产品,致力于提供更高效的数据仓库服务。一起来看看4月GaussDB(DWS)有了哪些变化吧~🟥支持用户在控制台升级集群版本🟧支持通过GDS-kafka实例迁移Kafka数据🟨WebSql支持操作审计🟩数据库监控面板(DMS)支持多节点指标比对能力🟦支持在指定节点上添加CN✏️社区文章我们的开发者社区接收到了很多同学的热情投稿,从众多技术博文中我们精选出了6篇文章与大家分享,希望能对您的使用提供帮助。🔴《GaussDB(DWS)网络调度与隔离管控能力》🟠《GaussDB(DWS)网络流控与管控效果》🟡《GaussDB(DWS)关于sequence的那些事》🟢《主动预防-DWS关键工具安装确认》🔵《GaussDB(DWS)的query_band负载识别与应用》🟣《GaussDB(DWS)监控工具指南(一)作业级监控TopSQL》🧑🏻‍🏫小D讲堂GaussDB(DWS)智能问答小博士小D机器人开讲啦!小D机器人作为GaussDB(DWS)知识的聚合入口,致力于解决您在使用过程中遇到的问题。在此,小D特意精选出4月份的用户高频提问,解答并分享给大家。如果您遇到任何产品相关问题,欢迎随时向小D提问。在使用GaussDB(DWS)的过程中有任何建议也欢迎同我们反馈,我们将持续关注您的产品使用体验。您的每一次提问,都能帮助我们更好地为您服务。🗨️:查询账号是否被锁?cid:link_6:🗨️:GaussDB(DWS)数据库同时进数有锁表的风险吗?cid:link_22:​🗨️:如何查询死锁数?cid:link_14:​🗨️:数据库使用中,如何检测锁状态?https://support.huaweicloud.com/trouble-dws/dws_09_0054.html:​🗨️:常见的锁有哪几种?cid:link_23:​听说你还不知道小D机器人的使用方式?赶紧跟上,别掉队~ 📰社区动态【精彩活动回顾】🔶直播活动——从数仓发展史浅析数仓未来技术趋势3月22日,我们邀请到华为云数仓GaussDB(DWS)首席架构师曾凯,针对数据仓库的起源、演进过程、未来技术发展趋势做了深入讲解,和同学们一起漫游数仓发展的前世今生与未来,揭开数仓发展的神秘面纱。完整直播回放🔷直播活动——GaussDB(DWS)云原生数仓技术解析3月29日,我们邀请了华为云数仓GaussDB(DWS)首席技术专家王传廷,和同学们一同解密华为云新一代云数仓GaussDB(DWS)3.0的核心技术与划时代意义。一起看GaussDB(DWS)云原生架构之上,数仓的极致弹性、湖仓一体、数智融合和优异性能是如何呈现的。完整直播回放🔶『有奖征文』玩转PB级数仓GaussDB(DWS)1-2月,我们联合华为云开发者社区,共同推出 “玩转PB级数仓GaussDB(DWS)有奖征文活动”。面向开发者征集产品体验、实战、经验分享等文章,鼓励用户主动了解、体验华为云GaussDB(DWS)产品。点此查看获奖征文详情📖学习专区🔅GaussDB(DWS)产品免费试用想要体验GaussDB(DWS)的能力?想要测试GaussDB(DWS)数仓的优秀性能?想要快速入门数据仓库服务?所有愿望统统满足!我们为您打造了官方免费云上实验平台,在这里您可以一键创建数据仓库,实践和验证典型场景。对于数据库应用的开发者和使用者,实验手册提供每一步的详细指导,帮助您快速体验华为云数据仓库服务。实验官方入口,请戳🔅数据仓库工作级开发者认证专为数仓工程师打造,由GaussDB(DWS)数仓专家倾力打磨的专业认证课程——《数据仓库工作级开发者认证》现已上线!旨在为GaussDB(DWS)用户提供专业的能力指导和技术支持,通过理论+实操的方式,帮助您提升数仓专业技能。戳这里直达课程链接✍🏻感谢感谢社区内容的贡献者:@门前一棵葡萄树、@Arrow0lf、@上官寒雨、@幕后小黑爪(文章作者,排名不分先后)GaussDB(DWS)开发者社区欢迎您加入,与同行者一起互动探讨,分享更多数仓知识。
  • [其他] 后台查询oms状态,下面模块没有回显信息
    问题现象:查看oms 状态结果如图所示处理步骤:1.后台查询OMS状态,主备均abnormal,其他模块均异常2.现场手动拉起oms进程,oms状态normal,但其他组件模块全部不显示3.手动重启HA,故障依旧4.跟踪查询oms状态的脚本,发现最终调用的脚本是start_habin.sh5.测试环境执行start_habin.sh,对比/var/log/Bigdata/omm/oms/ha/runlog/ha.log6.对比日志,发现客户环境rcommcep文件报错7.stat rcommcep 提示权限拒绝8.omm用户检查 rcommcep 文件上层目录,发现一部分文件损坏9.root用户检查 rcommcep 文件上层目录,发现许多非GaussDB文件10.询问得知,客户安装过其他软件,导致文件损坏11.删除这些客户自己的文件,重启oms,恢复正常
  • [运维管理] GaussDB A 线下版本 audit_system_object 参数默认值12303 转换成二进制是10011001110怎么对应的22个二进制位?
    GaussDB A 线下版本 audit_system_object 参数默认值12303 转换成二进制是10011001110怎么对应的22个二进制位?
总条数:2746 到第
上滑加载中