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&spm=1001.2101.3001.7020" target="_blank" class="hl hl-1" data-report-click="{"spm":"1001.2101.3001.7020","dest":"https://so.youkuaiyun.com/so/search?q=%E9%AB%98%E6%96%AF%E6%95%B0%E6%8D%AE%E5%BA%93&spm=1001.2101.3001.7020","extra":"{\"searchword\":\"高斯数据库\"}"}" 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&spm=1001.2101.3001.7020" target="_blank" class="hl hl-1" data-report-click="{"spm":"1001.2101.3001.7020","dest":"https://so.youkuaiyun.com/so/search?q=%E5%9B%BD%E4%BA%A7%E6%95%B0%E6%8D%AE%E5%BA%93&spm=1001.2101.3001.7020","extra":"{\"searchword\":\"国产数据库\"}"}" 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 SP2 (SP3不行,可能跟我下载的软件版本有关)。
主机上除了操作系统盘外,还需要一块独立的物理盘(如果没有盘会在添加主机的时候报错),物理盘不需要格式化文件系统。
数据库主机总是要做一些内核参数修改之类,这个TPOPS会在添加主机的时候做。相关的基础软件包需要自己安装,这个文档里说的很具体就不重复了。
添加主机
添加主机前先创建好对应的机房信息。

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

网络方面支持三个网段到 IP ,这个贴合企业实际运维环境。这里有个概念“沙箱目录”,暂时还不知道做什么用的。
添加主机会以任务流的方式执行。

添加任务可能会因为一些准备不符合条件而失败。比如说主机的字符集不是英文。
failed due to application method exception; exception=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主备版支持4U16G、8U32G。

多次尝试无果,最终从一个现场技术得到一个答复建议主机规格不低于8U64G。
使用手册里的文档内容自然是没有错的,只是没有跟产品版本保持同步。文档这么写也自然是以前部署时支持小内存规格的服务器上部署GaussDB实例。很有可能是内部本来是这么用的,只是当GaussDB要产品化对外输出时,面临千奇百怪的用户环境和很多小白用户时,小内存规格的GaussDB很可能因为使用者运维不当而出现稳定性问题、性能问题等等。
所以为了减少数据库使用问题带来的售后成本,产品 TPOPS在部署GaussDB实例的时候对服务器规格设置了一个技术限制(门槛)。这个门槛能否破除呢?文档不会解释,只能靠自己摸索了。
如果这个技术限制是写在应用代码里(如JAVA),那普通用户就毫无办法了,只可能通过另外一条路径去实现了(如用脚本在小规格服务器上部署GaussDB,然后通过TPOPS纳管实例。还不知道行不行。)。但是好的自动化运维平台在设计上不会有这种硬编码的逻辑,而是采取配置化的方法。相关的参数写在配置文件里或者元数据库表里。
平台元数据库
这里就说到自动化运维平台的核心:元数据库了。学习一个自动化运维平台的设计最快的方法就是研究它的元数据库表结构设计以及平台发出的 SQL。TPOPS平台的元数据库必须是一个GaussDB。这里就看看元数据库,也顺便初步了解一些 GaussDB用法(绝大部分跟PostgreSQL用法一样)。
-
[dbadmin@gauss
68 dn_
6001]$ rlwrap gsql -h
127.0.0.1 -p
8635 -U rdsAdmin -W
**
**
** core
-
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)
-
SSL connection (cipher: ECDHE-RSA-AES
128-GCM-SHA
256, bits:
128)
-
Type
"help"
for help.
-
-
core
=# \l
+
-
List
of databases
-
Name | Owner | Encoding | Collate | Ctype |
Access privileges |
Size | Tablespace | Description
-
-----------
+----------
+-----------
+---------
+-------
+-----------------------
+--------
+------------
+-------------------------------------------------
-
backup | root | SQL_ASCII | C | C | |
77 MB | pg_
default |
-
core | root | SQL_ASCII | C | C | |
105 MB | pg_
default |
-
log | root | SQL_ASCII | C | C | |
24 MB | pg_
default |
-
metric | rdsAdmin | SQL_ASCII | C | C | |
24 MB | pg_
default |
-
postgres | rdsAdmin | SQL_ASCII | C | C |
=Tc
/rdsAdmin
+|
741 MB | pg_
default |
default administrative connection database
-
| | | | | rdsAdmin
=CTc
/rdsAdmin
+| | |
-
| | | | | backupUser
=c
/rdsAdmin
+| | |
-
| | | | | repUser
=c
/rdsAdmin
+| | |
-
| | | | | root
=c
/rdsAdmin
+| | |
-
| | | | | metricUser
=c
/rdsAdmin
+| | |
-
| | | | | jxy
001
=c
/rdsAdmin | | |
-
template
0 | rdsAdmin | SQL_ASCII | C | C |
=c
/rdsAdmin
+|
24 MB | pg_
default |
default template
for new databases
-
| | | | | rdsAdmin
=CTc
/rdsAdmin | | |
-
template
1 | rdsAdmin | SQL_ASCII | C | C |
=c
/rdsAdmin
+|
24 MB | pg_
default | unmodifiable empty database
-
| | | | | rdsAdmin
=CTc
/rdsAdmin | | |
-
templatem | rdsAdmin | SQL_ASCII | C | C |
=c
/rdsAdmin
+|
19 MB | pg_
default | unmodifiable MySQL compatible template database
-
| | | | | rdsAdmin
=CTc
/rdsAdmin | | |
-
wfs | root | SQL_ASCII | C | C | |
37 MB | pg_
default |
-
(
9 rows)
AI助手
元数据库核心的表在core下,监控数据在metric下。其他还有几个模块分别有自己的数据库。在 core数据库下又细分了很多 schema,对应的是 TPOPS 的某些功能。
-
core
=# \dn
+


最低0.47元/天 解锁文章
1122

被折叠的 条评论
为什么被折叠?



