当前位置:首页|资讯

openGauss6.0.0(LTS)企业版搭建主备集群保姆级部署手册

作者:Gauss松鼠会发布时间:2024-10-17


前言:

openGauss 6.0.0(LTS)是openGauss 2024年9月发布的LTS版本,该版本生命周期为3年。当前文档是基于openGauss 6.0.0(LTS)企业版搭建的测试环境。

一、了解openGauss

1.1、openGauss概况

openGauss是一款全面友好开放,携手伙伴共同打造的企业级开源关系型数据库。openGauss提供面向多核架构的极致性能、全链路的业务、数据安全、基于AI的调优和高效运维的能力。openGauss深度融合华为在数据库领域多年的研发经验,结合企业级场景需求,持续构建竞争力特性。openGauss网站 (https://opengauss.org/zh/ ) 提供了有关openGauss软件的最新信息。

1.2、openGauss 6.0.0(LTS)是新一代数据库管理系统

openGauss 6.0.0版本在AI领域带来了一系列的新特性和升级,这些特性旨在提升数据库的智能化水平,使其更好地支持人工智能应用。以下是一些关键点:

  • AI集成:openGauss通过内置AI引擎实现了与多种AI框架和算法的无缝集成,包括TensorFlow、PyTorch等,允许用户直接在数据库中运行AI任务,无需将数据导出到外部平台。

  • AI优化:利用AI技术对数据库查询进行优化,通过对历史查询数据的分析,智能选择最优的查询计划,提高查询效率。

  • AI预测:提供了基于AI的预测功能,可以根据历史数据预测未来的趋势和变化,帮助用户提前做出决策。

  • AI安全:通过AI技术增强了数据库的安全性,能够识别异常行为、防止数据泄露,并提供智能化的安全建议。

  • 深度学习框架集成:openGauss内置了多种深度学习框架的接口,使得用户可以方便地在数据库中运行深度学习模型,实现图像识别、自然语言处理等任务。

  • 强化学习优化查询:采用强化学习技术,通过不断尝试和学习,找到最优的查询计划,从而提高查询效率。

  • 时间序列预测:利用时间序列分析技术,对历史数据进行分析和建模,预测未来的变化趋势,为用户提供决策支持。

  • AI安全引擎:集成了AI安全引擎,通过机器学习技术对数据库行为进行分析,识别异常行为,提供安全预警和建议。

  • 性能优化:在主备复制方面进行了优化,新版本在数据同步和故障恢复方面表现优异,能够满足大多数业务场景的需求。

  • 中文日志支持:新版本增加了中文日志支持功能,便于国内用户更直观地理解数据库的运行状态和错误信息。

  • 多版本支持:提供了企业版和轻量版两个安装版本,以满足不同用户的需求。

  • AI4DB能力:包括参数智能调优与诊断、慢SQL发现、索引推荐、时序预测、异常检测等,实现自调优、自监控、自诊断等功能。

  • DB4AI能力:兼容MADlib生态,支持70+算法,新增了XGBoost、prophet、GBDT等高级算法套件,统一SQL到机器学习的技术栈,实现从数据管理到模型训练的SQL语句“一键驱动”。
    这些新特性和升级显著提升了openGauss数据库在AI领域的能力,使其成为一个更加强大和灵活的数据管理平台。

二、初始化操作系统环境

2.1、安装准备

了解安装openGauss的环境准备和配置,主要步骤如下:

  • 了解安装流程
    本章节通过流程图简要介绍openGauss的安装流程。

  • 获取安装包
    openGauss开源社区上提供了安装包的获取方式。

  • 准备软硬件安装环境
    本章节描述安装前需要进行的环境准备。

  • 了解安装用户及用户组
    为了实现安装过程中安装帐户权限最小化,及安装后openGauss的系统运行安全性,安装脚本在安装过程中会自动按照用户指定内容创建安装用户,并将此用户作为后续运行和维护openGauss的管理员帐户。

2.2、 了解安装流程图

说明:流程图简要介绍openGauss的安装流程。

openGauss的安装流程如图1所示。


image.png

表 1 安装流程图说明

2.3、 准备软硬件安装环境

本章节描述安装前需要进行的环境准备。

  • 软硬件环境要求

  • 修改操作系统配置

  • 设置root用户远程登录

2.3.1、 硬件环境要求

表1列出了openGauss服务器应具备的最低硬件要求。在实际产品中,硬件配置的规划需考虑数据规模及所期望的数据库响应速度。请根据实际情况进行规划。

表 1 硬件环境要求

2.3.2、软件环境要求

表 2 软件环境要求


注意: 安装集群时,要求各个节点的python版本一致。

2.3.3、软件依赖要求

表 3 软件依赖要求

注意:

  • 1.关闭操作系统防火墙:
    为了在防火墙开启的状态下,确保openGauss的正常使用。用户需要将同openGauss相关的服务、协议、IP以及端口添加到openGauss各主机的防火墙白名单中。

  • 使用root用户进行操作,操作完成后请及时注销root用户,避免误操作。

2.4、 openGauss部署主机信息

说明:以下操作需在2台主机上执行(Node1、Node2)。

2.5、检查环境

操作系统版本:

CPU核数:

内存大小:

2.6、安装依赖

2.7、检查Python版本

说明:本例未安装Python3,需安装Python3.
代码如下:

2.8、关闭SELINUX

2.9、关闭RemoveIPC

说明:在各数据库节点上,关闭RemoveIPC。CentOS操作系统默认为关闭,可以跳过该步骤。

2.10、修改内核

2.11、关闭防火墙

说明:目前仅支持在防火墙关闭的状态下进行安装。

2. 12、检查服务器主机时间

说明:如果当前时间与本地时间不一致,需修改。

2.13、关闭HISTORY记录

2.14、修改字符集

查看本地字符集:

修改字符集:

查看字符集:

2.15、修改hosts

2.16、创建互信

2.17、以上设置完毕,重启主机。

三、初始化openGauss部署环境

3.1、新建管理用户

3.2、创建安装目录

目录规划:

代码如下:

3.3、配置sudo,使用root账户

注意:生产环境不建议开启。

3.4、下载安装包

  • 说明:
    下载地址:https://opengauss.org/zh/download/
    选择openGauss 6.0.0 (LTS)企业版;
    需登录社区账户才能下载。

1、下载示意图如下:

image.png官网下载示意图

企业版地址:
https://opengauss.obs.cn-south-1.myhuaweicloud.com/6.0.0/CentOS7/x86/openGauss-All-6.0.0-CentOS7-x86_64.tar.gz
代码如下:

2、解压安装包

代码如下:

3、解压OM安装包

代码如下:

4、拷贝cluster.xml集群配置文件

说明:
1、集群模板文件cluster_tmp.xml位于安装目录下的/openGauss/script/base_utils/template/cluster_tmp.xml
2、将cluster_tmp.xml重命名为cluster.xml
代码如下:

5、编辑cluster.xml集群配置文件

说明:根据实际环境修改。
代码如下:

四、opeGauss部署

4.1、检查部署环境

说明:主要用于检查操作系统、控制参数、磁盘配置等内容,并对系统控制参数、I/O配置、网络配置和THP服务等信息进行配置。
代码如下:

4.2、预安装

说明:安装前置脚本gs_preinstall可以协助用户自动完成如下的安装环境准备工作:

  • 自动设置Linux内核参数以达到提高服务器负载能力的目的。这些参数直接影响数据库系统的运行状态,请仅在确认必要时调整。openGauss所设置的Linux内核参数取值请参见配置操作系统参数。

  • 自动将openGauss配置文件、安装包拷贝到openGauss主机的相同目录下。

  • openGauss安装用户、用户组不存在时,自动创建安装用户以及用户组。

  • 读取openGauss配置文件中的目录信息并创建,将目录权限授予安装用户。
    代码如下:

注意事项

  • 用户需要检查上层目录权限,保证安装用户对安装包和配置文件目录读写执行的权限。

  • xml文件中各主机的名称与IP映射配置正确。

  • 使用root或普通用户执行gs_preinstall命令。

  • 使用root用户执行gs_preinstall会清理/etc/hosts中的openGauss映射信息,可能存在已部署数据库连接丢失风险,可以在安装结束后手动添加其它数据库映射至/etc/hosts文件中。

  • gs_preinstall指定的用户不支持使用-d手动选定家目录,仅支持系统默认创建的/home下和用户同名的/home目录。

  • 本产品支持同一操作系统大版本下的小版本混合部署,其支持列表如下:CentOS 6.4/6.5/6.6/6.7/6.8/6.9、CentOS 7.0/7.1/7.2/7.3/7.4、openEuler

4.3、使用gs_install部署集群

说明:
前提条件

  • 已成功执行前置脚本gs_preinstall。

  • 用户需确保各个节点上的locale保持一致。

  • 需要使用前置时设置的openGauss用户进行安装操作。

  • openGauss安装部署,要求用户指定配置文件,配置文件中会指定程序安装路径、实例数据目录、主备关系、实例数、各实例的业务IP端口等信息。
    语法如下:

参数说明:

  • -X openGauss配置文件。取值范围:xml配置文件。

  • -l 指定安装日志文件及日志文件存放的路径。当不明确指定-l,但在XML文件中配置了gaussdbLogPath时,默认值为“gaussdbLogPath的值、用户名和om/gs_install-YYYY-MM-DD_hhmmss.log”的组合。

  • –gsinit-parameter=PARAM 数据实例参数指定。取值范围请参见gs_initdb的参数说明,其中对-A、-D、-U、-C、-X参数的设置不生效。

  • –dn-guc=PARAM 配置参数。 取值范围请参见gs_guc的参数说明。

  • –time-out=SECS 启动超时等待时间。单位:s。若–time-out取值过小,有可能会因为需要启动的实例数过多而引起超时。若在超时时间内启动不成功,则会报错启动超时,但是openGauss会在后台继续启动。可以等待一段时间后,查询openGauss状态,检查openGauss是否启动成功。
    取值范围:正整数,若无特殊需求,不需要配置该参数,系统会自动调整超时时间。

  • –alarm-component=alarm_component 指定告警上报组件的绝对路径。

  • –enable-perf-config 在install结束后,调用gs_perfconfig调整数据库配置,以使openGauss获得比较好的性能。

  • –dorado-cluster-mode=PARAM 指定存储设备的集群模式,dorado-cluster-mode 主机群or备机群。
    取值范围:

  • primary:以资源池化dorado双集群主集群安装。

  • standby:以资源池化dorado双集群备集群安装。

  • -?, --help 显示帮助信息。

  • -V, --version 显示版本号信息。
    代码如下

五、检查安装情况

5.1、使用omm用户身份登录服务器,检查服务状态

说明:

  • 执行如下命令检查数据库状态是否正常,“cluster_state ”显示“Normal”表示数据库可正常使用。

  • 语法:gs_om -t status
    Node1:

Node2:

5.2、检查openGauss集群状态

5.3、使用omm用户身份登录数据库

说明:

  • 数据库安装完成后,默认生成名称为postgres的数据库。第一次连接数据库时可以连接到此数据库。

  • 其中postgres为需要连接的数据库名称,15400为数据库主节点的端口号,即XML配置文件中的dataPortBase的值。请根据实际情况替换。

  • 语法:gsql -d postgres -p 15400
    Node1:

Node2:

5.4、使用omm用户身份登录数据库,创建管理用户、表空间、数据库、导入测试数据

5.4.1、创建表空间存储目录

5.4.2、登录openGauss数据库,创建用户sy,创建表空间cssd、数据库cssdserver

5.4.3、实现内网访问openGauss

说明:
需要修改postgresql.conf、pg_hba.conf相关配置。

1、修改pg_hba.conf

说明:
默认用户omm无法远程登录,需要创建使用用户sy登录,密码验证方式为sha256。

2、修改postgresql.conf

说明:

  • 密码验证方式为1,md5、sha256都支持

  • 建议开启归档,创建归档目录;

  • 修改密码策略后,需修改密码才能登录。

5.5、使用navicat访问openGauss

说明:

  • Server:192.168.1.61

  • DataBase:cssdserver

  • Port: 15400

  • UserName:sy

  • Password:Sy@123456
    登录如下图:

六、相关问题

6.1、错误代码:ascii’ codec can’t decode byte 0xe2 in position 0: ordinal not in range(128)

代码如下:

解决:

6.2、错误代码:[GAUSS-50102] : The /openGauss/log/omm/omm is not writable for omm.

代码如下:

解决方案

七、总结

openGauss数据库主备集群部署模式,可以提供高可用性和数据冗余,以防止单点故障导致的数据丢失。在主备集群中,主节点负责处理所有的写操作,而备节点则同步主节点的数据变化,并在主节点出现故障时接管服务。

7.1、主备同步机制

openGauss的主备同步通常是通过流复制来实现的。在启动备节点时,备节点会启动一个startUp线程,尝试连接到主节点并开始接收和应用主节点的日志变更(WAL,Write-Ahead Logging)。一旦连接成功,备节点会触发启动wal receiver线程,随后wal receiver线程会发送信号启动wal sender线程。wal receiver线程与主库完成身份验证和日志一致性校验后,主库进入WalSndLoop开始日志复制循环。

7.2、故障转移和角色切换

当主节点发生故障时,集群管理会感知并基于Quorum协议进行选主仲裁。集群管理服务(CMS)会周期性地检测数据库的主备状态,如果发现主机不能正常提供服务,则会触发选主仲裁。CMS会根据当前数据库状态进行仲裁逻辑的推进,最终选出一个新的主节点来接管服务。

7.3、资源池化和容灾能力

openGauss还支持资源池化主备双集群容灾,这种模式可以通过网络流复制或基于特定存储设备的同步复制来实现。资源池化双集群容灾通过多种同步方式将主集群的xlog日志同步至备集群,备集群通过回放来自主集群的xlog实现数据一致性,以便于主集群发生严重故障时,备集群可以及时接管主集群业务1。

7.4、高可用特性

openGauss的高可用特性不仅限于主备同步,还包括逻辑复制、物理备份、作业失败自动重试、极致RTO(Recovery Time Objective)、级联备机、延时回放、备机增加删除、延迟进入最大可用模式、并行逻辑解码、DCF(Data Center Failover)、CM(Cluster Manager)等。这些特性共同构成了openGauss强大的高可用能力,确保了数据库服务的连续性和数据的安全性。

综上所述,openGauss主备集群通过流复制机制实现数据的实时同步,并通过集群管理服务提供故障转移和角色切换的自动化支持,从而达到高可用性的目标。此外,openGauss还提供了一系列高可用特性,以适应不同的业务需求和容灾场景。

openGauss6.0.0(LTS)版本已经发布,亲爱的小伙伴们,赶快体验吧!!!

本文作者:沈阳
简介:目前从事于医疗信息化系统的维护。非常荣幸能在此与各位老师分享我在学习openGauss数据库时的一些见解和经验。
由于近几年的去“O”浪潮,要求我们必须要与时俱进,持续学习国产数据库。openGauss数据库学习,让我认识到要想学好国产数据库,必须学好openGauss数据库。openGauss数据库的学习,不仅深化了我对国产数据库技术的理解。还让我学习到openGauss充分运用智能化来优化运营效率以及提升用户体验方面的重要性。
本人积极参加社区活动、线下交流会、通过公众号等形式分享学习成果,让更多的人了解国产数据库的使用方法,为国产数据库社区贡献自己的力量,为信创国产化增砖添瓦。


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1