GaussDB 企业版轻量化部署探索(二)

GaussDB 企业版轻量化部署探索(二)

    </div>

</div>

    
<article class="baidu_pl">
    <div id="article_content" class="article_content clearfix">
    <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css">
    <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-704d5b9767.css">
         
            <div id="content_views" class="htmledit_views">
                <p>华为<a href="https://so.youkuaiyun.com/so/search?q=%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93&amp;spm=1001.2101.3001.7020" target="_blank" class="hl hl-1" data-report-click="{&quot;spm&quot;:&quot;1001.2101.3001.7020&quot;,&quot;dest&quot;:&quot;https://so.youkuaiyun.com/so/search?q=%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93&amp;spm=1001.2101.3001.7020&quot;,&quot;extra&quot;:&quot;{\&quot;searchword\&quot;:\&quot;高斯数据库\&quot;}&quot;}" data-tit="高斯数据库" data-pretit="高斯数据库">高斯数据库</a>(<code>GaussDB</code>)是目前<a href="https://so.youkuaiyun.com/so/search?q=%E5%9B%BD%E4%BA%A7%E6%95%B0%E6%8D%AE%E5%BA%93&amp;spm=1001.2101.3001.7020" target="_blank" class="hl hl-1" data-report-click="{&quot;spm&quot;:&quot;1001.2101.3001.7020&quot;,&quot;dest&quot;:&quot;https://so.youkuaiyun.com/so/search?q=%E5%9B%BD%E4%BA%A7%E6%95%B0%E6%8D%AE%E5%BA%93&amp;spm=1001.2101.3001.7020&quot;,&quot;extra&quot;:&quot;{\&quot;searchword\&quot;:\&quot;国产数据库\&quot;}&quot;}" data-tit="国产数据库" data-pretit="国产数据库">国产数据库</a>中综合实力比较靠前的数据库之一。高斯数据库有单机开源版openGauss和企业版(包括集中式和分布式)。本文接上文《<a href="https://blog.youkuaiyun.com/GaussDB/article/details/144527407?spm=1001.2014.3001.5502" title="GaussDB 企业版轻量化部署探索">GaussDB 企业版轻量化部署探索</a>》继续分享如何使用<code>TPOPS</code>在小规格内存服务器上部署<code>GaussDB</code>实例。原本使用自动化平台<code>TPOPS</code>部署<code>GaussDB</code>很简单,完全看产品能力,没有什么特别写的。然而实际难在平台对部署用的服务器内存规格要求是<code>8U64G</code>以上经常看我文章的朋友都了解,在小规格服务器上部署国产数据库是一大挑战,也是熟悉产品运维原理的一个独特的途径。对于大部分初学者想了解<code>GaussDB</code>,第一个门槛就是服务器配置。所以希望本文能带给大家一些启发破除这个限制。跟前面一样,整个过程困难很多,都是个人理解,仅用于学习。欢迎懂行的朋友留言或加好友交流。</p> 

部署准备

安装软件包准备

TPOPS作为自动化运维平台,需要管理 GaussDB相关软件包。

图片

TPOPS上传安装包

GaussDB的软件包比较多且大,可以通过界面上传,也可以直接复制软件到TPOPS服务器上指定路径(/opt/sftphome/sftpservice/package/scan/)下,然后再在平台里选择“扫描上传”。为避免上传文件损坏,还需要提供每个软件包对应的校验文件。这个功能非常用心。

图片

TPOPS扫描上传历史记录

主机准备

上篇文章没有介绍服务器和操作系统,这里补充说明一下。CPU 是Intel的,服务器是虚拟机,操作系统必须是麒麟操作系统(SP2)或者通信系统(uniotech)。操作系统实际我用的是Kylin V10 SP2SP3不行,可能跟我下载的软件版本有关)。

主机上除了操作系统盘外,还需要一块独立的物理盘(如果没有盘会在添加主机的时候报错),物理盘不需要格式化文件系统。

数据库主机总是要做一些内核参数修改之类,这个TPOPS会在添加主机的时候做。相关的基础软件包需要自己安装,这个文档里说的很具体就不重复了。

添加主机

添加主机前先创建好对应的机房信息。

图片

TPOPS机房维护

然后就是在对应的机房里添加主机。

图片

网络方面支持三个网段到 IP ,这个贴合企业实际运维环境。这里有个概念“沙箱目录”,暂时还不知道做什么用的。

添加主机会以任务流的方式执行。

图片

添加任务可能会因为一些准备不符合条件而失败。比如说主机的字符集不是英文。

failed due to application method exceptionexception=message:host detection [Character Set Parameters] not pass, please view host detect report and configure host.
 
 
 
AI助手

修复方法,在主机上设置 LANG 变量值,然后重跑任务。

echo 'export LANG=en_US.UTF-8' >> /etc/profile
 
 
 
AI助手

图片

图片

选择失败的子任务,重跑任务后就成功了。

图片

部署 GaussDB 实例

实例管理包含两个功能:部署(新)实例和纳管(旧)实例。后者推测可以用于纳管通过脚本部署的GaussDB或者纳管其他低版本TPOPS部署的实例。这些确实是运维常见场景。

部署新实例

这次只测试了部署新实例功能。

图片

在部署形态上有很多种选择,既有主备版本又有分布式版本。主备版本又分单节点、2节点、3节点、5节点。5节点还分1主4备或1主3备1仲裁。分布式版本分单节点、3节点、4节点、5节点、9节点多种形态。

图片

这也是GaussDB使用场景多样化决定,里面的原理展开说很多,以后再专门总结。

这次我选择简单一点的主备版本2节点。

图片

实例部署选项里还要选择一个 NAS 路径,推测是备份路径。最终申请实例前会汇总确认一下信息。

图片

提交申请后,正常情况下后台任务中心会新增一条安装实例的任务。

安装实例的任务流就相对更复杂一些。下面记录一下任务流子任务步骤,方便以后研究各个子任务的功能。

图片

安装实例任务流(1/3)

图片

安装实例任务流(2/3)

图片

安装实例任务流(3/3)

说到任务流设计,这是自动化运维平台的基本功能,一般使用一种框架编程技术。这样能降低新增子任务的开发成本。任务流都有详细的日志,了解日志的分析方法也是运维的基本要求。否则,碰到任务报错就只能看着错误码去找官网文档。而文档在这方面的解释上都是“惜字如金”。

实例简单介绍

实例部署成功后就出现在实例管理页面里。

图片

查看实例详情,信息也不是很多。

图片

可以看到主备2节点实例有2个CM节点(互为主备)、3个DN节点(1主2备,2个备共用一个节点)

实例参数页面提供参数描述和修改,大部分参数跟 PostgreSQL参数同理。

图片

TPOPS实例参数

实例性能诊断页面也是包含 SQL诊断、会话管理、性能报告等功能。这些功能都比较基础。前文提过如果要使用 AI 诊断能力,还需要部署一个 DBMind 实例,这个等以后再说。

图片

TPOPS实例诊断

其他数据库运维基本功能也都具备,包括数据库管理、用户管理、备份恢复管理、日志分析等。

图片

TPOPS日志分析

大部分精力耗在解决下面这个部署规格限制上了,所以这次就不去分析实例的物理结构特征了。

TPOPS 平台分析

实例部署规格分析

正常情况下,上面实例部署会很顺利,大概几分钟到十几分钟就可以部署好。

下面就是我部署实例之前的报错信息:DBS.280240:所选规格不存在。 这里从这个问题入手尝试分析讨论一下TPOPS这个自动化运维产品的一些功能设计考虑点。

图片

查看该版本 TPOPS使用文档里,明确说明GaussDB主备版支持4U16G8U32G

图片

多次尝试无果,最终从一个现场技术得到一个答复建议主机规格不低于8U64G

使用手册里的文档内容自然是没有错的,只是没有跟产品版本保持同步。文档这么写也自然是以前部署时支持小内存规格的服务器上部署GaussDB实例。很有可能是内部本来是这么用的,只是当GaussDB要产品化对外输出时,面临千奇百怪的用户环境和很多小白用户时,小内存规格的GaussDB很可能因为使用者运维不当而出现稳定性问题、性能问题等等。

所以为了减少数据库使用问题带来的售后成本,产品 TPOPS在部署GaussDB实例的时候对服务器规格设置了一个技术限制(门槛)。这个门槛能否破除呢?文档不会解释,只能靠自己摸索了。

如果这个技术限制是写在应用代码里(如JAVA),那普通用户就毫无办法了,只可能通过另外一条路径去实现了(如用脚本在小规格服务器上部署GaussDB,然后通过TPOPS纳管实例。还不知道行不行。)。但是好的自动化运维平台在设计上不会有这种硬编码的逻辑,而是采取配置化的方法。相关的参数写在配置文件里或者元数据库表里。

平台元数据库

这里就说到自动化运维平台的核心:元数据库了。学习一个自动化运维平台的设计最快的方法就是研究它的元数据库表结构设计以及平台发出的 SQL。TPOPS平台的元数据库必须是一个GaussDB。这里就看看元数据库,也顺便初步了解一些 GaussDB用法(绝大部分跟PostgreSQL用法一样)。


 
 
 
  1. [dbadmin@gauss 68 dn_ 6001]$ rlwrap gsql -h 127.0.0.1 -p  8635 -U rdsAdmin -W  ** ** ** core
  2. gsql ((GaussDB Kernel  505.1.RC 1.SPC 0100 build b 579cd 12) compiled  at  2024- 03- 24  16: 42: 44  commit  8436  last mr  16721  release)
  3. SSL connection (cipher: ECDHE-RSA-AES 128-GCM-SHA 256, bits:  128)
  4. Type  "help"  for help.
  5. core =# \l +
  6.                                                                  List  of databases
  7.    Name    |  Owner   | Encoding  | Collate | Ctype |    Access privileges   |   Size  | Tablespace |                   Description                   
  8. ----------- +---------- +----------- +--------- +------- +----------------------- +-------- +------------ +-------------------------------------------------
  9.  backup    | root     | SQL_ASCII | C       | C     |                       |  77 MB  | pg_ default | 
  10.  core      | root     | SQL_ASCII | C       | C     |                       |  105 MB | pg_ default | 
  11.  log       | root     | SQL_ASCII | C       | C     |                       |  24 MB  | pg_ default | 
  12.  metric    | rdsAdmin | SQL_ASCII | C       | C     |                       |  24 MB  | pg_ default | 
  13.  postgres  | rdsAdmin | SQL_ASCII | C       | C     |  =Tc /rdsAdmin          +741 MB | pg_ default |  default administrative connection database
  14.            |          |           |         |       | rdsAdmin =CTc /rdsAdmin +|        |            | 
  15.            |          |           |         |       | backupUser =c /rdsAdmin +|        |            | 
  16.            |          |           |         |       | repUser =c /rdsAdmin    +|        |            | 
  17.            |          |           |         |       | root =c /rdsAdmin       +|        |            | 
  18.            |          |           |         |       | metricUser =c /rdsAdmin +|        |            | 
  19.            |          |           |         |       | jxy 001 =c /rdsAdmin     |        |            | 
  20.  template 0 | rdsAdmin | SQL_ASCII | C       | C     |  =c /rdsAdmin           +24 MB  | pg_ default |  default template  for new databases
  21.            |          |           |         |       | rdsAdmin =CTc /rdsAdmin |        |            | 
  22.  template 1 | rdsAdmin | SQL_ASCII | C       | C     |  =c /rdsAdmin           +24 MB  | pg_ default | unmodifiable empty database
  23.            |          |           |         |       | rdsAdmin =CTc /rdsAdmin |        |            | 
  24.  templatem | rdsAdmin | SQL_ASCII | C       | C     |  =c /rdsAdmin           +19 MB  | pg_ default | unmodifiable MySQL compatible template database
  25.            |          |           |         |       | rdsAdmin =CTc /rdsAdmin |        |            | 
  26.  wfs       | root     | SQL_ASCII | C       | C     |                       |  37 MB  | pg_ default | 
  27. ( 9 rows)
AI助手

元数据库核心的表在core下,监控数据在metric下。其他还有几个模块分别有自己的数据库。在 core数据库下又细分了很多 schema,对应的是 TPOPS 的某些功能。


 
 
 
  1. core =# \dn +                                                                                 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值