• [热门活动] 【获奖公示】【12·12会员节-GaussDB】动手设计心仪“对象”
    数据仓库服务 GaussDB(DWS),提供即开即用、可扩展且完全托管的分析型在线数据库服务,为各行业PB级海量大数据分析提供有竞争力的解决方案。GaussDB数仓以其出众的分布式计算和存储能力广受用户青睐的同时,也特别着眼于数据备份容灾领域的创新和打磨。BI分析热门场景,双十二会员节,爆品4折火热抢购中!       【获奖名单公示】获奖小伙伴快快(ps:请在5个工作日内)私聊小助手,留下您的获奖地址吧~昵称楼层评论数奖品依旧廖凯248华为新款定制无线鼠标1个我就灬是我255华为新款定制双肩背包1个user_beifeng133旅行本套餐1个极客潇53旅行本套餐1个每天都要有进步23旅行本套餐1个建赟43旅行本套餐1个谭涟漪172数据线1根onestone62数据线1根起名字不好听72数据线1根xaikehou82数据线1根DWS店阁大学士31感谢参与孙小北91感谢参与多米诺的古牌111感谢参与是时候该有个昵称了121感谢参与每天都要有进步141感谢参与真爱无敌151感谢参与虚荣Vainglory161感谢参与linghz666181感谢参与云小白尚需努力191感谢参与AAAI201感谢参与每天都要有进步211感谢参与喇叭斯基221感谢参与付豪之家231感谢参与好久没出门100感谢参与                                 活动1:云学习,得好礼如此受用户青睐的产品,内有什么玄机,一起来华为云云学院学习【GaussDB(DWS)概述】课程了解GaussDB(DWS)产品架构/关键特性/技术指标/应用场景/产品功能学完课程怎么少得了随堂测试,对GaussDB(DWS)的爱,是时候展示真正的实力了,完成随堂测试的小伙伴在下方回复截图,即有机会赢取华为新款定制无线鼠标活动时间:即日起-12月31日参与步骤:1. 请前往华为云学院,学习【GaussDB(DWS)概述】课程,立即前往;2. 完成课程学习及随堂测试,晒出截图至本帖;奖项:1. 火箭人:按照打卡时间,TOP10完成课程打卡可获得华为视频会员1个月;4. 众望所归奖:在人气高的帖子中抽选3人,按照点赞排名获得华为新款定制无线鼠标1个/旅行本套餐1个/数据线1根。评奖规则:1. 火箭人:在华为云云学院完成【GaussDB(DWS)概述】课程学习并在本贴TOP10回帖2. 众望所归奖:活动结束后按照点赞数进行排序,TOP3获奖,TOP1:华为新款定制无线鼠标1个;TOP2:华为新款定制双肩背包1个;TOP3-6:旅行本套餐4个;TOP7-10:数据线4根;3. 获奖结果将在活动结束5个工作日内进行公示,所有奖品将在1月15日前发放;4. 同一奖项中奖用户不重复;奖品图片: 回帖格式:1、 截图中有华为云账号2、 截图中有课程整体进度3、分享学习感受样例:活动预告:看直播,奖狂撒直播主题:GaussDB(DWS)之数据库的对象设计直播简介:GaussDB(DWS)概述课程学习后,GaussDB(DWS)是不是更立体了在程序员的世界没有单身汪,手动设计心仪“对象”不是梦备注:添加微信小助手”GaussDBDWS”加入GaussDB(DWS)专家交流群,二维码如下:对了,小编忘记告诉大家,华为云GaussDB(DWS)公众号已经上线啦,这里会定期推送相关干货,扫描下方二维码即可关注~不论刮风下雨,我在这里等你,不见不散哦~~更多12.12社区活动请点击链接查看
  • [生态空间] 数智金融 使能创新,“2020华为数智金融论坛”在溪村成功举办
           11月26-27日,“2020华为数智金融论坛”在东莞松山湖溪村成功举办。此次论坛以“数智金融•使能创新”为主题,汇聚了来自全国金融界精英,共同探讨如何打造面向未来的数据智能平台,共话金融行业未来发展。       华为云人工智能领域总裁贾永利致欢迎辞,他表示:“我们以‘数智金融’为话题展开一次论坛,是希望在金融行业探讨数据及人工智能如何促进未来数字经济的发展。”华为云人工智能领域总裁贾永利◈ 科技发展和创新驱动,引领数智金融众所周知,金融行业作为全国经济发展的排头兵,在数字经济发展中起到了至关重要的作用。对此,贾永利表示,“在金融行业,如何把人工智能引入到合适的场景中,让人工智能来辅助专家,这对科技人员来说是全新的机会。”贾永利强调,华为公司希望为金融行业专家、合作伙伴提供思想碰撞的平台,围绕金融行业探讨如何面向未来进一步转型升级,共同探索技术与场景突破,构建面向未来的强大的、具有智慧的金融平台和系统产品。数字经济的蓬勃发展不仅推动了数字产业化,更促进了产业数字化。金融行业的转型离不开数据和人工智能科技发展和创新驱动。为了更好地服务好客户,华为中国政企金融业务部副总经理徐卫星分享了题为《“芯”中有“数”,云领未来》的主题演讲。他表示,“华为在积极联合生态合作伙伴,打造‘端到端’的全栈方案,共同推进生态繁荣。同时,华为希望与金融机构做更多联合创新,孵化新场景,打造新能力,让数据与人工智能等金融科技真正成为澎湃引擎,持续服务金融行业的数智化转型。”华为中国区金融系统部徐卫星迈入智能数据时代,多样性应用、海量数据、实时处理对数据平台提出新挑战,承载企业最核心高价值数据的数仓平台也在与时俱进,持续演进。华为云EI产品部李群分享了华为在数据领域的最新进展、创新及实践。他表示,华为通过构筑智能开放融合的智能数据平台,助力金融行业不断进行业务创新,释放更多的数据价值。李群强调,“华为在构筑全球最大的金融核心数仓的同时,也逐步构建了产品层面的核心竞争力,GaussDB(DWS)具备大、快、稳、融、易五个方面的关键能力,华为有信心和能力把GaussDB(DWS)做成世界级基础型软件。“华为云EI产品部李群数据是金融行业第一生产力,而数据和人工智能工具链的进一步高效协同将极大加速金融行业智能化的速度。对此,华为云EI产品部张松表示:“华为AI金融解决方案(数据使能、AI使能、图引擎和决策引擎等)使能金融行业智能化转型,华为希望与伙伴们共同为金融行业提供智慧动力。”华为云EI产品部张松华为云产品副总裁方国伟分享了金融领域领先的云解决方案,包括基于擎天架构、以应用为中心的云原生基础设施,适合金融企业的部署模式和高可用设计,并特别介绍了华为云金融专区,安全合规、高可用、高标准,满足金融行业高要求。华为云产品副总裁方国伟针对消费者面向2C业务,横跨研发、制造、采购、供应、销服一体,消费者BG数据与分析平台部架构师余强分享了华为消费者领域为什么建立数据湖,数据湖建设带来的价值以及经典案例。消费者BG数据与分析平台部架构师余强针对数字化转型的热点,华为云数据使能解决方案总经理马麟瑜分享了华为数据之道,介绍了华为自身数字化转型的实践,华为数据管理工作分两个阶段:第一阶段通过数据治理,实现数据清洁,提升财报准确与业务流打通;第二阶段通过建设数据底座、数据服务化,支撑数字化转型,最后分享了华为云数据使能解决方案DAYU,提供从咨询到落地的能力,助力客户实现数据驱动的数字化转型。华为云数据使能解决方案总经理马麟瑜◈ 携手同行,华为助力金融行业客户数智化转型到目前为止,已有很多金融机构选择与华为合作,在不同业务场景孵化出了更大的商业价值。通过强化数据使能建设,招商银行数据中心应用管理室主管田永江分享了招行在打造数据基础设施方面的实践,并介绍了与华为共同发起设立的新一代数据仓库GaussDB(DWS)联合创新实验室。招商银行数据中心应用管理室主管田永江中原银行数据银行部副总经理刘远东带来了中原银行在数字化转型中的一些思考,他表示,“未来银行数字化转型的目标是要改变银行的商业模式,通过数据内外部联邦化的合作,实现联邦价值的共担。”中原银行数据银行部副总经理刘远东此外,保险行业信息化也面临着升级换代的历史性机遇期,华通公司CEO黄坤介绍了华通基于华为云开发的新一代车险核心业务系统、新一代意健(非车险)核心业务系统、企业保险管理系统,以及基于华为DAYU平台开发的大数据平台,以此助力保险行业的信息化发展和业务拓展。他表示,伙伴们在进行数字化转型过程中,一定要选择好的平台,这样才能事半功倍。华通公司CEO 黄坤如今,数字化转型已经成为金融机构的共识,最大化发挥数据的价值成为数字化转型重要的支点。对此,宇信科技业务中心总监孙学明发表了《数智金融大有可为》主题演讲,分享了宇信科技在金融IT解决方案领域的相关实践。他表示,我们与华为已经达成初步共识,未来将聚焦大数据、云等领域,推出联合解决方案,希望与华为同行,共创未来,共享未来。宇信科技业务中心总监孙学明在数字经济飞速发展的今天,数据已经成为了新的生产要素,如何充分运用数据赋能业务、加速数据资产化,对金融行业数字化转型至关重要。对此,长亮科技VP&数据业务总经理辜敏分享了银行数字化转型路径,从业务数据化,数据资产化、资产服务化到服务业务化,层层剖析解读,助力银行打造数字化转型闭环。他表示,长亮科技致力于发挥自身在金融大数据领域强大的技术创新及应用实践方面的实力,与行业伙伴形成创新及发展合力,助力金融机构在数字化时代蓬勃发展。长亮科技VP&数据总经理辜敏数字经济时代,大数据技术作为新一轮科技革命和产业革命的核心驱动之一,推动了现代银行的经营和管理模式转变,文思海辉金融商业分析事业部杨悦分享了文思海辉在数字金融方面的经验,他表示,“希望未来能与华为有更多深远且富有成效的合作,一起把客户服务好”。文思海辉金融商业分析事业部杨悦“2020华为数智金融论坛”为金融界精英提供了一个深度交流的平台,展示了金融数智技术的最新进展,共同探讨了金融数智领域面临的挑战与机遇,通过与生态伙伴联合创新,为行业专家提供了深入了解数字化转型方向的全新思路。未来,选择与华为云携手,金融行业数智化转型之路将走得更稳更远,更从容。【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [系统培训] 【培训回顾汇总】华为云数仓GaussDB(DWS) 培训视频汇总
    本贴汇总了华为云数仓GaussDB(DWS)培训系列课程及直播回顾链接,欢迎大家围观,共同交流学习,学习材料见附件,文末有福利哦~:您也可以留言您想学习/了解的课程,后续有机会成为直播课程主题哦·~·培训主题培训简介直播时间回顾链接GaussDB(DWS)产品介绍本讲是第一场,聚焦介绍GaussDB(DWS)应用场景、关键特性与案例介绍、典型配置,让您初步了解GaussDB(DWS)是啥,有啥特性,有哪些成功案例等。2020年8月31日   14:00~17:30cid:link_6GaussDB(DWS)集群部署与管理本讲为您介绍华为云数仓GaussDB(DWS)集群网络规划,集群部署,部署完后的管理界面FI的基本功能,包括节点替换,扩容等。cid:link_7GaussDB(DWS) 数据库对象设计本讲从GaussDB(DWS)   数据库整体设计,对象命名规范,对象设计原则,Sql编写规则四个方面详细讲解了应用层如何用好数据仓库GaussDB(DWS) 2020年9月1日   14:00~18:00cid:link_8GaussDB(DWS) 数据迁移本讲主要讲述通过GDS和COPY工具进行物理数据的迁移,通过gs_dump/gs_resotre迁移元   数据,以及介绍GaussDB(DWS)的ETL工具,对Migration工具的使用简单说明。 cid:link_9GaussDB(DWS) SQL进阶及应用开发指南本讲分两部分,第一部分Sql进阶,详细讲解了GaussDB(DWS)的数据字典,数据类型,函数操作符,存储过程等,第二部分应用程序应用指南,从数据库驱动概念,基于ODBC/JDBC的应用程序开发。cid:link_10GaussDB(DWS)事务、锁机制管理本讲为您介绍华为云数仓GaussDB(DWS)   单机事务机制,分布式事务机制,锁机制,并介绍一般的锁问题定位防范,例如死锁问题。 2020年9月2日   14:00~18:00cid:link_11GaussDB(DWS)资源负载管理本讲为您介绍华为云数仓GaussDB(DWS)   多租户机制,资源管理及负载管理机制,让您了解多租户的基本概念及基本设置方法,了解资源负载的基本原理及并发管理机制,初步进行资源负载分析和配置cid:link_12GaussDB(DWS)性能调优本讲为您介绍华为云数仓GaussDB(DWS)   调优的基本理论、常见的SQL性能问题的定位手段和解决方案 cid:link_13GaussDB(DWS)安全与权限设计本讲围绕华为云数仓GaussDB(DWS)   数据安全的核心问题:谁能看?能看啥?看没看?依托分布式架构,逐层为您解答,透明加密,数据加密,三权分立,行列及控制,用户管理,私有用户等概念 cid:link_14GaussDB(DWS) 补丁、升级及扩容流程本讲主要介绍GaussDB(DWS)如何打补丁,升级及扩容,有哪些注意事项等。2020年9月3日   19:00~21:00cid:link_15GaussDB(DWS) 备份与恢复本讲主要讲了GaussDB(DWS)   的备份恢复工具Roach,介绍了其运作原理,操作命令,注意事项等。cid:link_16GaussDB(DWS) 日常巡检本讲介绍GaussDB(DWS)   日常巡检。 2020年9月4日   14:00~16:30cid:link_17GaussDB(DWS) 常见问题三板斧本讲为您总结了华为云数仓GaussDB(DWS)在集群,sql,内存方面的常见问题的定位思路及实际操作演练cid:link_18【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [其他] 【DWS】【安装】DWS裸机集群创建时因互信创建失败
    【问题现象】页面创建dws裸机集群失败。【分析过程】在页面确认BMS规格,登录数据库,获取集群创建jobId信息根据jobId在dwscontroller容器中ossres-dws.log文件获取集群创建的详细日志,查看错误信息为Init时失败登录失败的节点,检查/home/Ruby/log/cloud-dws-deploy.log;/home/root/log/createTrust.log文件中的报错信息,建互信时ssh报no route错误【解决方案】检查部署模式,使用高速网络通信的bms部署会因高速网络不通存在该问题,可能原因为在实例上的交换机vlan没放通导致,可由底层网络同事放通vlan即可
  • [其他] 【DWS】【告警】集群页面显示磁盘容量异常
    【问题现象】页面进入集群详情页面,磁盘容量显示NaN%异常。【问题版本】HCS 8.0.2 DWS 8.1.0.3【分析过程】登录DWS集群实例,使用df -h命令查询实例节点的真实磁盘容量登录DWSController容器查看/opt/cloud/3rdComponent/tomcat/webapps/rds/WEB-INF/classes/xml/dataStoreSpecSpecial/datastoreSpec_dws_HWS.xml,查看该规格的磁盘容量信息,xml文件中磁盘容量配置应该与df -h查询的真实磁盘总和容量相同【解决方案】该问题存在于DWS HCS版本中,对于本地盘规格存在一些规格磁盘容量大小配置错误的情况。在/opt/cloud/3rdComponent/tomcat/webapps/rds/WEB-INF/classes/xml/dataStoreSpecSpecial/datastoreSpec_dws_HWS.xml文件中修改磁盘容量信息为正确的值,重启tomcat可以规避,vi 打开xml文件 配置文件中搜索集群的规格进行修改:先查版本(比如 /8.1.0.3) 搜索规格名称,第一个为dn的值修改 localDiskSize ,修改值为节点总磁盘大小,换算成G(比如 4个盘一个5T,则为4*5*1024,则值为20480)搜索规格名称,第一个为cn的值同3修改 localDiskSize ,修改值为节点总磁盘大小,换算成G(比如 4个盘一个5T,则为4*5*1024,则值为20480)修改中需要注意dwscontrollerxxx是多活的,所有的(一般是两个)都需要修改,在bin目录下先sh shutdown.sh 关闭一个,验证修改一个后重启先 sh shutdown.sh然后再sh startup.sh,清除界面缓存并查看显示情况一个好了之后,同样的方式修改另一个,同时也可以F12 根据valume接口的中traceId中对应的dwscontroller容器进行判断
  • [其他] 【升级】GaussDB(DWS)低版本升级到8.0版本sequence问题处理
    当升级前巡检发现sequence在CN和GTM上不一致时,使用下文进行修复名称介绍(以下名称将在下文使用):N1: 第一个cn实例所在的节点G1:GTM主实例所在的节点prefixPath: 修复sequence所创建的一个临时目录,此数据库用户必须有对此目录的访问权限--执行以下文档时将N1和prefixPath替换为真实的路径1. 在N1节点创建此目录,并且进入到此目录mkdir prefixPath2. 获取所有数据库列表 gsql -p 25308 postgres -r -t -c "select datname from pg_database where datname not in ('template1', 'template0', 'template2', 'information_schema');" > datname.txt 3. 生成所有sequence名字cat datname.txt | while read LINE       doif [ -z "$LINE" ]; thenecho "skip"elsegsql -p 25308 $LINE -r -t  -c "SELECT current_database()||'.'|| ns.nspname||'.'|| c.relname|| '\00' FROM pg_catalog.pg_namespace ns, pg_catalog.pg_class c WHERE c.relnamespace = ns.oid and c.relkind = 'S' ORDER BY c.oid;" >seq_name.$LINEfi     done4 合并所有数据库的seqrm seq_name.allcat datname.txt | while read LINE       doif [ -z "$LINE" ]; thenecho "skip"elsecat seq_name.$LINE >> seq_name.allfi     done5. 整理seq_name.all 删除空行sed  -i '/^$/d' seq_name.all删除每行第一个空格sed -i 's/^ //g' seq_name.all6. 停止数据库集群的gtm主备实例(主备两个节点,若停不掉时kill,然后在stop,其中-n 后面指的是cm_ctl query -Cvd查出来的实例所在节点的编号)cm_ctl stop -n "" -D gtmpath_standbycm_ctl stop -n "" -D gtmpath_primary7. 在G1(GTM主)上获取sequence(cm_ctl query -Cvd | grep gtm 命令查看gtm的数据目录,默认一般路径在/opt/huawei/Bigdata/mppdb/gtm),然后将seq_gtm.txt以及gtm.head copy到N1的 prefixPath 目录sed -n '4,$p' (/opt/huawei/Bigdata/mppdb/gtm[此路径替换为真实路径])/gtm.control > seq_gtm.txthead -n 3 (/opt/huawei/Bigdata/mppdb/gtm[此路径替换为真实路径])/gtm.control > gtm.head8. 启动gtm主备cm_ctl start-n "" -D gtmpath_primarycm_ctl start -n "" -D gtmpath_standby9. 创建所需要的临时表(以下在使用gsql在postgres库执行)drop schema seq_schema_upgrade;create schema seq_schema_upgrade;drop table if exists seq_schema_upgrade.seq_store;create table seq_schema_upgrade.seq_store(seq_name text not null, cur_val text default '200000', start_value text default '1',increment_by text default '1',  min_value text default '1',  max_value text default '9223372036854775806',is_cycled_str text default 'f', is_called_str text default 'f', active text default '1');--store sequence from gtm_control file create table seq_schema_upgrade.seq_gtm(seq_name text not null, cur_val text default '200000', start_value text default '1',increment_by text default '1',  min_value text default '1',  max_value text default '9223372036854775806',is_cycled_str text default 'f', is_called_str text default 'f', active text default '1');--store sequence from coordinatorcreate table seq_schema_upgrade.seq_cn(seq_name text not null, cur_val text default '200000', start_value text default '1',increment_by text default '1',  min_value text default '1',  max_value text default '9223372036854775806',is_cycled_str text default 'f', is_called_str text default 'f', active text default '1');10. 分别将gtm.control和cn上的sequence导入到seq_schema_upgrade.seq_gtm和seq_schema_upgrade.seq_cn表(以下在使用gsql在postgres库执行)copy seq_schema_upgrade.seq_cn(seq_name) from 'prefixPath/seq_name.all' with (format 'csv', delimiter E'\t');copy seq_schema_upgrade.seq_gtm from 'prefixPath/seq_gtm.txt' with (format 'csv', delimiter E'\t');--注意:seq_schema_upgrade.seq_gtm中若有乱码sequence导致copy失败,则需要在seq_gtm.txt文件删掉乱码行,再行导入11. 在数据库中生成所有最新的sequence(以下在使用gsql在postgres库执行),check insert into seq_schema_upgrade.seq_store select gtm.* from seq_schema_upgrade.seq_gtm gtm, seq_schema_upgrade.seq_cn cn where gtm.seq_name = cn.seq_name;insert into seq_schema_upgrade.seq_store select cn.seq_name from seq_schema_upgrade.seq_cn cn where not exists (select seq_name from seq_schema_upgrade.seq_gtm gtm where cn.seq_name = gtm.seq_name);select count(cn.seq_name) from seq_schema_upgrade.seq_cn cn;select count(seq_store) from  seq_schema_upgrade.seq_store;--注意:此处需要检查 两个count总数是否相等copy seq_schema_upgrade.seq_store to 'prefixPath/seq_total.csv' with (format 'csv', delimiter E'\t');drop schema seq_schema_upgrade cascade;12. 生成最终的gtm.control信息(在N1节点的 prefixPath 下执行)head -n 3 gtm.head > gtm.controlcat seq_total.csv >> gtm.control13.停止数据库集群的gtm主备实例(主备两个节点,若停不掉时kill,然后在stop)cm_ctl stop -n "" -D gtmpath_standbycm_ctl stop -n "" -D gtmpath_primary14. 将生成的gtm.control文件copy到GTM的主备的各个实例路径下15. 启动gtm主备cm_ctl start -n "" -D gtmpath_primarycm_ctl start -n "" -D gtmpath_standby升级后若出现sequence值重复可以以下方法修复:1. 在对应的数据库上创建find_noe_seq函数2. 使用这个函数查询当前sequence最大值,输出的第二列值就是当前最大值3. select sequence_name,uuid  from seqName;4. 停止数据库的gtm主备5. 在gtm目录的gtm.sequence文件中根据uuid找到匹配的行,替换第二个字段,注意不要引入误将tab替换为空格,主备都要替换6. 启动数据库GTM主备实例--find_one_seq函数定义如下:create or replace procedure find_one_seq(dbname text, schmaname text, seq_name text)astablename   varchar(1000);columnname  varchar(1000);schemanname varchar(1000);        rel_oid     Oid;        adnum       int;cur_max_seq int;max_seq     int;start_value bigint;increment_by bigint;max_value bigint;min_value bigint;cache_value bigint;is_cycled  bool;is_cycled_str char(1);is_called  bool;is_called_str char(1);        type ref_cur_type is ref cursor;        my_cur ref_cur_type;              my_cur_seq_name ref_cur_type;        my_cur_rel_att_name ref_cur_type;        my_cur_max_seq_num ref_cur_type;my_seq_info ref_cur_type;        sqlstr varchar(1000);sqlstr2 varchar(2560);sqlstr3 varchar(2560);sqlstr4 varchar(2560);begin        max_seq = 1;        sqlstr='select adrelid, adnum from pg_attrdef where adsrc like ''%' || seq_name || '%''';        open my_cur_seq_name for sqlstr;        fetch my_cur_seq_name into rel_oid, adnum;        while my_cur_seq_name%found loop            -- dbms_output.put_line('-> ('||rel_oid || ' , ' || adnum || ')');            cur_max_seq = 0;sqlstr2  = 'select c.relname as tablename, a.attname, n.nspname as columname from pg_class c, pg_attribute a, pg_namespace n where c.relnamespace = n.oid and c.oid = a.attrelid and a.attrelid = ' || rel_oid || ' and a.attnum = ' || adnum || ';';open my_cur_rel_att_name for sqlstr2;fetch my_cur_rel_att_name into tablename, columnname, schemanname;while my_cur_rel_att_name%found loop--     dbms_output.put_line('-> ('|| tablename || ' , ' || columnname || ')');sqlstr3 = 'select max(' || columnname || ') from ' || schemanname || '.' ||tablename || ';';open my_cur_max_seq_num for sqlstr3;fetch my_cur_max_seq_num into cur_max_seq;    if (cur_max_seq > max_seq) then       max_seq = cur_max_seq;    end if;close my_cur_max_seq_num;     fetch my_cur_rel_att_name into tablename, columnname;end loop;close my_cur_rel_att_name;            fetch my_cur_seq_name into rel_oid, adnum;        end loop;        close my_cur_seq_name;-- dbms_output.put_line(seq_name || ' max value : ' || max_seq);sqlstr4 = 'select start_value, increment_by, max_value, min_value, cache_value, is_cycled, is_called from ' || schmaname || '.' || seq_name;open my_seq_info for sqlstr4;fetch my_seq_info into start_value, increment_by, max_value, min_value, cache_value, is_cycled, is_called;while my_seq_info%found loop if (is_cycled) thenis_cycled_str = 't';elseis_cycled_str = 'f';end if;is_called_str = 't';max_seq = max_seq + 20000;    dbms_output.put_line(dbname || '.'|| schmaname || '.' ||seq_name || '\00' || E'\t' || max_seq || E'\t' || start_value || E'\t' || increment_by || E'\t' || min_value || E'\t'|| max_value || E'\t' || is_cycled_str || E'\t' || is_called_str || E'\t' || '1');fetch my_seq_info into start_value, increment_by, max_value, min_value, cache_value, is_cycled, is_called;   end loop;close my_seq_info;end;/
  • [其他] 【总结】DWS三权分立
    默认权限机制和系统管理员两节的描述基于的是集群创建之初的默认情况。从前面的介绍可以看出,默认情况下拥有SYSADMIN属性的系统管理员,具备系统最高权限。在实际业务管理中,为了避免系统管理员拥有过度集中的权利带来高风险,可以设置三权分立,将系统管理员的权限分立给安全管理员和审计管理员。三权分立后,系统管理员将不再具有CREATEROLE属性(安全管理员)和AUDITADMIN属性(审计管理员)能力。即不再拥有创建角色和用户的权限,并不再拥有查看和维护数据库审计日志的权限。关于CREATEROLE属性和AUDITADMIN属性的更多信息请参考CREATE ROLE。三权分立后,系统管理员只会对自己作为所有者的对象有权限。初始用户的权限不受三权分立设置影响。因此建议仅将此初始用户作为DBA管理用途,而非业务应用。三权分立的设置办法为:将参数enableSeparationOfDuty设置为on。三权分立前的权限详情及三权分立后的权限变化,请分别参见表1和表2。表1 默认的用户权限对象名称初始用户(id为10)系统管理员安全管理员审计管理员普通用户表空间具有除私有用户表对象访问权限外,所有的权限。对表空间有创建、修改、删除、访问、分配操作的权限。不具有对表空间进行创建、修改、删除、分配的权限,访问需要被赋权。表对所有表有所有的权限。仅对自己的表有所有的权限,对其他用户的表无权限。索引可以在所有的表上建立索引。仅可以在自己的表上建立索引。模式对所有模式有所有的权限。仅对自己的模式有所有的权限,对其他用户的模式无权限。函数对所有的函数有所有的权限。仅对自己的函数有所有的权限,对其他用户放在public这个公共模式下的函数有调用的权限,对其他用户放在其他模式下的函数无权限。自定义视图对所有的视图有所有的权限。仅对自己的视图有所有的权限,对其他用户的视图无权限。系统表和系统视图可以查看所有系统表和视图。只可以查看部分系统表和视图。详细请参见系统表和系统视图。表2 三权分立较非三权分立权限变化说明对象名称初始用户(id为10)系统管理员安全管理员审计管理员普通用户表空间无变化。依然具有除私有用户表对象访问权限外,所有的权限。无变化无变化。表权限缩小。只对自己的表有所有权限,对其他用户放在属于各自模式下的表无权限。无变化。索引权限缩小。只可以在自己的表上建立索引。无变化。模式权限缩小。只对自己的模式有所有的权限,对其他用户的模式无权限。无变化。函数权限缩小。只对自己的函数有所有的权限,对其他用户放在属于各自模式下的函数无权限。无变化。自定义视图权限缩小。只对自己的视图及其他用户放在public模式下的视图有所有的权限,对其他用户放在属于各自模式下的视图无权限。无变化。系统表和系统视图无变化。无变化。无变化。无权查看任何系统表和视图。
  • [其他] 【总结】【锁】DWS锁管理参数
    deadlock_timeout参数说明:设置死锁超时检测时间,以毫秒为单位。当申请的锁超过设定值时,系统会检查是否产生了死锁。死锁的检查代价是比较高的,服务器不会在每次等待锁的时候都运行这个过程。在系统运行过程中死锁是不经常出现的,因此在检查死锁前只需等待一个相对较短的时间。增加这个值就减少了无用的死锁检查浪费的时间,但是会减慢真正的死锁错误报告的速度。在一个负载过重的服务器上,用户可能需要增大它。这个值的设置应该超过事务持续时间,这样就可以减少在锁释放之前就开始死锁检查的问题。设置log_lock_waits时,这个选项也决定了在一个日志消息发出关于锁等待以前要等待的时间。当需要调查锁延迟时,请设置比正常deadlock_timeout更小的值。该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。取值范围:整型,1~2147483647,单位为毫秒(ms)。默认值:1slockwait_timeout参数说明:控制单个锁的最长等待时间。当申请的锁等待时间超过设定值时,系统会报错。该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。取值范围:整型,0 ~ INT_MAX,单位为毫秒(ms)。默认值:20minupdate_lockwait_timeout参数说明:允许并发更新参数开启情况下,该参数控制并发更新同一行时单个锁的最长等待时间。当申请的锁等待时间超过设定值时,系统会报错。该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。取值范围:整型,0 ~ INT_MAX,单位为毫秒(ms)。默认值:2minmax_locks_per_transaction参数说明:控制每个事务能够得到的平均的对象锁的数量。共享的锁表的大小是以假设任意时刻最多只有max_locks_per_transaction*(max_connections+max_prepared_transactions) 个独立的对象需要被锁住为基础进行计算的。不超过设定数量的多个对象可以在任一时刻同时被锁定。当在一个事务里面修改很多不同的表时,可能需要提高这个默认数值。只能在数据库启动的时候设置。增大这个参数可能导致GaussDB A请求更多的System V共享内存,有可能超过操作系统的缺省配置。当运行备机时,请将此参数设置不小于主机上的值,否则,在备机上查询操作不会被允许。该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。取值范围:整型,10 ~ INT_MAX默认值:256max_pred_locks_per_transaction参数说明:控制每个事务允许断定锁的最大数量,是一个平均值。共享的断定锁表的大小是以假设任意时刻最多只有max_pred_locks_per_transaction*(max_connections+max_prepared_transactions) 个独立的对象需要被锁住为基础进行计算的。不超过设定数量的多个对象可以在任一时刻同时被锁定。当在一个事务里面修改很多不同的表时,可能需要提高这个默认数值。只能在服务器启动的时候设置。增大这个参数可能导致GaussDB A请求更多的System V共享内存,有可能超过操作系统的缺省配置。该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。取值范围:整型,10 ~ INT_MAX默认值:64gs_clean_timeout参数说明:控制Coordinator周期性调用gs_clean工具的时间,是一个平均值。GaussDB A数据库中事务处理使用的是两阶段提交的方法,当有两阶段事务残留时,该事务通常会拿着表级锁,导致其它连接无法加锁,此时需要调用gs_clean工具对集群中两阶段事务进行清理,gs_clean_timeout是控制Coordinator周期性调用gs_clean的时间。增大这个参数可能导致GaussDB A周期性调用gs_clean工具的时间延长,导致两阶段事务清理时间延长。该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。取值范围:整型,0 ~ INT_MAX / 1000,单位为秒(s)。默认值:5minpartition_lock_upgrade_timeout参数说明:分区上的锁级别由允许读的ExclusiveLock升级到读写阻塞的AccessExclusiveLock时,会进行尝试性的锁升级,partition_lock_upgrade_timeout指示了尝试锁升级的超时时间。在分区表上进行MERGE PARTITION和CLUSTER PARTITION操作时,都利用了临时表进行数据重排和文件交换,为了最大程度提高分区上的操作并发度,在数据重排阶段给相关分区加锁ExclusiveLock,在文件交换阶段加锁AccessExclusiveLock。常规加锁方式是等待加锁,直到加锁成功,或者等待时间超过lockwait_timeout发生超时失败。在分区表上进行MERGE PARTITION或CLUSTER PARTITION操作时,进入文件交换阶段需要申请加锁AccessExclusiveLock,加锁方式是尝试性加锁,加锁成功了则立即返回,不成功则等待50ms后继续下次尝试,加锁超时时间使用会话级设置参数partition_lock_upgrade_timeout。特殊值:若partition_lock_upgrade_timeout取值-1,表示无限等待,即不停的尝试锁升级,直到加锁成功。该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。取值范围:整型,最小值-1,最大值3000,单位为秒(s)。默认值:1800fault_mon_timeout参数说明:轻量级死锁检测周期。该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。取值范围:整型,最小值1,最大值1440,单位为分钟(min)默认值:5minenable_online_ddl_waitlock参数说明:控制DDL是否会阻塞等待pg_advisory_lock/pgxc_lock_for_backup等集群锁。主要用于OM在线操作场景,不建议用户设置。该参数属于SIGHUP类型参数,参考表1中对应设置方法进行设置。取值范围:布尔型on表示开启。off表示关闭。默认值:off
  • [其他] 【磁盘空间】xlog积压引起磁盘满(二)之CN复制槽
    【问题描述】cn实例xlog积压至72G【问题分析&&解决】1、使用pg_controldata查看checkpoint点(Time of latest checkpoint时间点为最近半个小时则为正常):2、查看异常cn复制槽异常(正常CN实例上无复制槽)select * from pg_get_replication_slots();3、手动删除该复制槽进行恢复select pg_drop_replication_slot('');4、查看对应实例日志,xlog回收关键日志如下:5、wal_keep_segments参数为129,代表保留最小xlog文件数量,根据关键日志1400000000D4之前的日志均成功回收,最新日志为150000000056,剩余日志数据刚好为129
  • [其他] 【总结】集群长时间catchup(三)之带索引导入、delete表、频繁update、truncate
    【问题描述】业务变慢,查看集群状态多对实例处于catchup状态也可以连接CN查看以下视图:select * from pgxc_get_senders_catchup_time();【机制说明】产生catchup原因一般都是由于某些业务在短时间内产生较多xlog文件,主备同步不及时,此时主备同步有排队情况影响事务提交导致业务出现比较卡的现象。造成该问题主要有带索引导入、频繁delete、频繁truncate、update导致,此时需要解析xlog查看对应操作以及相关业务表。对于此类问题我们主要任务是通过解析xlog找出对应表让业务侧沟通进行整改。【问题分析】1、进入某一catchup实例路径,使用pg_xlogdump解析其中一个xlog文件带索引导入场景:频繁delete或delete整张表场景:2、通过解析xlog当中database与表对应OID解析该表所在库以及对应表名,以便业务侧排查对应库与表OID如上红框所示,连接对应DN通过以下命令查到该表对应数据库、schema与表名select * from pg_database where oid = xxxx;select * from pg_class where relfilenode = xxxx; select * from pg_namespace where oid = xxxx注:若确定进入库没有问题,对应表在pg_partition或pg_class中都找不到,说明该表被删除或正在创建事务还未提交可执行以下命令后查询(该只读事务在退出当前会话后会自动回滚):start transaction read only;set enable_show_any_tuples = true;set enable_indexscan = off;set enable_bitmapscan = off;3、查看该表定义发现确实为带索引表【问题结论&&建议】1、带索引表入库产生大量xlog日志同步不及时导致catchup,影响事务提交引起业务卡。2、建议入库前删除索引,入库完成后进行索引重建。3、业务侧尽量避免对单张表进行频繁update、delete、truncate操作。
  • [技术干货] [GaussDB for Redis]Info命令使用简介
    GaussDB for Redis提供Info命令查询系统内部的一些统计信息,使用方法为:通过redis-cli登录proxy,执行如下命令即可。info Latency cmd: 打印某个cmd的执行信息,包括执行次数,时间。支持的cmd参数有:“all”,“get”,“lindex”,“lpush”,“sadd”,“set”,“spop”,“xadd”,“xread”,“zadd”,“zrem”info ServerLatency serverName [cmd]: 打印特定server的命令统计信息info SystemResource: 打印系统级参数,内存使用量,cpu使用等info stats: 打印服务的状态,包括接受的连接数,总请求数,流量等info servers: 打印各个server(shard)的信息,包括name,请求数等info LatencyMonitor: 执行监控命令的执行信息info route: 打印路由信息info proxy | server: 打印proxy参数信息,包括version,name等info [all]: 打印上述3,4,5,6,8的信息
  • [其他] 【启停】GaussDB(DWS)集群启停(机器下电场景)
    1.1      停止集群步骤 1  停止集群之前使用omm用户登录CN节点,连接数据库打checkpoint点:source /opt/huawei/Bigdata/mppdb/.mppdbgs_profilegsql -d postgres -p 25308 -rCHECKPOINT;步骤 2  登录Manager界面,单击集群名称后的…,单击“停止”,等待界面提示“操作成功”,单击“完成”,集群停止运行。步骤 3  以omm用户登录主管理节点执行如下命令停止主OMS:sh ${BIGDATA_HOME}/om-server/om/sbin/stop-oms.sh显示以下信息表示成功停止OMS。stop HA successfully.说明:管理节点主备倒换大约需要3分钟。步骤 4   以omm用户登录备管理节点执行如下命令停止备OMS:sh ${BIGDATA_HOME}/om-server/om/sbin/stop-oms.sh显示以下信息表示成功停止OMS。stop HA successfully.步骤 5   下电服务器。1.2      启动集群步骤 1 服务器正常上电。步骤 2 以omm用户登录主管理节点执行如下命令启动主OMS:sh ${BIGDATA_HOME}/om-server/om/sbin/start-oms.sh显示以下信息表示成功启动OMS。Warning: HA monitor has been running already.start HA successfully.步骤 3 以omm用户登录备管理节点执行如下命令启动备OMS:       sh ${BIGDATA_HOME}/om-server/om/sbin/start-oms.sh显示以下信息表示成功启动OMS。Warning: HA monitor has been running already.start HA successfully.步骤 4 登录Manager界面启动集群,进行集群功能验证。
  • [其他] 【启停】GaussDB(DWS)集群启停(机器不下电场景)
    1.1      停止集群步骤 1  以omm用户登录CN节点;步骤 2  连接数据库打checkpoint检查点:source /opt/huawei/Bigdata/mppdb/.mppdbgs_profilegsql -d postgres -p 25308 -rCHECKPOINT;步骤 3  执行集群停止命令。source /opt/huawei/Bigdata/mppdb/.mppdbgs_profilegs_om -t stop1.2      启动集群步骤 1  以omm用户登录CN节点;步骤 2  执行集群启动命令。source /opt/huawei/Bigdata/mppdb/.mppdbgs_profilegs_om -t start
  • [其他] 【总结】【roach】roach备份失败案例总结(一)
    【背景介绍】     GaussDB支持集群级别物理备份,使用roach备份工具,支持集群级别全量备份/恢复、增量备份/恢复、表级逻辑备份/恢复。支持将备份集备份到本地disk,同时也能够将备份集备份到NBU、OBS、爱数等第三方存储介质。    Roach备份过程中会在每个节点拉起agent进程备份各自节点数据,执行节点会有master节点给各节点发送指令,同时若其中一个agent节点报错后会将错误信息上报至执行主节点进行处理。【问题描述&&分析】发起增量备份报错如下(备份到OBS存储介质):根据报错提示190节点报错引起备份失败,在190节点$GAUSSLOG/roach路径下,查看roach报错如下:在此能够判断在与OBS服务器交互时长时间未响应导致整个备份失败,重试后备份成功。NAS/nfs备份:https://bbs.huaweicloud.com/forum/thread-81751-1-1.html
  • [其他] 【安装】安装MPP集群preinstall时报core错误
    问题:安装MPP集群,在preinstall时报以下错误Failed to check os paramoters.core_pattern file can not use abrt-hook-ccpp to dump core.解决方法:查询/proc/sys/kernel/core_pattern文件内容,echo一份正常集群节点的该文件内容到报错的节点的该文件内。
总条数:2746 到第 页
上滑加载中