• [活动公告] 【主贴有奖互动】妙笔生花有奖征文活动火热进行中,超多好礼等您来拿~
    传送门>>>点击进入活动主页活动主题:【妙笔生花有奖征文】——我的华为云数仓之旅活动时间:2021.3.26—4.30 23:59活动介绍:      为了让各位开发者们分享数仓学习的经验和心得,构建开放式的华为云数仓开发者知识共享和学术创新平台,让大家共同交流成长,特举办妙笔生花有奖征文活动,您可以和我们分享开发道路上的实践经验、技术干货、开发技能、学习心得等参与本次征文活动,更有华为云定制无线鼠标、定制T-shirt、卫衣、会员权益多重好礼等你来拿,活动即刻开启,凡在本主题帖中留言、盖楼、投稿用户均可参与抽奖哦~各位开发者朋友们,快快投稿吧!活动流程:征集期(3.26-4.21)→预选&投稿期(截止4.23)→评审反馈期&获奖名单公示(截止4.30)参与方式:(盖楼、留言、分享、投稿等多种互动方式)>>点我前往互动主题帖<<(互动一定要点击链接前往主题帖,本帖回复无效!!!)   评奖方式:妙笔生花奖*10:(博文评审质量最优的前10名博文作者)奖     品:华为云定制无线鼠标评奖规则:经评审后,博文评审质量最优的前10名博文作者。互动奖*20:(以上互动方式任选一种或多种参与)奖     品:华为云定制T-shirt或稻壳儿15天会员(海量PPT、表格、文档、图文模板全免费)评奖规则:参与华为云社区互动即有机会抽取(奖品随机)。惊喜奖*5:(分享活动海报反馈截图至公众号后台的粉丝)奖     品:华为云定制卫衣或沪江网校30天会员权益(包含5国外语、职场技能、生活兴趣,一卡畅学)评奖规则:分享活动海报至朋友圈且反馈截图的公众号粉丝均有机会抽取。(奖品随机)。▶  文章结构建议:1、文字精练:通过严谨和专业的文字进行文章整理,无错别字; 2、思路清晰:观点输出准确,语句通顺,让整篇文章逻辑清晰; 3、结构工整:建议文中用标题进行分割,可使文章结构分明,排版工整;4、图文并茂:“一图胜千言”,在文中配图,可以让文章内容更加丰富哦; 5、引人入胜:文章标题、内容具有吸引力,抓人眼球,文采好,可作为加分项哦。大家快快参与吧,加油!注意事项:1、博文需是投稿人原创作品,不可代投他人作品,文章内容通畅,此为外站投稿,文章请保护客户信息。2、参加征文活动的文章作者拥有著作权,华为云拥有使用权。3、每个ID只能参与一次评选,同一ID不可重复中奖。(以最高奖励为准);4、本次回帖内容需满足华为云论坛发帖规范 https://bbs.huaweicloud.com/forum/thread-23077-1-1.html;5、 本活动最终解释权归华为云数仓GaussDB(DWS)所有。6、“惊喜奖”活动结束后获奖人员将在公众号公示。*如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:huaweicloud.bbs@huawei.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,并取消活动评奖资格。Ps:本次活动内部员工+外部用户均可参与,欢迎大家投稿参与活动哦~等等,以下还为大家提供了丰富的学习资料,大家可以参考学习哦↓↓↓【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓传送门>>>点击进入活动主页
  • [业务动态] 华为认证GaussDB OLTP数据库高级工程师培训HCIP-GaussDB-OLTP V1.5(中文版)上线通知
    华为认证GaussDB OLTP数据库高级工程师培训HCIP-GaussDB-OLTP V1.5(中文版)自2021年3月25日于华为云学院正式上线,详情请点击查看华为云学院职业认证页面https://edu.huaweicloud.com/training/gdbmse.html 。1.     发布概述HCIP-GaussDB-OLTP V1.5定位于培养和认证具备华为GaussDB(for MySQL)数据库二次开发和管理能力的高级工程师。通过HCIP-GaussDB-OLTP V1.5认证,您将掌握GaussDB(for MySQL)数据库基础理论、SQL高阶语法、GaussDB(for MySQL)配套云服务使用、GaussDB(for MySQL)数据库日常操作、GaussDB(for MySQL)数据库的安全管理、云DBA智能运维和GaussDB(for MySQL)数据库性能调优以及了解GaussDB(for MySQL)数据库的高级特性,将具备云上数据库管理和运维、云数据库性能调优、云上数据库应用开发等能力,能够胜任云数据库应用开发及云DBA岗位。2.     培训配套材料介绍华为认证HCIP-GaussDB-OLTP V1.5培训配套材料如下,均已同步至华为云学院职业认证页面,详情请点击查看https://edu.huaweicloud.com/training/gdbmse.html :《HCIP-GaussDB-OLTP V1.5 考试大纲》《HCIP-GaussDB-OLTP V1.5 培训教材》《HCIP-GaussDB-OLTP V1.5 实验手册》《HCIP-GaussDB-OLTP V1.5 模拟试题》《HCIP-GaussDB-OLTP V1.5 在线学习课程》3.     培训说明3.1      培训教材HCIP-GaussDB-OLTP V1.5培训教材包含:知识点V1.0V1.5变更说明1       GaussDB OLTP概述5%10%增加云上GaussDB(for MySQL)数据库介绍,包括架构、原理和配套工具,占100%;删除线下GaussDB OLTP数据介绍,占100%;2       数据库环境搭建5%0%删除线下搭建内容,占100%;3       SQL语法进阶5%10%优化SQL语法、函数、存储过程,占100%;删除数据类型、表达式,占40%;4       数据库日常操作0%20%增加云服务基本知识,备份恢复,数据库日常监控,扩容,占50%;优化实例管理,连接管理,用户管理,对象管理,占50%;5       数据库管理30%0%删除数据库管理内容,占100%;6       数据库运维与调优30%0%拆分为云DBA智能运维和数据库性能调优,占100%;7       云DBA智能运维0%20%增加云上数据库云DBA的智能运维操作,占100%;8       数据库性能调优0%20%增加存储引擎相关介绍,占30%;优化对象优化、执行计划,占70%;9       数据库安全管理5%10%增加数据隔离、安全参数配置,占30%;优化安全审计、访问控制、权限管理,占70%;删除线下数据库相关说明,占30%;10    数据库高可用特性5%0%删除高可用特性内容,占100%;11    数据库高级特性0%6%增加GaussDB(for MySQL)云上数据库高级特性说明,占100%;12    分布式数据库Sharding15%0%删除分布式数据库内容,占100%;13    华为云GaussDB OLTP解决方案0%4%增加华为云GaussDB(for MySQL)数据库案例介绍,占100%;3.2      实验手册HCIP-GaussDB-OLTP V1.5实验手册包含:知识点V1.0V1.5变更说明1       环境搭建实验5%5%增加了GaussDB(for MySQL)云数据库搭建指南,占100%;删除线下GaussDB数据库环境搭建,占100%;2       SQL语法实验5%5%优化了SQL实验手册,占100%;3       数据库管理实验30%0%替换为数据库日常操作实验,占100%;4       数据库日常操作实验0%20%删除了文件、存储实验,占30%;优化了云数据库日常操作实验,占100%;5       数据库运维与调优实验30%0%替换为云DBA智能运维实验和数据库性能调优实验,占100%;6       云DBA智能运维实验0%20%增加了云数据库DBA智能运维实验,占100%;7       数据库性能调优实验0%20%优化了性能调优实验,占100%;8       数据库安全管理实验5%10%优化了云数据库安全管理,占100%;9       数据库高可用特性实验5%0%删除数据库该可用特性内容,占100%;10    分布式数据库Sharding实验10%0%删除分布式数据库实验内容,占100%11    综合实验10%20%优化了综合实验,占100%;4.     考试说明HCIP-GaussDB-OLTP V1.5认证笔试考试预约网址:https://www.pearsonvue.com.cn/Huawei。HCIP-GaussDB-OLTP V1.0认证考试预计将于2021年7月1日下线,请广大考生提前做好学习、培训和考试安排。认证名称考试代码考试名称版本考试地点考试时长通过分数/总分HCIP-GaussDB-OLTP V1.5H13-921HCIP-GaussDB-OLTPV1.5Pearson VUE90 min600/1000华为云学院2021年3月26日
  • [热门活动] 【有奖互动】妙笔生花有奖征文活动火热进行中,超多好礼等您来拿~
    活动主题:【妙笔生花有奖征文】——我的华为云数仓之旅活动时间:2021.3.26—4.30 23:59活动介绍:      为了让各位开发者们分享数仓学习的经验和心得,构建开放式的华为云数仓开发者知识共享和学术创新平台,让大家共同交流成长,特举办妙笔生花有奖征文活动,您可以和我们分享开发道路上的实践经验、技术干货、开发技能、学习心得等参与本次征文活动,更有华为云定制无线鼠标、定制T-shirt、卫衣、会员权益多重好礼等你来拿,活动即刻开启,凡在本主题帖中留言、盖楼、投稿用户均可参与抽奖哦~各位开发者朋友们,快快投稿吧!活动流程:征集期(3.26-4.21)→预选&投稿期(截止4.23)→评审反馈期&获奖名单公示(截止4.30)参与方式:(1)盖楼:在评论区盖楼互动,回复“GaussDB(DWS) 重定义数据仓库,释放数据非凡价值!”(2)留言:在本主题帖中跟帖留言(包括但不限于学习心得、数仓产品体验感受、平台建议等);(3)分享:将活动海报分享至微信朋友圈,把分享截图反馈至微信公众号后台并回复“妙笔生花”; (4)投稿1:发表博文(内容包括但不限于实践经验、技术干货、开发技能、学习心得等),并将博文链接附在本活动贴评论区向我们投稿:备注:微信扫描下方二维码加入GaussDB(DWS)大神学习交流群:(小助手会提醒大家学习打卡,最新的学习资源也会跟您一起分享哦)1投稿步骤:第一步:本地整理好博文内容后,在本论坛 “博文鉴赏”版块编辑发布,发帖标题为:【GaussDB(DWS)征文】+xxxxxx(博文名称)发文版块链接: https://bbs.huaweicloud.com/forum/forum-598-1.html第二步:在您的博文内容结尾处插入本次活动海报(如下)作为后缀,插入图片即可。第三步:发布博文后需将博文链接回复至本贴评论区参与活动,否则可能会漏统计!第四步:完成以上步骤视为成功参加本次征文活动,工作人员对投稿博文进行评审。评奖方式:妙笔生花奖*10:(博文评审质量最优的前10名博文作者)奖     品:华为云定制无线鼠标评奖规则:经评审后,博文评审质量最优的前10名博文作者。互动奖*20:(以上互动方式任选一种或多种参与)奖     品:华为云定制T-shirt或稻壳儿15天会员(海量PPT、表格、文档、图文模板全免费)评奖规则:参与华为云社区互动即有机会抽取(奖品随机)。惊喜奖*5:(分享活动海报反馈截图至公众号后台的粉丝)奖     品:华为云定制卫衣或沪江网校30天会员权益(包含5国外语、职场技能、生活兴趣,一卡畅学)评奖规则:分享活动海报至朋友圈且反馈截图的公众号粉丝均有机会抽取。(奖品随机)。▶  文章结构建议:1、文字精练:通过严谨和专业的文字进行文章整理,无错别字; 2、思路清晰:观点输出准确,语句通顺,让整篇文章逻辑清晰; 3、结构工整:建议文中用标题进行分割,可使文章结构分明,排版工整;4、图文并茂:“一图胜千言”,在文中配图,可以让文章内容更加丰富哦; 5、引人入胜:文章标题、内容具有吸引力,抓人眼球,文采好,可作为加分项哦。大家快快参与吧,加油!注意事项:1、博文需是投稿人原创作品,不可代投他人作品,文章内容通畅,此为外站投稿,文章请保护客户信息。2、参加征文活动的文章作者拥有著作权,华为云拥有使用权。3、每个ID只能参与一次评选,同一ID不可重复中奖。(以最高奖励为准);4、本次回帖内容需满足华为云论坛发帖规范 https://bbs.huaweicloud.com/forum/thread-23077-1-1.html;5、 本活动最终解释权归华为云数仓GaussDB(DWS)所有。6、“惊喜奖”活动结束后获奖人员将在公众号公示。*如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:huaweicloud.bbs@huawei.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,并取消活动评奖资格。Ps:本次活动内部员工+外部用户均可参与,欢迎大家投稿参与活动哦~等等,以下还为大家提供了丰富的学习资料,大家可以参考学习哦↓↓↓【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓活动已结束【获奖名单公示】获奖小伙伴快快(ps:请在7月25日前)前往反馈帖,留下您的获奖地址吧~信息反馈贴:https://bbs.huaweicloud.com/forum/thread-139994-1-1.html注:礼品库存不足,该礼品将调整为等值的码豆,获得的码豆可在华为云码豆会员中心进行奖品兑换哦!点击查看码豆会员中心(https://www.huaweicloud.com/devcloud/bonus.html)奖项名称礼品昵称妙笔生花奖华为云无线鼠标譡里个檔妙笔生花奖华为云无线鼠标剑圣妙笔生花奖华为云无线鼠标Zhang Jingyao妙笔生花奖华为云无线鼠标wo华哒哒互动奖2000码豆yizhangl互动奖2000码豆花溪互动奖2000码豆黄金振互动奖2000码豆常常要奋斗互动奖2000码豆nukinsan互动奖2000码豆外围的小尘埃互动奖2000码豆问道互动奖2000码豆古月磊互动奖2000码豆明明如月互动奖2000码豆考过IE励志当攻城狮互动奖2000码豆sevenjiang互动奖2000码豆xuexj互动奖2000码豆大象无形互动奖2000码豆每天都要有进步互动奖2000码豆你怎么这么好看互动奖2000码豆多米诺的古牌互动奖2000码豆spike互动奖2000码豆老老刘互动奖2000码豆平平无奇的平平互动奖2000码豆橙子是红的
  • [运维管理] GaussDB 8001 线下版本如何实现全量备份恢复到另外一套集群上?
    【操作步骤&问题现象】GaussDB 8001 线下版本如何实现全量备份恢复到另外一套集群上?NUBAnyBackup软件localDISK如何实现的?
  • [运维管理] 【DWS】【快照功能】自动快照每隔一段时间就会做一次全备,怎么理解 ?
    【功能模块】DWS 快照 【操作步骤&问题现象】自动快照的备份与恢复策略自动快照采用差异增量备份,第一次创建自动快照为全量备份,并且以后每间隔一段时间就会做一次全量备份,全量备份作为基础版本。两次全量备份之间都是做增量备份,增量备份记录基于前一次备份所发生的更改。在恢复快照时,GaussDB(DWS) 会将最近一次的全量备份到本次备份之间的所有备份一起用于恢复集群,因此不会产生数据丢失。为了保证每个增量快照都能够正常进行数据恢复,如果增量快照的保存时间超过了保留天数,GaussDB(DWS) 不会立即删除过期的增量快照,而是仍然会保留这部分快照,以便提供给后续其他增量快照恢复集群时使用。直到下一次做全量快照为止,GaussDB(DWS) 才会一并删除已过期的上一次的全量自动快照和相关的增量快照。如果对已有集群关闭自动快照功能,则会删除该集群所有的自动快照,但手动快照不会被删除。问题:    2021/3/24 10:00 am  做了一次手动快照(手工是全备),备份过程中启动了自动快照 (不知道是否可以这么操作?),或者备份完毕后启动了自动快照 , 那么这一次启动又会做一次全备   ? 后面的自动快照是基于这次全备的差异增量备 。   假设是默认的 3 天保留时间, 每天 22 点自动快照,那么 3/25 22:00 一次差异增备, 3/26 22:00 一次差异增备, 3/27 22:00 会触发一次全量备份 ( 因为马上要删除前面的备份了 )  ?   这种情况就是文档中写的:以后每间隔一段时间就会做一次全量备份,全量备份作为基础版本  ?    是等下一次备份完成并成功后,再清理保留时间前的备份数据,还是先删除然后再备份    ?   【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [集群&DWS] GaussDB(DWS)单节点集群安装方法
    gaussDB的单机集群安装可以方便开发人员快速定位问题,有助于初学者了解产品使用,本文将介绍两种简单的单机集群安装的方法。方法一:利用fastcheck起集群1、下载源码并编译。2、执行 make fastcheck p=***** runtest=no注意:在执行make fastcheck命令前需要指定GAUSSHOME的路径方法二:利用执行脚本起集群1、首先,需要确保环境变量是正确的,环境变量配置文件可按照自己的代码路径更改即可:test -s ~/.alias && . ~/.alias || trueexport LESS=eFR export CODE_BASE=/data1/……/gaussdb export GAUSSHOME=$CODE_BASE/mppdb_temp_install export LD_LIBRARY_PATH=/gs_tools/lib:/gs_tools/lib64:/gs_tools/Python-2.7.15/lib:/gs_tools/gcc-8.3.0/lib:/gs_tools/gcc-8.3.0/lib64:/gs_3rd/local/release/lib export PATH=$GAUSSHOME/bin:$PATHexport LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH2、将mpp_deploy.py脚本放入gaussdb/mppdb_temp_install路径下,修改port(仅此一项)。3、在gaussdb/mppdb_temp_install路径下,执行./mpp_deploy.py --help查看相关使用方法, 通常,安装的命令:./mpp_deploy.py -c 2 -d 4 (2 4分别为CN、DN的个数)4 常见问题:常见问题一:安装后gsql连不上解决方案:export下列环境变量export PGHOST=/……/build/regress/tmp export LD_LIBRARY_PATH=/……/gaussdb/mppdb_temp_install/lib:$LD_LIBRARY_PATHexport GAUSSHOME=/……/gaussdb/mppdb_temp_install常见问题二: Installation node group is not defined in current cluster解决方案:上次关集群太暴力,需要重新卸载安装mpp_deploy.py脚本见附件,删除txt后缀。原文链接:https://bbs.huaweicloud.com/blogs/245761【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [集群&DWS] GaussDB(DWS) 物理机纳管模式简介
    【摘要】 GuassDB(DWS) 为保护客户硬件资产,提供物理机纳管运营模式,使用客户已有硬件服务器搭建数据库集群并与HCS混合云对接,实现集群统一管理。为什么要提供物理机纳管模式?    GuassDB(DWS)提供物理机纳管运营模式,主要针对客户在搭建集群时,已有存量硬件服务器,为了保护已有资产,可以在符合软件要求的服务器上搭建物理机模式集群。 通过将物理机模式集群管控面对接至HCS混合云,在HCS DWS控制台提供集群状态的统一监控。BMS裸金属模式与物理机纳管模式的差异点?差异项BMS模式物理机纳管模式依赖硬件参考华为云Stack x.x.x 硬件checklist。参见华为云Stack x.x.x数据仓库服务软件安装指南物理机纳管模式章节硬件要求操作系统x86平台,仅支持EulerOS 2.5鲲鹏平台,仅支持EluerOS 2.8参见华为云Stack x.x.x数据仓库服务软件安装指南物理机纳管模式章节操作系统要求最小集群规模最小计算节点为3节点+ManageOne云平台底座。2*FusionInsight Manager管理节点+3*数据节点+ManageOne云平台底座。最大集群规模默认32,最大256节点。1024节点。数据库CN和DN规格CN个数:默认2个,最大5个。DN个数:最大1024个。CN个数:最大10个。DN个数:最大4096个。安装过程使用HUAWEI CLOUD Stack Deploy进行自动化安装,安装后需要手动进行BMS入云、创建BMS规格等操作。安装形式为独立软件包形式,需要根据实际的集群机器配置进行前期规划,生成LLD规划文件,参见仓库服务软件安装指南安装GaussDB(DWS)物理机集群章节进行安装。软件安装后对接HCS底座,参见仓库服务软件安装指南纳管GaussDB(DWS)物理机集群章节进行纳管。升级过程用户不需要关心GaussDB(DWS) 集群的修补或升级,因为GaussDB(DWS) 将自动处理版本升级。当GaussDB(DWS) 服务升级后,GaussDB(DWS) 将在集群的“可维护时间段”内,自动将集群升级到最新版本,无需人为操作。提供高版本升级软件包,使用升级工具进行数据库软件升级,升级形式为离线升级。运维过程集群运维,依赖ManageOne云平台及Service OM,监控、告警、性能指标都在云平台上进行操作和管理。物理机集群纳管后,HCS平台提供集群状态与告警监控,在FusionInsight Manager界面上进行运维操作。数据库运维过程需要云平台运维人员支持,通过沙箱登录集群节点。可直接远程SSH登录集群节点进行数据库维护。计费模式与云服务形态销售模式为准。以数据库CPU算力为计费依据,计费量纲为vCPU。适用场景服务器要求,与HCS硬件要求拉齐。客户已有旧集群利旧,保护客户硬件资产。未来演进混合云主打场景。集群接受纳管后提供运维服务,后续逐步迁移到统一架构。纳管后的集群如何进行运维?    运维人员日常需在DWS服务控制台和ManagerOne管控面关注纳管集群的集群状态,告警信息,软硬件运行情况。 当纳管集群发生故障告警时,登录纳管集群FusionInsight Manager管控面进行运维操作。DWS Console与ManageOne支持的功能:1. DWS Console 可查看纳管的纳管集群的集群基本信息,如集群状态,节点规格与数量,磁盘信息等。2. DWS Console 可通过监控面板功能,查看纳管集群的KPI监控指标。3. ManageOne 可同步纳管的纳管集群的告警信息。4. ManageOne 对接eSight后,可对纳管集群服务器硬件状态进行管理。FusionInsight Manager支持的功能:1. 原有的集群运维能力均由FIM提供,如安装、升级、补丁、节点替换、用户管理等操作。小结    GuassDB(DWS)提供了多种部署方式与运营形态,本文中只对于物理机纳管模式做了简单介绍。文章内容仅作为参考。原文链接:https://bbs.huaweicloud.com/blogs/245731【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [存储] 非侵入式备份及其在NBU上的应用
    1. 通用的备份方案介绍除Netbackup深度定制的厂商外,通常数据库厂商都按XBSA接口来实现NBU备份。首先在集群内每个节点安装NBU客户端,通过XBSA发命令至本地NBU客户端,然后NBU客户端与远端服务器上的NBU服务端程序通信,将数据写入挂载于远端的磁带或磁盘设备。早期的GaussDB(DWS)便是采用如此方式,应用于线下场景。下图展示了这个备份架构原理。如上图,GaussDB的备份工具Roach,在每个节点都启动一至多个Roach agent进程,用于读取本节点的GaussDB数据,并将其存入缓存buffer。然后调用XBSA接口,将缓存数据转发给NBU处理。不难看出,该架构的特点就是Netbackup第三方软件需要侵入式部署到我们的集群内,备份进程也要使用安装NBU Client时一起提供的libxbsa64.so动态库才能使用XBSA接口。这样就隐含了一个前提:Netbackup软件必须要有该集群所支持的OS的安装包。但是,云上环境基本都是欧拉OS,或者鲲鹏服务器,目前针对这些系统并没有Netbackup软件的安装包,这个前提变得不可获得。更进一步,适配更多第三方厂商的备份协议时,当前架构就要求第三方厂商必须支持欧拉OS、鲲鹏等版本,增加了各种组合的复杂性,不利于生态拓展。于是一种新的非侵入式备份架构呼之欲出。2. 非侵入式备份架构介绍非侵入式架构下,第三方厂商的客户端软件不部署在GaussDB集群内。同时,GaussDB开发一个新插件,部署于远端备份服务器上,负责与集群内的Roach工具进行通信,于是架构变为下图所示:这里说的新插件就是Roach client组件,用户使用前需要提前在备份服务器上部署该组件。和Roach工具一样,该组件也不允许以root用户部署,应当新建一个普通用户,在该用户下部署。图中NBU只是一种示例,其它第三方软件对接时原理也是相同的。展开一点来说,集群内每个节点都有Roach agent进程负责本节点一至多个DN实例的数据备份,该进程会根据DN个数fork出多个子进程,每个Roach agent子进程负责一个DN。备份出来的数据会转发给远端备份服务器的Roach client进程,该进程内部又会根据DN个数fork出多个子进程,每个子进程负责与一个DN(亦对应一个Roach agent)通信。这里不能创建为线程是因为XBSA本身限制,每个进程才能独占一份NBU链接。即有如下映射关系图:从性能角度考虑,需要根据一定比例配备多个NBU media server服务器。比如GaussDB集群有200个节点,每4个DN对应一个备份盘或磁带,每10个GaussDB节点配备一台NBU media server,则共需20台media服务器。示意图如下:3. 云上非侵入式NBU备份的使用用户可通过DWS管控面发起NBU备份操作,发起之前需按照非侵入式方式提前部署好NBU环境和Roach client组件。首先,可在插件下载界面提前down下来Roach client组件包(OS版本需要与NBU media server的系统相同):然后配置快照策略,图中的备份服务器即是NBU media server。接下来就可以创建快照了:创建快照成功后,后期即可使用该快照来恢复集群。原文链接:https://bbs.huaweicloud.com/blogs/245772【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [集群&DWS] GaussDB(DWS)逻辑集群系列二:DWS逻辑集群管理使用详解
      在《GaussDB(DWS) 逻辑集群系列一:逻辑集群简介》中我们介绍了逻辑集群的能力以及解决的场景,本文将为大家继续讲解DWS逻辑集群管理功能的具体使用方式。添加逻辑集群       如果是首次使用逻辑集群管理功能,需要先进入集群详情页面打开逻辑集群开关,打开开关后会出现“逻辑集群管理”的页签,此时点击页签进入逻辑集群管理页面会进行逻辑集群初始化操作,该操作会同步后台创建的逻辑集群至前台页面,但是初始化操作只会在首次进入逻辑集群管理页面时执行一次,目的是为了兼容历史版本客户在后台手动创建的逻辑集群。如:客户很早之前创建了一套8.1.0的DWS集群,并在后台使用命令创建了逻辑集群,那么当该集群升级到8.1.0.100版本之后,初始化操作会将后台创建的逻辑集群信息更新到页面。注意初始化操作只会做一次,后续必须在管控面逻辑集群管理页面做逻辑集群的管理操作,不再支持从后台创建。       开启逻辑集群开关后,在逻辑集群管理页面点击添加逻辑集群按钮创建新的逻辑集群,添加逻辑集群只能以主机环为单位,集群中至少要存在一个主机环,当集群中创建了逻辑集群之后便转换为逻辑集群模式,此后不能再将逻辑集群转换为物理集群;另外,如果集群中已有业务数据,则只能将整个集群转换为一个大的逻辑集群       创建完第一个逻辑集群之后集群中会默认创建一个弹性集群,弹性集群是指在逻辑集群模式下,非逻辑集群节点组成的集群,弹性集群的名称为elastic_group,是一个特殊的Node Group,可以包含多个或不包含任何节点。弹性集群不能用户手动创建,只会在物理集群下第一次创建逻辑集群时自动创建。后续其他逻辑集群可以从弹性集群中添加节点,弹性集群中节点不足时也可以向弹性集群扩容节点。扩容逻辑集群从弹性集群扩容逻辑集群       当某个逻辑集群容量不足时,可以为该逻辑集群扩容,如果弹性集群中有充足节点,可以优先从弹性集群中添加节点至逻辑集群,点击编辑按钮,将主机环从弹性集群中移至逻辑集群,然后点击确定提交添加节点任务,节点添加至逻辑集群之后会自动执行重分布,待重分布完成之后即可使用扩容后的逻辑集群。从外部节点扩容逻辑集群       如果弹性集群节点资源不足,也可以将外部节点直接扩容至逻辑集群中,或者将节点扩容至弹性集群,再从弹性集群添加节点。缩容逻辑集群       如果逻辑集群不在需要过多的资源,也可以将多余的节点缩容至弹性集群,同样,缩容逻辑集群也只能以主机环为单位;点击编辑按钮,将主机换环从逻辑集群中移至弹性集群,点击确定提交缩容任务。 删除逻辑集群       如果不在需要某个逻辑集群,可以将整个逻辑集群删除,删除的逻辑集群节点将回收至弹性集群,以供其他逻辑集群添加节点使用或创建新的逻辑集群。查看逻辑集群操作日志       所有逻辑集群管理的操作都将记录操作日志,方便查询操作记录,也方便在某个操作失败时查看失败原因。原文链接:https://bbs.huaweicloud.com/blogs/245370【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [测试] 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) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [SQL] GaussDB(DWS) XML数据处理实践
    【摘要】 GaussDB(DWS)支持XML数据类型及丰富的XML解析函数,可实现关系数据和XML数据的映射管理功能。XML概述XML是可扩展的标识语言(eXtensible Markup Language)的缩写,可以描述非常复杂的数据结构,广泛应用于传输和存储数据。XML是一种类似于HTML的标记语言,但XML没有使用预定义的标记,可以根据应用需求定义标记。XML的基本格式是标准化的,可以跨平台、操作系统和应用程序实现异构系统之间的数据共享。XML数据类型GaussDB(DWS)支持将XML文档存储在数据库的XML数据类型列中。通过XML数据类型来保存数据,相比于文本方式的优势在于具有数据结构检查功能,能够保证结构的正确,并且支持XML数据解析和处理函数。判断一个 XML 文档正确的标准是:文档必须是一个格式良好的文档。文档遵循 XML 所有的语法规则并且有效。文档遵循特定语义的规则,这些规则通常规定在 XML 或 DTD 规范中XML可以存储由XML标准定义的格式正确的文档,以及由XML标准中定义的内容片断,内容片断可以有多个顶级元素或字符节点。下面是一个格式良好的XML文档示例:<?xml version="1.0" encoding="UTF-8"?><message>Hello GaussDB(DWS)</message>可以使用INSERT SQL语句将格式良好的文档插入到XML列中,如果能够成功分析文档,那么就说明文档的格式正确。在执行插入或更新操作前,会根据配置参数来验证XML文档是否格式正确。在应用程序中的XML数据一般采用其序列化字符串格式,将数据插入到 XML 列中时,必须将它转换为 XML 分层格式。因此在执行插入操作时可显式调用 XMLPARSE 函数,以将数据从其序列化字符串格式转换为 XML 分层格式。test=# SELECT XMLPARSE(document '<root>GAUSSDB(DWS)</root>');          xmlparse           ---------------------------  <root>GAUSSDB(DWS)</root>(1 row)访问XML值当访问和处理XML数据时,由于XML数据在数据库内部的表示不是字符串,XML数据类型没有提供比较操作符,因此不能直接与字符串进行比较。这样的结果是无法通过比较XML数值和搜索值来检索到数据行,因此对于XML数据应该伴随一个ID值用于检索数据。通过使用 XMLSERIALIZE 函数,可以将 XML 值变换成表示 XML 文档的已序列化字符串值。test=# SELECT XMLSERIALIZE(document '<root>GAUSSDB(DWS)</root>' AS TEXT);        xmlserialize         ---------------------------  <root>GAUSSDB(DWS)</root>(1 row)XML解析函数目前GaussDB(DWS)已经支持了30多个XML解析函数,包括解析XML数据、生成XML内容、XML谓词、XML参数设置、将数据映射到XML等功能。处理XML数据的函数xpath 对xml值计算xpath表达式的结果xmltable 通过XPath表达式的方式对XML数据进行解析生成XML内容的函数xmlparse 字符数据转换为xml类型的值xmlserialize  xml类型转换为字符串xmlcomment 创建一个包含XML注释的特定文本内容的值xmlconcat 连接独立的XML值列表来创建一个包含XML内容片段的单值xmlelement 生成一个带有给定名称,属性和内容的XML元素。xmlforest 生成一个使用指定的名称和内容的XML森林(序列)元素xmlpi 创建一条XML处理指令xmlroot 更改XML值的根节点属性xmlagg 聚合函数,连接聚合函数调用的输入值XML谓词函数IS DOCUMENT 判断XML值是否为文档IS NOT DOCUMENT 判断XML值是否为文档xmlexists 判断XPath表达式是否返回任何节点xpath_exists 判断XPath表达式是否返回任何节点xml_is_well_formed 检查字符串是不是格式良好的XMLxml_is_well_formed_document  检查字符串是不是格式良好的XML文档xml_is_well_formed_content 检查字符串是不是格式良好的XML内容XML参数设置SET XML OPTION 设置XML格式SET XMLBINARY TO 设置二进制值在XML中的编码格式将表、查询、游标、数据库映射到XML的函数table_to_xml、query_to_xml、cursor_to_xml、database_to_xml等。具体每个函数的使用方法可以参考GaussDB(DWS)用户手册,下面主要介绍应用中常见的解析XML数据的XMLTABLE函数。XMLTABLE函数概述XMLTABLE函数通过XPath表达式的方式对XML数据进行解析,按照定义的列生成一个表将数据返回,返回的表可以包含任何 SQL 数据类型(包括 XML类型)。XMLTABLE函数支持将表中的XML数据或一个SELECT查询的XML数据作为变量传递到指定的XPath表达式上,通过XPath表达式解析XML数据后的结果用于产生表中的列值,生成的表的结构由 XMLTABLE 的 COLUMNS 子句定义,可以指定列名、数据类型和生成列值的方式来定义列的特征。下面演示一下XMLTABLE函数的使用方法,首先创建CUSTOMER表并插入包含客户信息的XML数据。CREATE TABLE CUSTOMER AS SELECT 1 AS ID,XML $$<ROWS>   <ROW ID="1">     <CUSTOMER_NAME>Tony</CUSTOMER_NAME> <PHONENUM>123-456-666</PHONENUM>   </ROW>   <ROW ID="2">     <CUSTOMER_NAME>Serena</CUSTOMER_NAME> <PHONENUM>123-456-888</PHONENUM>   </ROW>   <ROW ID="3">     <CUSTOMER_NAME>Tina</CUSTOMER_NAME> <PHONENUM>123-456-999</PHONENUM>   </ROW></ROWS>$$ AS INFO;通过以下 SELECT 语句在 XMLTABLE 函数中解析 CUSTOMER 表的 INFO 列。SELECT XMLTABLE.* FROM CUSTOMER,XMLTABLE('//ROWS/ROW'         PASSING INFO        COLUMNS ID INT PATH '@ID',         NAME VARCHAR(64) PATH 'CUSTOMER_NAME',         PHONENUM TEXT PATH 'PHONENUM');  id |  name  |  phonenum    ----+--------+-------------   1 | Tony   | 123-456-666   2 | Serena | 123-456-888   3 | Tina   | 123-456-999(3 rows)在GaussDB(DWS)上,XMLTABLE函数支持下推到数据节点DN执行的STREAM查询计划,XML数据在数据节点上进行解析生成XMLTABLE结果表,通过GATHER STREAM将结果汇总到协调节点CN上,能够下推到DN的STREAM计划具有较好的查询性能。XMLTABLE应用案例在业务场景中,经常会遇到需要解析XML文档的场景,使用XMLTABLE函数可以快捷方便的完成对XML数据的解析,将所需的数据以表的形式返回,便于对数据进一步的查询和分析。下面演示一个对消息数据的解析流程:1. 创建一张用于存储消息数据的表,插入数据。CREATE TABLE MSGS AS SELECT 1 AS ID, 'A,BB,CCC,DDDD,EEEEE' AS MSG;2. 将消息文本数据通过XMLPARSE函数转化为XML数据。test=# SELECT XMLPARSE(content '<r><c>' || REPLACE(MSG, ',', '</c><c>') ||'</c></r>') AS XML_MSG FROM MSGS;                           xml_msg                           -----------------------------------------------------------  <r><c>A</c><c>BB</c><c>CCC</c><c>DDDD</c><c>EEEEE</c></r>(1 row)3. 使用XMLTABLE函数对XML数据进行解析,逐条返回消息内容。test=# SELECT MSG_CONTENT FROMtest-# (SELECT XMLPARSE(content '<r><c>' || REPLACE(MSG, ',', '</c><c>') ||'</c></r>') AS XML_MSG FROM MSGS),test-# XMLTABLE('/r/c/text()' PASSING XML_MSG COLUMNS MSG_CONTENT VARCHAR(4000) PATH '.');  msg_content  -------------  A  BB  CCC  DDDD  EEEEE(5 rows)从上图中可以看到,XMLTABLE解析后的数据以表的形式返回,在这个XMLTABLE表上可以进一步的对数据排序、筛选等操作,同时GaussDB(DWS)也支持在函数或存储过程中进行XML数据的处理,使应用程序的开发非常便捷。总结GaussDB(DWS)支持了XML数据类型及丰富的XML解析函数,同时基于Shared Nothing的分布式架构具有良好的并行处理和扩展能力,对XML数据的解析任务可下推到数据节点上进行并行处理,完全能够满足应用中出现的XML数据解析需求。原文链接:https://bbs.huaweicloud.com/blogs/244334【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [存储] GaussDB(DWS)存储系列之pagehack&amp;pg;_xlogdump工具使用方法总结
    随着技术的演进,数据也发生了巨大的变化,数据规模越来愈大、数据种类呈现多样性,数据处理的时效性要求也越来越高,GaussDB(DWS)实时数仓当前面临着巨大的机遇,也面临着巨大的挑战。同样的,强大工具来帮助我们定位各种各样的问题。    数据库目录下有多种二进制文件,比如系统表、普通表、索引和日志文件等等,但是数据库运行过程中的问题,我们该如何利用这些文件去定位和分析问题呢? pagehack和pg_xlogdump就是我们解决问题的利器,帮助我们在故障定位中,解析各种文件的页面头和xlog日志。pagehack:我们先来看看pagehack的各项参数说明这里我们列举出一下几种非常常用的解析方法:(1)数据库中的系统表有很多,但是在数据库data目录下,该如何把系统表和磁盘上的文件一一对应呢,我们可以通过pagehack查询data目录下的pg_filenode.map执行pagehack -f pg_filenode.map -t filenode_map,我们就可以看到如下结果,这里的relfilenode就对应磁盘上的文件(2)除了系统表,另外一个常用的数据类型就是行存表的文件,通常对于存储异常、读取异常等问题,我们都需要通过pagehack查询行存表的头文件信息。首先连接DN上,查询到该行存表对应的relfilenode(16502),到对应DN的data目录下,执行:pagehack -f 16502 -t heap,结果如下:根据解析出的结果,page页面头结构如下解析出的页面中一些常用信息含义如下,关于page页面详细信息,后面会出一篇博文来专门介绍page页面结构信息pd_lsn:本页面最后一次变更所写入的xlog记录对应的lsn。pd_special:用在索引页中,在索引页中它指向特殊空间的起始位置,在堆表页面中它指向页尾。pd_pagesize_version:页面大小以及页面布局的版本号。t_xmin: 保存插入该元组的事务的txid(事务号)t_xmax:保存删除或更新此元组的事务的txid。如果尚未删除或更新此元组,则t_xmax设置为0,即无效。t_infomask:用于标识元组当前的状态。t_infomask2:HOT链更新状态和当tuple的属性个数。pg_xlogdump:GaussDB数据库利用日志文件来防止断电之类的故障导致的数据丢失,任何试图修改数据库的操作都会写一份日志记录到磁盘,这个日志称为XLOG。在数据库定位问题时,就可以使用pg_xlogdump来解析XLOG日志,包括日志类型、对应的事务号、修改的文件等等。Pg_xlogdump参数使用说明如下:   在pg_xlog目录下找到对应的日志文件, XLOG文件名称24个字符,由三部分组成,每一部分的解析如下):第1部分是TimeLineID,第2部分是逻辑文件ID,第3部分是物理文件IDpg_xlogdump ./000000010000000000000004 -nLSN:日志编号prev:对应该条记录的上一条xlog记录。xid:事务的xiddesc:对日志的详细描述通过pg_xlogdump可以查看xlog日志记录的操作的xid和lsn,就可以在数据库崩溃后,使用xid进行恢复等操作以及定位错误等。pagehack和pg_xlogdump工具在定位分析问题是常用的两种工具,希望这两种工具的介绍,能帮助大家再分析解决问题的时候,提高效率。本文章中设计的页面结构详细信息,后期会专门写一篇文章介绍,加深大家的理解。原文链接:https://bbs.huaweicloud.com/blogs/244330【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [SQL] GaussDB(DWS)时区相关知识(一)
    【摘要】 GaussDB(DWS)中关于时区相关知识及使用的介绍。概念篇       在以前全球国家都处于农业社会的时候,人们通过每天观察太阳的位置来决定时间,这就使得不同经度的地方有不同的时间。当时人们旅行主要靠走和马匹,不同地方时间不一致的问题没有那么突出。但是到了十九世纪随着火车的发明,人们一天旅行的距离一下子延长了很多,到不同的地方因此迫切需要一个通用的方法把各个地方的时间统一起来。1853年8月12日,美国东部罗德岛州,两辆火车迎头相撞,14人因此死亡。事故的原因在今天看来难以置信——两车工程师的手表差了2分钟。1863年,首次使用时区的概念。时区通过设立一个区域的标准时间部分地解决了这个问题。1870年代加拿大铁路工程师弗莱明首次提出全世界按统一标准划分时区。1883年11月18日,美国铁路部门正式实施五个时区。1884年华盛顿子午线国际会议正式通过采纳这种时区划分,称为世界标准时制度。因此,世界标准时区的诞生同其它全球标准一样也是有一个缓慢的发展过程。1 名词解释时区 时区是地球上的区域使用同一个时间定义。以前,人们通过观察太阳的位置(时角)决定时间,这就使得不同经度的地方的时间有所不同(地方时)。1863年,首次使用时区的概念。时区通过设立一个区域的标准时间部分地解决了这个问题。世界各个国家位于地球不同位置上,因此不同国家,特别是东西跨度大的国家日出、日落时间必定有所偏差。这些偏差就是所谓的时差。格林尼治标准时间 GMT(Greenwich Mean Time)是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义为在那里通过的经线。由于地球在它的椭圆轨道里的运动速度不均匀,地球每天的自转是有些不规则的,而且正在缓慢减速。所以,格林尼治时间已经不再被作为标准时间使用。世界协调时间 UTC(Coordinated Universal Time)是经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以「秒」为单位的国际原子时所综合精算而成的时间。UTC比GMT来得更加精准。对于现行表款来说,GMT与UTC的功能与精确度是没有差别的。夏日节约时间 DST(Daylight Saving Time)又称日光节约时制,在英国称为夏令时间(Summer Time)。是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。一般在天亮较早的夏季人为将时间调快一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个采纳夏时制的国家规定不同。时区表示法 如果时间是以协调世界时(UTC)表示,则在时间后面直接加上一个“Z”(不加空格)。“Z”是协调世界时中0时区的标志。因此,“09:30 UTC”就写作“09:30Z”或是“0930Z”。“14:45:15 UTC”则为“14:45:15Z”或“144515Z”。UTC时间也被叫做祖鲁时间,因为在北约音标字母中用“Zulu”表示“Z”。UTC偏移量 UTC偏移量是协调世界时(UTC)和特定地点的日期与时间差异,其单位为小时和分钟。它通常以 ±[hh]:[mm]、±[hh][mm]、或 ±[hh]的格式显示。所以,如果被描述的时间比UTC早一小时(例如柏林的冬季时间),UTC的偏移量将是”+01:00”、”+0100”、或简单显示为”+01”。各国时间调整1. 摩洛哥在2010年开始将夏令时开始时间从6月1日调整为5月2日,结束时间从8月21日调整为8月8日2. Tunisia从2010年开始废弃夏令时3. 麦夸里岛位于澳洲与南极洲之间决定从2010年4月4日开始不在跟随澳洲其它地区一起采用夏令时,由此产生新的时区Antarctica/Macquarie,简称MIST4. 朝鲜 - 2018年5月5日起调整时区,时区由 GMT+8:30 改为 GMT+9:00,因此平壤的标准时间于 2018年5月5日星期六 00:00:00 时间改为 00:30:00 拨快 30 分钟。当格林威治 GMT 标准时间是凌晨 0:00,平壤时间就是上午 9:00,与韩国和日本同一时区。5. 朝鲜 - 2015年8月15日起,弃用 GMT+9,“恢复”大韩帝国时代的 GMT+8:30 标准时间,新启用的时间比原来的时间慢30分钟,是世界上唯一正在使用这个时区的国家。当格林威治 GMT 是凌晨 0:00,平壤时间就是上午 8:30。6. 智利 - 2015年1月28日,智利採用了新的官方标准时间,他们把原来的标准时间和夏令时间合併成一个,永久採用夏令时制。新的官方时间在智利大陆改为 GMT-3,復活节岛则为 GMT-5。7. 俄罗斯 - 2014年10月最后一个星期日 (2014年10月26日) 凌晨开始,永久採用冬令时制,全国会拨慢一小时。因此莫斯科时间将由 GMT+4改为 GMT+3。可见,不管是时区还是夏令时都会经常改变。2 通用时间格式主要参考Posix 1003.1 Section 8.3。操作系统中TZ环境变量代表时区信息,主要用于ctime、localtime、mktime等等。TZ时区名字有两种形式:时区名格式和POSIX时区格式。2.1 时区名格式:characters 该种形式以冒号开始,后面的字符处理与实现相关。linux上表示从某个文件读时区信息,例如TZ=":Pacific/Auckland"。2.2 POSIX时区格式不以冒号开始的格式都算此种格式,扩展开来如下,[]里的字段代表是可选的:std offset[dst[offset][,startdate[/time], enddate[/time]]]格式:`std offset[dst[offset][,startdate[/time], enddate[/time]]]`各字段含义如下:1. std && dst 代表标准时区和日光节约制时区,std是必须的,dst是可选的(有dst字段则代表支持夏令时)。这两个字段有两种格式:a. 一种带引用符号<>,引用符号内的字符串可以是字母、数字、+、-,解析时不包含引用符号<>;b. 另一种不带引用符号<>,字符串只能是字母。字段长度大于等于3,小于等于TZNAME_MAX(linux是6),如果字符串长度不符合规定,解析规则未定义(linux不识别)。2. offset 代表本地时间加上多少能得到UTC时间。格式为hh[:mm[:ss]],0<=hh<=24,0<=mm&&ss<=59。hh是必须的,并且可以是1位,mm和ss是可选的。如果前面带了一个加号+,表示本初子午线以西。表示本时间加上多少时间才能得到UTC时间。加号+也可不带。如果前面带了一个减号-,表示本初子午线以东。表示本时间减去多少时间才能得到UTC时间。std后面的offset是必须的,dst后面的offset是可选的,如果没有,则默认比标准时间提前一小时。3. rule 表示什么时候开始夏令时,什么时候结束夏令时,协议没有提到怎么处理没有rule的情况,从linux系统来看,没有rule默认按M3.2.0/02:00:00,M11.1.0/02:00:00处理。格式为date[/time],date[/time]。date有三种形式:a. Jn,1 <= n <= 365,不包括闰年的2月29日;b. n,0 <= n <= 365,包括闰年的2月29日;c. Mm.n.d,m表示哪个月份(1 <= m <= 12),n表示一个月的第几周(1 <= n <= 5),5代表最后一个,d表示一周的第几天(0 <= d <= 6,从周日开始)。4. time 格式与offset相同,除了没有+和-,如果没带time字段,则默认为02:00:00。举例:"UTC-8:00:00DST-09:00:00,M3.2.0/02:00:00,M11.1.0/02:00:00"表示本地时间为UTC以东减8小时,支持夏令时且夏令时为UTC减9小时(及提前一小时),夏令时从3月第2周第0天凌晨2点开始,到11月第1周第0天凌晨2点结束。CST6CDT,M3.2.0/2:00:00,M11.1.0/2:00:00POSIX时区格式由于无法表示不使用公历的时间(比如希腊),因此并未被广泛采用。3 通用时区数据库各地的时区和夏令时规则由各自的政府独立管理,他们经常在有限的通知下进行变更。而且他们历史数据和未来计划也只是断断续续的记录下来。通用时区数据库试图组织和整理这一领域相关的数据。时区数据库,通常称为 tz, tzdata 或 zoneinfo,是一组包含大量代码和数据用来表示全球许多有代表性的地点的本地时间的历史信息,他会根据各个政体对时区边界和夏令时规则的改变而不定期的更新。数据库中每一个条目都代表这自1970年以来被广泛认可的民用时钟的时区信息。该数据库被很多项目引用,比如:the GNU C Library (used in GNU/Linux), Android, FreeBSD, NetBSD, OpenBSD, Chromium OS, Cygwin, MariaDB, MINIX, MySQL, webOS, AIX, BlackBerry 10, iOS, macOS, Microsoft Windows, OpenVMS, Oracle Database, 和 Oracle Solaris。GaussDB同其它广泛使用的软件产品一样,也是采用了IANA维护的通用时区数据。该数据库由David Olson创立,由Paul Eggert进行编辑和维护。因而有些地方也将其称作Olson数据库。它的显著特色是由Paul Eggert设计的一套通用时区命名规则,每个时区按照“区域/位置”格式,得到一个独有的名称,例如“America/New_York”。英文地名中的空格用下划线“_”代替,连词符“-”只在英文地名本身包含时使用。时区数据库目前普遍有两个叫法 Olson时区数据库或IANA时区数据库。奥尔森(Olson)的数据有所变化,部分原因是奥尔森(AD Olson)即将退休,部分原因是针对维护者的版权侵权提起了诉讼(现已撤销)。2011年10月14日,国际互联网名称与名称分配机构(IANA)接管了时区数据库的维护工作。它会定期进行更新以反映各政治实体对时区边界、UTC 差值和夏令时规则的更改。对tz的更新遵循BCP 175流程进行管理。经常有一些国家变更时区规则,IANA每年都会发布最新的时区数据和解析源码库。实际上时区如何定义如何管理是颇具争议的事情,并不存在绝对权威的时区数据库。IANA维护的通用时区数据库由于每条记录都标识了明确的信息来源,有历史信息也能推测未来时间,被GNU C Library,BSD的采用而变的广泛使用。其实还存在其它的时区数据库,例如:微软时区数据库,HP-UX时区数据库,世界时间服务器(https://www.worldtimeserver.com/)和国际航空运输协会的《标准时间表信息手册》等。实战篇1 GaussDB(DWS)时区的使用系统表 pg_timezone_names 记录时区名称。testdb=# select * from pg_timezone_names where utc_offset='08:00:00';         name        | abbrev | utc_offset | is_dst--------------------+--------+------------+--------  Asia/Kuala_Lumpur  | +08    | 08:00:00   | f  Asia/Brunei        | +08    | 08:00:00   | f  Asia/Makassar      | WITA   | 08:00:00   | f  Asia/Harbin        | CST    | 08:00:00   | f  Asia/Ujung_Pandang | WITA   | 08:00:00   | f  Asia/Chungking     | CST    | 08:00:00   | f  Asia/Kuching       | +08    | 08:00:00   | f  Asia/Taipei        | CST    | 08:00:00   | f  Asia/Macau         | CST    | 08:00:00   | f  Asia/Macao         | CST    | 08:00:00   | f  Asia/Manila        | PST    | 08:00:00   | f  Asia/Chongqing     | CST    | 08:00:00   | f  Asia/Shanghai      | CST    | 08:00:00   | f  Asia/Choibalsan    | +08    | 08:00:00   | f  Asia/Ulaanbaatar   | +08    | 08:00:00   | f  Asia/Irkutsk       | +08    | 08:00:00   | f  Asia/Ulan_Bator    | +08    | 08:00:00   | f  Asia/Hong_Kong     | HKT    | 08:00:00   | f  Asia/Singapore     | +08    | 08:00:00   | f  Australia/West     | AWST   | 08:00:00   | f  Australia/Perth    | AWST   | 08:00:00   | f  ROC                | CST    | 08:00:00   | f  Etc/GMT-8          | +08    | 08:00:00   | f  PRC                | CST    | 08:00:00   | f  Singapore          | +08    | 08:00:00   | f  Antarctica/Casey   | +08    | 08:00:00   | f  Hongkong           | HKT    | 08:00:00   | f(27 rows)系统表 pg_timezone_abbrevs 记录了时区简称testdb=# select * from pg_timezone_abbrevs where utc_offset='08:00:00';  abbrev | utc_offset | is_dst--------+------------+--------  AWST   | 08:00:00   | f  BNT    | 08:00:00   | f  BORT   | 08:00:00   | f  CCT    | 08:00:00   | f  HKT    | 08:00:00   | f  IRKST  | 08:00:00   | f  IRKT   | 08:00:00   | f  MYT    | 08:00:00   | f  PHT    | 08:00:00   | f  SGT    | 08:00:00   | f  ULAT   | 08:00:00   | f  WADT   | 08:00:00   | t(12 rows)通过设置session的环境变量 timezone 可以设置数据库数据入库和查询时的时区。为什么是session级?不用用户设置不同的时区,或者用户忘记之前设置的时区怎么办?答:时间数据入库后数据库管理软件后台都会将时间转换为UTC的0时区时间,用户查询时根据用户设置的时区,再转换为相应时间给用户。因此用户设置的时区不影响数据存储,数据迁移时也不需要关心时区。2 GaussDB(DWS)初始化时如何设定默认时区        如果配置文件中未指定时区,则从操作系统当前环境变量 TZ 获取当前操作系统时区,且该时区是数据库内支持的时区,则直接使用操作系统时区。否则,根据操作系统当前时间构造一些日期来评判哪个时区更和操作系统匹配。评判方法:1)从今向后100年内采集一些时间戳首先,探测当前年的一月和七月,这可以快速排除掉大量的不符合时区。其次,探测当前年七月向后100年间的每周,可以有效排除掉夏令时不符合的时区。tnow = time(NULL); //获取1970-01-01 00:00:00 UTC至今所经历过的秒数tm_val = localtime(&tnow); //将从time()获取的时间戳,转为本地时间的tm结构格式thisyear = tm_val->tm_year + 1900; //tm_year是自1900年起的年数,所以要加1900time_needto_test = 0;//先构造一个当年的1月15日,再调整到当前周的第一天 00:00:00t = MakeTime(thisyear, 1, 15);t -= (t % T_WEEK);test_times[time_needto_test++] = t;//构造一个当年的7月15日,再调整到当前周的第一天 00:00:00t = MakeTime(thisyear, 7, 15);t -= (t % T_WEEK);test_times[time_needto_test++] = t;//构造向后100年内每周的时间while (tt.n_test_times < 52 * 100) { t -= T_WEEK; test_times[time_needto_test++] = t;}//总共构造了5202个探测时间2)判断每个数据库内部时区与操作系统时区的匹配度如果一个时间戳转为操作系统时区与转为待测试的数据库内部时区后的时间一致,则加一分。遇到一个不匹配则结束当前时区匹配。首先,判断 "/etc/localtime" 中时区与前面测试时间的匹配度,如完全匹配则返回成功。 否则,判断数据库安装目录timezone下的每个时区文件与前面测试时间的匹配度,获取匹配度最高的时区。 bestscore = 0;   for (获取每一个时区文件) {     判断当前时区文件与探测时间的匹配度     score = score_timezone(tzdirsub, tt);     if (score > bestscore) { //当前时区文件匹配度 > 目前最大匹配度         bestscore = score;         bestzonename = tzdirsub;     } else if (score == bestscore) { //如果当前时区文件匹配度与目前最大匹配度相等,则选择长度更短,字母排序更靠前的时区       if ((strlen(tzdirsub) < strlen(bestzonename) ||           (strlen(tzdirsub) == strlen(bestzonename) && strcmp(tzdirsub, bestzonename) < 0))           strlcpy(bestzonename, tzdirsub, TZ_STRLEN_MAX + 1);     }}3)如果所有数据库内部时区匹配完,最佳得分仍为0,则需要构造一个与操作系统时区一致的POSIX风格的时区,例如:“PSD8PDT”冷知识篇1 我国有哪些时区,都是怎么设置的?公元1912年之前,中国各地并没有统一的标准时间。在封建时代,国家的标准历法由皇庭颁布,而中国传统历法同时依赖于日月两个天体的运动,并以实际天文观测为准,因此历时标准都以朝廷所在地(准确说,是钦天监的观测点)的经纬为准。公元1912年,中华民国建立,首次设立并正式颁布时区划分将中国分为五个时区,并在1939年正式颁布。1:昆仑时区(GMT+5:30)2:新藏时区(GMT+6)3:陇蜀时区(GMT+7)4:中原标准时区(GMT+8)5:长白时区(GMT+8:30)详细介绍如下:Asia/Harbin 也叫长白时区,主要代表黑龙江(不包括漠河),吉林地区的时间# Zone  NAME            GMTOFF  RULES   FORMAT  [UNTIL]# Changbai Time ("Long-white Time", Long-white = Heilongjiang area)# Heilongjiang (except Mohe county), JilinZone    Asia/Harbin     8:26:44 -       LMT     1928 # or Haerbin                         8:30    -       CHAT    1932 Mar # Changbai Time                         8:00    -       CST     1940                         9:00    -       CHAT    1966 May                        8:30    -       CHAT    1980 May                        8:00    PRC     C%sTAsia/Shanghai 也叫中原标准时区# Zhongyuan Time ("Central plain Time")# most of China# Milne gives 8:05:56.7; round to nearest.Zone    Asia/Shanghai   8:05:57 -       LMT     1928                         8:00    Shang   C%sT    1949                         8:00    PRC     C%sTAsia/Chongqing 也叫胧蜀时区,主要代表广西,贵州,海南,宁夏,四川,陕西,云南,甘肃主要部分,内蒙古西部,青海西部,广东的德庆,恩平,开平,罗定,台山,新兴,阳春,阳江,郁南,云浮,为东七区。# Long-shu Time (probably due to Long and Shu being two names of that area)# Guangxi, Guizhou, Hainan, Ningxia, Sichuan, Shaanxi, and Yunnan;# most of Gansu; west Inner Mongolia; west Qinghai; and the Guangdong# counties Deqing, Enping, Kaiping, Luoding, Taishan, Xinxing,# Yangchun, Yangjiang, Yu'nan, and Yunfu.Zone    Asia/Chongqing  7:06:20 -       LMT     1928 # or Chungking                         7:00    -       LONT    1980 May # Long-shu Time                         8:00    PRC     C%sTAsia/** 也叫新藏时区,主要代表甘肃的阿克赛哈族自治县,安西县,敦煌,肃北县,连江县,湛江市等等等。# Xin-zang Time ("Xinjiang-Tibet Time")# The Gansu counties Aksay, Anxi, Dunhuang, Subei; west Qinghai;# the Guangdong counties  Xuwen, Haikang, Suixi, Lianjiang,# Zhanjiang, Wuchuan, Huazhou, Gaozhou, Maoming, Dianbai, and Xinyi;# east Tibet, including Lhasa, Ch**, Shigaise, Jimsar, Shawan and Hutubi;# east Xinjiang, including **, Turpan, Karamay, Korla, Minfeng, Jinghe,# Wusu, Qiemo, Xinyan, Wulanwusu, Jinghe, Yumin, Tacheng, Tuoli, Emin,# Shihezi, Changji, Yanqi, Heshuo, Tuokexun, Tulufan, Shanshan, Hami,# Fukang, Kuitun, Kumukuli, Miquan, Qitai, and Turfan.Zone    Asia/**     5:50:20 -       LMT     1928 # or Urumchi                         6:00    -       URUT    1980 May # ** Time                         8:00    PRC     C%sTAsia/Kashgar 也叫昆仑时区,主要代表西藏西部(普兰县,阿合奇县,疏附县,疏勒县),新疆西部(阿克苏,阿图什,伊宁,和田,策勒,洛浦,尼勒克,昭苏,特克斯,巩留,察布查尔,霍城,博乐,皮山,等等等)Zone    Asia/Kashgar    5:03:56 -       LMT     1928 # or Kashi or Kaxgar                         5:30    -       KAST    1940     # Kashgar Time                         5:00    -       KAST    1980 May                        8:00    PRC     C%sTPRC指向中原标准时区Link    Asia/Shanghai           PRC1949年中华人民共和国成立,我国废除了原国民政府1939年设立的中原标准时区、昆仑时区、长白时区、陇蜀时区以及新藏时区,在全国统一使用(UTC+8),并命名为北京时间。1950年后,全国除西藏、新疆外全部统一使用北京时间。当时新疆的地方人民代表大会为了方便群众,设定了乌鲁木齐时间:(UTC+6),如北京时间8点,乌鲁木齐时间则是6点。新的时区调整如下:1)Asia/Harbin(长白时区),Asia/Chongqing(陇蜀时区),Asia/Shanghai(中原标准时区)时区名保留,定义都指向新定义的Asia/Shanghai(中国标准时区)。全国统一使用。中原标准时区改名为北京时区,offset有调整# Zone  NAME            STDOFF  RULES   FORMAT  [UNTIL]# Beijing time, used throughout China; represented by Shanghai.Zone    Asia/Shanghai   8:05:43 -       LMT     1901                         8:00    Shang   C%sT    1949 May 28                         8:00    PRC     C%sT2)Asia/Kashgar(昆仑时区),Asia/**(新藏时区)时区名保留,定义都指向新定义的Asia/**(乌鲁木齐时区)。当地同时使用两个时区定义。新藏时区改名为新疆时区offset有调整# Xinjiang time, used by many in western China; represented by Ürümqi / Ürümchi# / Wulumuqi.  (Please use Asia/Shanghai if you prefer Beijing time.)Zone    Asia/**     5:50:20 -       LMT     1928                         6:00    -       +06被合并的时区L Asia/** Asia/Kashgar 昆仑时区合入新藏时区 L Asia/Shanghai Asia/Harbin 长白时区合入中原标准时区 L Asia/Shanghai Asia/Chongqing 胧蜀时区合入中原标准时区 L Asia/Shanghai Asia/Chungking 胧蜀时区新增别名Chungking,也合入中原标准时区 L Asia/Shanghai PRC2 为什么没有北京时区只有北京时间?由于各种政治原因国家所在地区,国家名称和地区所属国家会时常发生变更,这给时区管理带来很多麻烦。例如:位于非洲东南部的内陆国家“斯威士兰王国”在2018年4月宣布将国名更改为“埃斯瓦蒂尼”;我们绝对熟悉的1997年7月1日,香港从英属殖民地回归到了我们伟大祖国的怀抱,所属国就进行了变更。因此,IANA的策略是对政治变更保持中立性,时区通常不与国家绑定,也并不要求每个国家或国家首都必须具有时区名称。为了国内用户的使用方便,GaussDB(DWS)根据IANA的定义的语法规则,在内部帮助用户定义了 Asia/Beijing 时区,其定义与 PRC 时区定义一致。3 时区定义是一成不变的吗?时区如何定义如何管理是颇具争议的事情,并不存在绝对权威的时区数据库。一个国家或地区的时区信息变更属于独立事务,没有义务必须通知IANA。IANA时区数据库的权威性主要依赖时区数据库维护者对相关国家或地区的了解程度。因此,在IANA的时区定义里记录了时区数据库维护者收集时区信息的来源,有时候并不是很客观。下面是IANA中关于我国时区信息的参照依据。From Guy Harris: From Bob Devine (1988-01-28): See TIME mag, 1986-02-17 p.52. From U. S. Naval Observatory (**-01-19):  From Anthony Fok (2001-12-20): from some Taiwan websites From Paul Eggert (2006-03-22): Devine's note about Time magazine From Jesper Norgaard Welen (2006-07-14): http://www.astro.com/atlas From Paul Eggert (2008-02-11): I just now checked Google News for western news sources From David Cochrane (2014-03-26): https://content.time.com/time/magazine/article/0,9171,960684,00.html From Luther Ma (2014-04-22): Guo's report regarding Xinjiang From Paul Eggert (2014-06-30): http://www.sinkiang.gov.cn/service/ourworking (2014-04-22). From Paul Eggert (2017-01-05):   Guo Qing-sheng (National Time-Service Center, CAS, Xi'an 710600, China)   (Zhongguo ke ji shi liao, 中国科技史料). 2003;24(1):5-9.   http://oversea.cnki.net/kcms/detail/detail.aspx?filename=ZGKS200301000&dbname=CJFD2003   Guo Qing-sheng (Shaanxi Astronomical Observatory, CAS, Xi'an 710600, China)   An AP article "Shanghai Internat'l Area Little Changed"From P Chan (2018-05-07):  1986-04-12 http://www.zj.gov.cn/attach/zfgb/198608.pdf p.21-22  1987-02-15 http://www.gov.cn/gongbao/shuju/1987/gwyb198703.pdf p.114  1987-09-09 http://www.gov.cn/gongbao/shuju/1987/gwyb198721.pdf p.709  1992-03-03 http://www.gov.cn/gongbao/shuju/1992/gwyb199205.pdf p.152   http://data.people.com.cn/pic/101p/1988/04/1988041201.jpg可见,2014年前IANA收集中国时区信息的来源还多是在西方的新闻,杂志,台湾的网站等等。2014年之后收集的信息来自中国的西安授时中心,国家门户网址等。此外,因为很多国家的时区信息经常变更,IANA通用时区数据库中的时区数据会经常更新。GaussDB(DWS)作为一个面向全球的通用数据库产品,也会在每次发表新版本时从IANA同步最新的时区信息,确保用户的软件产品保持最新的时区信息。我国很少变更时区信息,自从1992年取消夏令时以来,时区信息从未变更过,给我们的生产生活带来了极大的便利。国内用户也不再需要关心时区相关的问题。原文链接:https://bbs.huaweicloud.com/blogs/243151【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [存储] 华为云数仓GaussDB(DWS)全量备份总结
    数据备份恢复是保护数据安全的重要手段之一。Roach工具支持多种备份恢复类型,例如集群级的物理备份,表级备份的逻辑备份;分别支持DISK/NBU/OBS/EISOO几种备份介质;支持双集群间的容灾方案等,从而提供数据的可靠性保障机制。Roach支持如下功能:序号功能1物理备份恢复:全量备份、增量备份2逻辑备份恢复:单表、多表3物理备份集恢复到新集群4备份相关辅助功能:删除/校验/查看备份集、取消备份集5支持的存储介质:本地DISK、远端NAS/NBU/OBS/EISOO6支持的调度方式:命令行、FI、DWS管控面、EISOO界面(仅部分)7支持的集群形态:主备从、一主多备、小型化8双集群容灾:同构、异构(仅DISK)9双集群迁移:离线迁移10断点续做、NBU非侵入式部署等特性(仅部分介质)      本文将梳理Roach全量恢复的整体流程,描述Roach集群全量备份场景的运转机制,PITR、增量备份、断点续做、双集群、表级备份等功能不做阐述。一、简介       Roach的集群级备份采用的是物理备份,即通过物理文件拷贝的方式对数据库进行备份,通过备份的数据文件及日志等文件,数据库可以进行完全恢复。全量备份则是将当前时间点数据库中所有的数据进行备份。当然,全备份可以备份整块硬盘、整个分区或某个具体的目录。全备份的好处是数据恢复方便,因为所有的数据都在同一个备份中,所以只要恢复全备份,所有的数据都会被恢复。其优点是:物理备份速度快,通过合理规划,可以低成本进行备份和恢复;其缺点是:相较于增量备份备份时间较长。二、备份架构2.1 roach备份全局流程图       Roach备份采用生产者-消费者模式,下图展现了备份流程各个线程及IO交互图。exec线程作为生产者,同时为减轻exec线程的压力,增加并行的reader线程读取小文件;sender线程作为消费者;中间则是通过一个256MB(可设置)的大buffer衔接。      GaussDB内核的备份组件为GaussRoach.py和gs_roach,需在集群内拉起备份任务。2.2 调度流程GaussRoach.py:Roach单集群全量备份入口为GaussRoach.py。每次命令行输入“python GaussRoach.py –t backup…”后,roach的python语言模式就开始运行了。      任意节点均可作为主节点拉起GaussRoach.py,然后每个节点都启动gs_roach进程负责本节点备份,各节点并行备份,节点内各DN并行备份。2.3 备份具体流程2.4 接口调用       完成数据备份压缩后,需要将压缩文件传送到远端存储介质,实现存储介质与Roach备份流程松耦合,第三方介质不用关注Roach的备份流程,只需要按照接口实现即可完成与Roach的对接。同时Roach流程实现也不必关注底层存储介质实现,减少了不必要的分支判断。2.5 全量备份的内容根据Gauss数据库的功能结构,全量备份按照以下顺序备份所需要的文件:数据库相关的配置文件。行存全部数据:GaussDB A数据库支持行存。xlog日志文件:Roach支持在线业务的备份,则通过备份xlog日志文件可在恢复时将备份期间的业务Redo,保证数据一致性。列存全部数据: GaussDB A数据库支持列存。备份的数据按照每个节点为单位进行备份,所以每个节点都只存储当前节点的备份。2.6 流程分析结合Roach工具备份调度流图和日志信息分析如下:       整个备份流程的上层代码为python代码,即GaussRoach.py,master进程的创建和agent进程的拉起都是由python侧完成的。备份的配置和参数部分检查过程同样是由python侧代码完成。各个节点agent进程被拉起之后,C侧代码进行具体的业务操作。C侧代码运行起来之后,可以通过ps ux到gs_roach进程查看进程状态。No.Step①Creating Thread Roach Agent②RAGENT_EXEC_PREPARING_METADATA come③Enter the callback of rowstore copy④performBackup enter⑤Start delay ddl recycle before col file copy⑥Setting agent state to [AGNET_CREATING_BARRIER]⑦RAGENT_EXEC_BACKUP_XLOGFILES come⑧Enter the callback of colstore copy⑨Stop delay ddl recycle after having copied all col files⑩Setting Master state to [PERFORM_BOOKKEEPING_INFO]②:metadata清单即此次备份的文件清单;只要没有走到③ ,备份是没有开始的;备份时的百分比,并不代表时间维度的备份进度,只代表流程进度;只要没有打印出④ ,说明备份还没有结束,即使进度显示是100%;⑤:在此参数开启后,所有的ddl语句会在逻辑上执行,对物理文件的操作不会立即生效;⑥:create barrier之后的数据变化,将通过xlog记录来备份;⑨:关闭延迟DDL参数后,所有被延迟的对物理文件的操作,将会立即执行;2.7 备份集的存储形式备份的数据会进行压缩后写入到rch文件后存储到备份路径下的实例文件夹下,且每个rch文件大小是4GB;存放路径:[存储路径]/roach/backupkey/hostname/,其中存储路径为备份命令中指定的--media-destination的值,backupkey为当前备份开始的时间作为标识某个特定的备份集,hostname为当前节点的hostname。内容如下:Roach压缩文件*.rch的内部结构:控制备份的元数据,元数据存储路径为备份命令中指定的--metadata-destination的值,其路径下内容如下:ini文件中记录着每次备份的元信息{"BackupCount":1,"BackupDetails":[{"S_NO":1,"BackupKey":"20190814_163625","BackupType":"FULL", …….}roach文件夹存储的为特定某个备份的元信息2.8 日志回收       日志是查看代码运行状态和错误定位的重要文件,Roach内核的回收日志只能保证一个日志回收点:$GAUSSLOG/roach/。      Roach日志的管理可分为三类:agent文件夹保存了内核侧生成的日志;controller文件夹保存了python侧的调度信息;frame文件夹保存了双集群容灾过程中python侧代码生成的日志。(1)内核日志缺省情况下,内核日志仅记录警告及以上级别的消息。Roach工具支持的日志级别,及默认只有ERROR和Warning级别日志。执行命令可开启INFO级别日志,--logging –logging-level INFO如果备份或恢复操作失败,可查看控制台中显示的错误汇总,识别发生错误的主机。(2)系统日志Linux记录系统事件至系统日志中。Roach工具将FATAL及ERROR消息记入相同的系统日志文件。例如,在运行SUSE Linux操作系统的设备上,Roach写日志到/var/log/messages文件。(3)安全日志用户可以保存所有活动信息到文件中。安全日志文件包括时间戳,以及备份,恢复和生成文件的详细信息。安全日志文件的文件名称格式如下:roach-agent-security-YYYY-MM-DD_HHMMSS.log。(4)控制器日志控制器日志为python脚本运行日志,用户可以保存控制器日志信息到文件中。控制器日志文件的格式如下:roach-controller-YYYY-MM-DD_HHMMSS.log。例如:roach-controller-2015-12-15_203415.log      遇到故障时,结合打屏信息和相应位置的日志文件,可以快速定位到出错位置,提高解决问题效率。三、总结       备份能解决数据丢失的找回、数据损坏的找回和历史数据找回等功能,是构建容灾方案的基础,如何快速、有效实现大数据备份功能是这个时代一个非常重要的课题。原文链接:https://bbs.huaweicloud.com/blogs/242694【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [测试] GaussDB(DWS)大集群集群运维技巧
    【摘要】 运维大集群操作方式分享提高查看、执行效率.在日常运维大集群时,分发安装包、安装软件、观察集群和收集集群相关信息时,存在节点多,操作繁琐,耗时长等问题,下面有一些运维大集群操作方式分享可以提高查看、执行效率。分发部署大集群所有服务器维护可使用GaussDB 集群内工具 pssh pscp进行批量操作(所有机器有互信为前提):服务器系统参数查看是否统一:pssh -P -h ip_all_192.X "grep 'kernel.panic =' /etc/sysctl.conf" 服务器系统参数统一修改:pssh -P -h ip_all_192.X "sed -i '/kernel.panic =/d' /etc/sysctl.conf"pssh -P -h ip_all_192.X "echo 'vm.panic_on_oom = 2' >> /etc/sysctl.conf"发送一个文件到所有服务器:pscp -h ip_ganglia_256 -l root /opt/backup_dir/256/gmond.conf /usr/local/etc/gmond.confcore设置(suse):alias set_core="pssh -t 300 -p 200 -P -h /opt/ip_list/ip_all_172.X \"mkdir -p /home/core;chmod 777 /home/core;sed -i '/^.*core.*unlimited/d' /etc/security/limits.conf;echo '*               soft    core           unlimited'  >> /etc/security/limits.conf;echo '*               hard    core           unlimited'  >> /etc/security/limits.conf;echo '1'>/proc/sys/kernel/core_uses_pid;echo '1'>/proc/sys/kernel/suid_dumpable;echo '/home/core/core-%e-%u-%s-%t-%h-%p' >/proc/sys/kernel/core_pattern;\" "大集群相关目录批量创建配置:pssh -P -h ip_all_172.X "mkdir -p /opt/XML/;mkdir -p /opt/env_gaussdb;chmod -R 777 /dev/cgroup;chown root:root /opt/XML;chmod 777 /opt/XML;chmod 777 /opt/env_gaussdb;touch /var/log/btmp;mkdir -p /opt/system_monitor;chmod 777 /opt/system_monitor"pssh -P -h ip_all_172.X "mkdir -p /data{1..4}/DataBig;chown root:root /data{1..4};chown root:root /data{1..4}/DataBig;chmod 777 /data{1..4};chmod 777 /data{1..4}/DataBig"根据机器性能,可以调整pssh并发能力vi `which pssh`同样通过如下方式编写shell也可以实现:#!/bin/shfor i in `cat /srv/BigData/mppdb/data5/backup/iplist_all`;do ssh -q $i date;donelvs批量配置:安装:pssh -t 300 -P -h /opt/ip_list/ip_120_172.X "source /opt/env_gaussdb/cluster_1025;/data1/DataBig/clu_01/wisequery/script/gs_loadbalance -t install -U clu_01 -X /opt/XML/cluster_120x4_0120.xml --master=linux1111 --standby=linux1112 --lvs-addr=172.xx.xx.xx"卸载:pssh -t 300 -P -h /opt/ip_list/ip_120_172.X "source /opt/env_gaussdb/cluster_1025;/data1/DataBig/clu_01/wisequery/script/gs_loadbalance -t uninstall -U clu_01 -X /opt/XML/cluster_120x4_0120.xml"结果收集查看集群内节点的一些配置是否统一,gs_ssh -c "date" ##查看集群节点时间是否统一或者查看集群内某个节点的磁盘空间使用高于某个限定值。gs_ssh -c "df -h | grep '[5-9][0-9]%'" | grep -v  FAILURE  ##查看哪些节点的磁盘高于50%关闭集群时,长时间集群无法关闭, 通过此工具可以发现哪个节点上还残留进程,快速定位:gs_ssh -c "ps ux |grep -E 'cm_agenr|cm_server|gaussdb|gtm'| grep -v 'check'” 集群安装后可以通过gs_ssh工具批量查询和收集信息:gs_ssh -c 'gsql -p 25308 -d postgres -c "show all;"'资源观察监控脚本提前编辑好,分发到服务器各个节点通过快捷方式进行启动关闭alias stop_monitoring="pssh -t 300 -p 200 -P -h /opt/ip_list/ip_all_172.X \" sh /opt/system_monitor/kill.sh \" "alias start_monitoring="pssh -t 300 -p 200 -P -h /opt/ip_list/ip_all_172.X \" sh /opt/system_monitor/system_check.sh > /opt/system_monitor/run.log 2>&1 &  \" "作业分析根据从作业日志得到的报错信息 到各个CN节点去检索日志 再根据检索出的CN日志信息 获取相关的query_id、dn编号去到DN 所在的节点去获取DN日志。集群的CN ip写入到一个文件通过遍历方式到各个节点去检索日志:path=`pwd`hostfilepath="$path"cmd=$1hostfile=$2for node in `cat ${hostfilepath}/${hostfile}`do    echo "------------------------------------------ $node --------------------------------------------"    ssh $node "${cmd}"donesh exe.sh "grep 'ERROR timeout expired' /data2/DataBig/mpp_120/log/gaussdba/mpp_120/pg_log/cn*/postgresql-2021-02*log" cn原文链接:https://bbs.huaweicloud.com/blogs/242496【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
总条数:2746 到第 页
上滑加载中