暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss数据库源码解析系列文章——openGauss开发快速入门(上)

Gauss松鼠会 2021-03-30
1338

Gauss松鼠会
学习 探索 分享数据库前沿知识 共建数据库技术交流圈
关注
为openGauss数据库开发者,在基于开源社区的openGauss版本进行二次开发的过程中,需要完成软件包获取、源码了解、代码修改、编译发布过程,同时还需要安装数据库以了解数据库的基本特点、验证开发的功能实现情况,本篇将简要介绍openGauss的安装部署方法。

一、 安装部署

作为openGauss数据库开发者,除了基于openGauss开源产品进行二次开发外,往往也需要了解openGauss的特点和使用方法,同时验证所开发的功能的实现情况。本篇向读者简要介绍openGauss的安装部署方法,详细的内容请参见openGauss官方社区(https://opengauss.org)。

(一) 了解安装流程

本篇通过流程图简要介绍openGauss的安装流程。openGauss的安装流程如图1所示。

|图1  安装流程图|
流程图说明如表1所示。

表1  安装流程图说明

流程

说明

安装前准备

openGauss安装前需要准备相应的软硬件环境以及相关操作系统配置。“2.1.2准备软硬件安装环境”章节提供了openGauss安装所需的最低要求,实际安装中,请用户根据实际情况进行规划

获取安装包

安装包需要在openGauss开源社区下载并且对安装包内容进行检查

配置XML文件

安装openGauss前需要创建XML文件。XML文件包含部署openGauss的服务器信息、安装路径、IP地址以及端口号等。用于告知openGauss如何部署。用户需根据不同场配置对应的XML文件

初始化安装环境

安装环境的初始化包含上传安装包和XML文件、解压安装包、使用gs_preinstall准备好安装环境

执行安装

使用gs_install安装openGauss

(二) 准备软硬件安装环境

本篇介绍openGauss的软硬件环境要求。建议部署openGauss的各服务器具有等价的软硬件配置。

1. 硬件环境要求

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

表2 硬件环境要求

项目

配置描述

内存

功能调试建议32GB以上

性能测试和商业部署时,单实例部署建议128GB以上

复杂的查询对内存的需求量比较高,在高并发场景下,可能出现内存不足。此时建议使用大内存的机器,或使用负载管理限制系统的并发

CPU

功能调试最小需要1×8 核2.0GHz

性能测试和商业部署时,单实例部署建议1×16核 2.0GHz

CPU(central processing pnit,中央处理单元)超线程和非超线程两种模式都支持。但openGauss各节点的设置需保持一致

注意:目前,openGauss仅支持鲲鹏服务器和基于x86_64通用PC服务器的CPU

硬盘

用于安装openGauss的硬盘需最少满足如下要求。

Ÿ 至少1GB用于安装openGauss的应用程序包

Ÿ 每个主机需大约300MB用于数据存储

Ÿ 预留70%以上的磁盘剩余空间用于数据存储

Ÿ 建议系统盘配置为RAID1,数据盘配置为RAID5,且规划4组RAID5数据盘用于安装openGauss。有关RAID(redundant array of independent disks,独立磁盘冗余数组。一种把多块独立的硬盘按不同方式组合起来形成一个硬盘组,从而提供比单个硬盘更高的存储性能和提供数据冗余的技术。组成磁盘阵列的不同方式成为RAID级别(RAID levels)。经过不断的发展,现在已拥有了从 RAID 0 到 6 七种基本的RAID级别)的配置方法请参考硬件厂家的手册或互联网上的方法进行配置,其中“Disk Cache Policy”项需要设置为“Disabled”,否则机器异常掉电后有数据丢失的风险

openGauss支持使用SSD盘作为数据库的主存储设备,支持SAS(serial attached SCSI,串行连接的SCSI。一种SCSI 接口标准)接口和NVMe(non-volatile memory express,非易失性高速传输总线。一种主机控制器接口协议。)协议的SSD盘,以RAID的方式部署使用

网络要求

300兆以上以太网

建议网卡设置为双网卡冗余bond。有关网卡冗余bond的配置方法请参考硬件厂商的手册或互联网上的方法进行配置

openGauss网络如果配置bond,请保证bond模式一致,不一致的bond配置可能导致openGauss工作异常

2. 软件环境要求

软件环境要求如表3所示。

表3  软件环境要求

软件类型

配置描述

Linux操作系统

Ÿ ARM:

openEuler 20.3LTS(推荐采用此操作系统)

麒麟V10

Ÿ x86:

openEuler 20.3LTS

CentOS 7.6

注意:建议使用英文操作系统,当前安装包只能在英文操作系统上安装使用

Linux文件系统

剩余inode个数 > 15亿(推荐)

工具

bzip2

python

Ÿ openEuler:支持python 3.7.X

Ÿ CentOS:支持python 3.6.X

Ÿ 麒麟:支持python 3.7.X

注意:python需要通过--enable-shared方式编译

3. 软件依赖要求

openGauss的软件依赖要求如表4所示。
依赖软件建议使用表3中操作系统安装光盘中的默认安装包。如果不存在默认安装包时,请参见表4查看软件对应的建议版本。
表4  软件依赖要求

所需软件

建议版本

libaio-devel

建议版本:0.3.109-13

flex

要求版本:2.5.31 以上

bison

建议版本:2.7-4

ncurses-devel

建议版本:5.9-13.20130511

glibc-devel

建议版本:2.17-111

patch

建议版本:2.7.1-10

lsb_release

建议版本:4.1

readline-devel

建议版本:7.0-13

libnsl(openeuler+x86环境中)

建议版本 :2.28-36

(三)  修改操作系统配置

1. 关闭操作系统防火墙

openGauss目前仅支持在防火墙关闭的状态下进行安装。下面以openEuler操作系统为例执行关闭操作系统防火墙操作:

(1) 修改/etc/selinux/config文件中的“SELINUX”值为“disabled”。

① 使用vim命令打开config文件。

    vim etc/selinux/config

    ②  修改“SELINUX”字段的值为“disabled”。

      SELINUX=disabled

      (2) 重新启动操作系统。

        reboot

        (3) 检查防火墙是否关闭。

          systemctl status firewalld

          若防火墙未关闭,请执行步骤(4);若防火墙已关闭,则无须再关闭防火墙。

          (4) 检关闭防火墙。
            systemctl disable firewalld.service
            systemctl stop firewalld.service
            5) 在其他主机上重复步骤(1)到(4)。

            2. 设置字符集参数

            将各数据库节点的字符集设置为相同的字符集,可以在/etc/profile文件中添加"export LANG=XXX"(XXX为Unicode编码)。

              vim etc/profile
              3. 设置时区和时间

              在各数据库节点上,确保时区和时间一致。

              (1) 执行如下命令检查各数据库节点时间和时区是否一致。如果各数据库节点时间和时区不一致区,请执行(2)、(3)。
                ll etc/localtime   ##查看时区
                date ##查看时间

                (2) 使用如下命令将各数据库节点“/usr/share/zoneinfo/”目录下的时区文件拷贝为“/etc/localtime”文件。

                  cp usr/share/zoneinfo/$地区/$时区 etc/localtime

                  $地区/$时区”为需要设置时区的信息,例如:Asia/Shanghai

                  (3) 使用“date -s”命令将各数据库节点的时间设置为统一时间,举例如下。
                    date -s Mon May 11 16:42:11 CST 2020

                    4. (可选)关闭swap交换内存

                    在各数据库节点上,使用“swapoff -a”命令将交换内存关闭。

                      swapoff -a

                      5. 关闭RemoveIPC

                      在各数据库节点上,关闭RemoveIPC。CentOS操作系统无该参数,可以跳过该步骤。

                      (1)修改“/etc/systemd/logind.conf”文件中的“RemoveIPC”字段的值为“no”。

                      ①  使用vim打开logind.conf文件。

                        vim  etc/systemd/logind.conf

                        ② 修改“RemoveIPC”字段的值为“no”。

                          RemoveIPC=no

                          (2)修改“/usr/lib/systemd/system/systemd-logind.service”文件中的“RemoveIPC” 字段的值为“no”。

                          ① 使用vim命令打开systemd-logind.service文件。

                            vim usr/lib/systemd/system/systemd-logind.service

                            修改“RemoveIPC”字段的值为“no”。

                              RemoveIPC=no
                              (3) 重新加载配置参数。
                                systemctl daemon-reload
                                systemctl restart systemd-logind

                                (4) 检查修改是否生效。

                                  loginctl show-session | grep RemoveIPC
                                  systemctl show systemd-logind | grep RemoveIPC
                                  5) 在其他主机上重复步骤(1)到(4)。

                                  6. 设置网卡MTU值

                                  将各数据库节点的网卡MTU值设置为相同大小。

                                  (1) 执行如下命令查询服务器的网卡编号。
                                    ifconfig
                                    如下图2所示,如果服务器IP为10.244.53.173,则该服务器的网卡编号为eth0。

                                    |图2  查询网卡编号|
                                    (2) 使用如下命令将数据库各节点的网卡MTU(maximum transmission unit,最大传输单元。在网络中能够传输的最大数据报文)值设置为相同大小。对于x86,MTU值推荐1500;对于ARM,MTU值推荐8192。
                                      ifconfig 网卡编号 mtu 值

                                      (四) 设置root用户远程登录

                                      在安装openGauss时需要root账户远程登录访问权限,本节介绍如何设置root用户远程登录。
                                      (1) 修改PermitRootLogin配置,允许用户远程登录。

                                      ① 打开sshd_config文件。

                                        vim etc/ssh/sshd_config
                                        ② 修改权限配置,可以使用以下两种方式实现:
                                        注释掉“PermitRootLogin no”行。
                                          #PermitRootLogin no

                                          或者将“PermitRootLogin”字段的值改为“yes”。

                                            PermitRootLogin yes

                                            ③ 执行:wq保存并退出编辑页面。

                                            (2) 修改Banner配置,去掉连接到系统时系统提示的欢迎信息。欢迎信息会干扰安装时远程操作的返回结果,影响安装正常执行。

                                            ① 编辑sshd_config文件。

                                              vim etc/ssh/sshd_config

                                              ② 修改Banner配置,注释掉“Banner”所在的行。

                                                #Banner XXXX
                                                ③ 执行:wq保存并退出编辑页面。
                                                (3) 重启sshd使设置生效。
                                                  systemctl restart sshd.service

                                                  4) 以root用户身份重新登录。

                                                    ssh xxx.xxx.xxx.xxx

                                                    xxx.xxx.xxx.xxx为安装openGauss环境的IP。

                                                    (五) 获取安装包

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

                                                    (1) 从openGauss开源社区(https://opengauss.org/zh/download.html)下载对应平台的安装包。如图3所示。

                                                    |图3  开源网站openGauss Server页面|

                                                    (2) 选择所需安装包单击“下载”。
                                                    (3) 解压下载后的压缩包。
                                                      tar -zxvf openGauss-x.x.x-openEuler-64bit.tar -all.gz

                                                      (4) 检查安装包。检查安装目录及文件是否齐全。在安装包所在目录执行以下命令:

                                                        ls -1

                                                        ls命令显示类似如下信息。

                                                          total 50M
                                                          -rw------- 1 root root 65 Dec 25 15:34 openGauss-x.x.x-openEuler-64bit-om.sha256
                                                          -rw------- 1 root root 12910775 Dec 25 15:34 openGauss-x.x.x-openEuler-64bit-om.tar.gz
                                                          -rw------- 1 root root 65 Dec 25 15:34 openGauss-x.x.x-openEuler-64bit.sha256
                                                          -rw------- 1 root root 73334256 Dec 25 15:34 openGauss-x.x.x-openEuler-64bit.tar.bz2
                                                          -rw------- 1 root root 65 Dec 25 15:34 upgrade_sql.sha256-rw------- 1 root root 134747 Dec 25 15:34 upgrade_sql.tar.gz
                                                          (六) 创建XML配置文件
                                                          安装openGauss前需要创建cluster_config.xml文件。cluster_config.xml文件包含部署openGauss的服务器信息、安装路径、IP地址以及端口号等。用于告知openGauss如何部署。用户需根据不同场配置对应的XML(extensible markup language,可扩展标记语言)文件。

                                                          下面以一主一备的方案为例,说明如何创建XML配置文件。

                                                          1. 配置数据库名称及各项目录

                                                          “script/gspylib/etc/conf/cluster_config_template.xml”获取模板。数据库名称和各项目录的配置项如下,加粗字体内容为示例,可自行替换。每行信息均有注释进行说明。

                                                            <?xml version="1.0" encoding="UTF-8"?> 
                                                            <ROOT> <!-- 整体信息 -->
                                                            <CLUSTER>
                                                            <!-- 数据库名称 -->
                                                            <PARAM name="clusterName" value="Cluster_template" >
                                                            <!-- 数据库节点名称(hostname) -->
                                                            <PARAM name="nodeNames" value="node1_hostname,node2_hostname" >
                                                            <!-- 数据库安装目录-->
                                                            <PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" >
                                                            <!-- 日志目录-->
                                                            <PARAM name="gaussdbLogPath" value="/var/log/omm" >
                                                            <!-- 临时文件目录-->
                                                            <PARAM name="tmpMppdbPath" value="/opt/huawei/tmp" >
                                                            <!--数据库工具目录-->
                                                            <PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" >
                                                            <!--数据库core文件目录-->
                                                            <PARAM name="corePath" value="/opt/huawei/corefile"/>
                                                            <!-- 节点IP,与nodeNames一一对应 -->
                                                            <PARAM name="backIp1s" value="192.168.0.1,192.168.0.2"/>

                                                            </CLUSTER>
                                                            配置文件中参数说明请见表5

                                                            表5  参数说明

                                                            实例类型

                                                            参数

                                                            说明

                                                            整体信息

                                                            clusterName

                                                            openGauss名称

                                                            nodeNames

                                                            openGauss中主机名称

                                                            通过hostname命令可以获取数据库节点的主机名称

                                                            backIp1s

                                                            主机在后端存储网络中的IP地址(内网IP)。所有openGauss主机使用后端存储网络通信

                                                            gaussdbAppPath

                                                            openGauss程序安装目录。此目录应满足如下要求。

                                                            Ÿ 磁盘空间>1GB

                                                            Ÿ 与数据库所需其他路径相互独立,没有包含关系

                                                            gaussdbLogPath

                                                            openGauss运行日志和操作日志存储目录。此目录应满足如下要求。

                                                            Ÿ 磁盘空间建议根据主机上的数据库节点数规划。数据库节点预留1GB空间的基础上,再适当预留冗余空间

                                                            Ÿ 与openGauss所需其他路径相互独立,没有包含关系

                                                            Ÿ 此路径可选。不指定的情况下,openGauss安装时会默认指定“$GAUSSLOG/安装用户名”作为日志目录

                                                            tmpMppdbPath

                                                            数据库临时文件存放目录

                                                            若不配置tmpMppdbPath,默认存放在/opt/huawei/wisequery/安装用户名_mppdb目录下,其中"opt/huawei/wisequery"是默认指定的数据库系统工具目录

                                                            gaussdbToolPath

                                                            openGauss系统工具目录,主要用于存放互信工具等。此目录应满足如下要求。

                                                            Ÿ 磁盘空间>100MB

                                                            Ÿ 固定目录,与数据库所需其他目录相互独立,没有包含关系

                                                            Ÿ 此目录可选。不指定的情况下,openGauss安装时会默认指定“/opt/huawei/wisequery”作为数据库系统工具目录

                                                            corePath

                                                            openGauss core文件的指定目录

                                                             配置数据库名称及各项目录时请注意如下事项。

                                                            (1) “/opt/huawei/install/om”目录存放互信等工具,具有特殊权限。为了免权限冲突问题,不要将实例数据目录放在此目录下。
                                                            (2) 安装目录和数据目录需为空或者不存在,否则可能导致安装失败。
                                                            数据库节点的实例目录之间不相互耦合。即各个配置目录不关联,删除其中任意一个目录,不会级联删除其他目录。如gaussdbAppPath为"/opt/huawei/install/app",gaussdbLogPath为"/opt/huawei/install/app/omm"。当gaussdbAppPath目录被删除时,会级联删除gaussdbLogPath目录,从而引起其他问题。
                                                            (4) 如果需要安装脚本自动创建安装用户时,配置的目录不能与系统创建的默认用户目录耦合关联。
                                                            (4) 配置openGauss路径和实例路径时,路径中不能包含这些引号中的特殊字符:“|;&$<>`\\'\"{}()[]~*?”。

                                                            2. 配置Host基本信息

                                                            每台Host服务器都必须有如下基本信息,加粗字体内容为示例,可自行替换。每行信息均有注释进行说明。

                                                              <!-- 每台服务器上的节点部署信息 --> 
                                                              <DEVICELIST>
                                                              <!-- node1上的节点部署信息 -->
                                                              <DEVICE sn="node1_hostname">
                                                              <!-- node1的hostname -->
                                                              <PARAM name="name" value="node1_hostname"/>
                                                              <!-- node1所在的AZ(availability zone,可用区)及AZ优先级 -->
                                                              <PARAM name="azName" value="AZ1"/>
                                                              <PARAM name="azPriority" value="1"/>
                                                              <!-- node1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
                                                              <PARAM name="backIp1" value="192.168.0.1"/>
                                                              <PARAM name="sshIp1" value="192.168.0.1"/>

                                                              配置文件中的参数说明请参见表6。

                                                              表6  参数说明

                                                              实例类型

                                                              参数

                                                              说明

                                                              整体信息

                                                              name

                                                              主机名称

                                                              azName

                                                              指定azName(available zone name),字符串(不能含有特殊字符),例如AZ1、AZ2、AZ3

                                                              azPriority

                                                              指定azPriority的优先级。优先级与azName无关

                                                              backIp1

                                                              主机在后端存储网络中的IP地址(内网IP)。所有openGauss主机使用后端存储网络通信

                                                              sshIp1

                                                              设置SSH可信通道IP地址(外网IP)。若无外网,则可以不设置该选项或者同backIp1设置相同IP

                                                              配置文件中所有IP参数(包含backIp、sshIp、listenIp等)均只支持配置一个IP。如果配置第二个IP参数,则不会读取第二个参数的配置值。例如,XML配置文件中同时配置backIp1和backIp2参数,在解析配置文件时仅读取backIp1参数的配置值,不会读取backIp2参数的配置值。
                                                                <PARAM name="backIp1" value="192.168.0.1"/>
                                                                <PARAM name="backIp2" value="192.168.0.2"/>
                                                                3. 配置数据库主节点信息

                                                                数据库主节点需要配置以下信息,加粗字体内容为示例,可自行替换。每行信息均有注释进行说明。

                                                                  <!--DBnode--> 
                                                                  <PARAM name="dataNum" value="1"/>
                                                                  <!--DBnode端口号-->
                                                                  <PARAM name="dataPortBase" value="15400"/>
                                                                  <!--DBnode主节点上数据目录,及备机数据目录-->
                                                                  <PARAM name="dataNode1" value="/opt/huawei/install/data/dn,node2_hostname,/opt/huawei/install/data/dn"/>
                                                                  <!--DBnode节点上设定同步模式的节点数-->
                                                                  <PARAM name="dataNode1_syncNum" value="0"/>

                                                                  代码中的参数说明请参见表7。

                                                                  表7  参数说明

                                                                  实例类型

                                                                  参数

                                                                  说明

                                                                  DBnode

                                                                  dataNum

                                                                  当前主机上需要部署的数据库节点个数

                                                                  dataPortBase

                                                                  数据库节点的基础端口号,默认值40000

                                                                  dataNode1

                                                                  用于指定当前主机上的数据库节点的数据存储目录。此目录为数据库的数据存储目录,应规划到数据盘上

                                                                  dataNode1_syncNum

                                                                  可选参数,用于指定当前集群中同步模式的节点数目。取值范围为0~数据库备机节点数

                                                                  4. 一主一备配置文件示例

                                                                  完整的一主一备XML配置文件请参见如下示例,可以直接拷贝使用,加粗字体内容为示例,可自行替换。

                                                                    <?xml version="1.0" encoding="UTF-8"?>
                                                                    <ROOT>
                                                                    <!-- openGauss整体信息 -->
                                                                    <CLUSTER>
                                                                    <PARAM name="clusterName" value="Cluster_template" >
                                                                    <PARAM name="nodeNames" value="node1_hostname,node2_hostname" >
                                                                    <PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" />
                                                                    <PARAM name="gaussdbLogPath" value="/var/log/omm" />
                                                                    <PARAM name="tmpMppdbPath" value="/opt/huawei/tmp"/>
                                                                    <PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" />
                                                                    <PARAM name="corePath" value="/opt/huawei/corefile"/>
                                                                    <PARAM name="backIp1s" value="192.168.0.1,192.168.0.2"/>

                                                                    </CLUSTER>
                                                                    <!-- 每台服务器上的节点部署信息 -->
                                                                    <DEVICELIST>
                                                                    <!-- node1上的节点部署信息 -->
                                                                    <DEVICE sn="node1_hostname">
                                                                    <PARAM name="name" value="node1_hostname"/>
                                                                    <PARAM name="azName" value="AZ1"/>
                                                                    <PARAM name="azPriority" value="1"/>
                                                                    <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
                                                                    <PARAM name="backIp1" value="192.168.0.1"/>
                                                                    <PARAM name="sshIp1" value="192.168.0.1"/>

                                                                    <!--dn-->
                                                                    <PARAM name="dataNum" value="1"/>
                                                                    <PARAM name="dataPortBase" value="15400"/>
                                                                    <PARAM name="dataNode1" value="/opt/huawei/install/data/dn,node2_hostname,/opt/huawei/install/data/dn"/>
                                                                    <PARAM name="dataNode1_syncNum" value="0"/>
                                                                    </DEVICE>

                                                                    <!-- node2上的节点部署信息,其中“name”的值配置为主机名称 -->
                                                                    <DEVICE sn="node2_hostname">
                                                                    <PARAM name="name" value="node2_hostname"/>
                                                                    <PARAM name="azName" value="AZ1"/>
                                                                    <PARAM name="azPriority" value="1"/>
                                                                    <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
                                                                    <PARAM name="backIp1" value="192.168.0.2"/>
                                                                    <PARAM name="sshIp1" value="192.168.0.2"/>
                                                                    </DEVICE>
                                                                    </DEVICELIST>
                                                                    </ROOT>

                                                                    (七)  初始化安装环境

                                                                    在执行openGauss安装前,为了后续能以最小权限进行安装以及openGauss管理操作,保证系统安全性,需要执行安装前置脚本gs_preinstall准备安装用户及环境。

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

                                                                    (1)自动设置Linux内核参数以达到提高服务器负载能力的目的,这些参数直接影响数据库系统的运行状态。
                                                                    (2)自动将openGauss配置文件、安装包拷贝到openGauss主机的相同目录下。
                                                                    (3)openGauss安装用户、用户组不存在时,自动创建安装用户以及用户组。
                                                                    (4)读取openGauss配置文件中的目录信息并创建,将目录权限授予安装用户。
                                                                    1) 注意事项:
                                                                    (1)用户需要检查上层目录权限,保证安装用户对安装包和配置文件目录读写执行的权限。
                                                                    (2)XML文件中各主机的名称与IP映射配置正确。
                                                                    (3)只能使用root用户执行gs_preinstall命令。
                                                                    2) 操作步骤:
                                                                    (1) 以root用户登录待安装openGauss的主机,并按规划创建存放安装包的目录并赋予用户该目录的读写权限。
                                                                      mkdir -p /opt/software/openGauss
                                                                      chmod 755 -R /opt/software
                                                                      不建议将安装包的存放目录规划至openGauss用户的家目录或其子目录下,否则可能导致权限问题。
                                                                      (2)将安装包“openGauss-x.x.x-openEuler-64bit-all.tar.gz”和配置文件“cluster_config.xml”上传至(1)所创建的目录中。
                                                                      (3)在安装包所在的目录下,解压安装包。安装包解压后,会有OM安装包和Server安装包。继续解压OM安装包,会在/opt/software/openGauss路径下自动生成script子目录,并且在script目录下生成gs_preinstall等各种OM工具脚本。
                                                                        cd /opt/software/openGauss
                                                                        tar -zxvf openGauss-x.x.x-openEuler-64bit.tar-all.gz

                                                                        (4) 进入工具脚本存放目录下。

                                                                          cd /opt/software/openGauss/script
                                                                          (5)可选)如果是openEuler的操作系统,执行如下命令打开performance.sh文件。
                                                                            vi /etc/profile.d/performance.sh

                                                                            用#注释如下命令,然后键入“ESC”键进入指令模式,执行:wq保存并退出修改。

                                                                              sysctl -w vm.min_free_kbytes=112640 &> /dev/null

                                                                              (6)为确保成功安装,执行如下命令检查hostname文件内容与/etc/hostname文件中的主机名是否一致。

                                                                                hostname
                                                                                cat /etc/hostname
                                                                                如果hostname与/etc/hostname中的主机名不一致,请执行如下命令打开/etc/hostname文件,将主机名改为一致。
                                                                                  vi /etc/hostname

                                                                                  然后键入“ESC”键进入指令模式,执行:wq保存并退出修改。

                                                                                  (7)执行gs_preinstall命令准备安装环境。
                                                                                  执行过程中会自动创建root用户互信和openGauss用户互信。
                                                                                    ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml


                                                                                    其中,omm为数据库管理员(也是运行openGauss的操作系统用户),dbgrp为运行openGauss的操作系统用户的群组名称,“/opt/software/openGauss/cluster_config.xml”为openGauss配置文件路径。在执行过程中,用户根据提示选择是否创建互信,并输入root用户或openGauss用户的密码。

                                                                                    openGauss在安装过程中,需要在openGauss中的主机间执行命令,传送文件等操作。因此,在普通用户安装前需要确保互信是连通的。前置脚本中会先建立root用户间的互信,然后创建普通用户,并建立普通用户间的互信。

                                                                                    (八) 执行安装

                                                                                    准备好openGauss安装环境之后,执行安装部署openGauss。

                                                                                    1) 前提条件:
                                                                                    (1) 已成功执行前置脚本gs_preinstall。
                                                                                    (2) 所有服务器操作系统和网络均正常运行。
                                                                                    (3) 用户需确保各个主机上的locale保持一致。
                                                                                    2) 操作步骤:
                                                                                    (1) 登录openGauss的主机,并切换至omm用户。
                                                                                      su - omm
                                                                                      此处,omm为前置脚本gs_preinstall中-U参数指定的用户。执行安装时,必须以omm用户执行,否则执行脚本会报错。
                                                                                      (2) 使用gs_install安装openGauss。
                                                                                        gs_install -X /opt/software/openGauss/cluster_config.xml

                                                                                        其中“/opt/software/openGauss/cluster_config.xml”为openGauss配置文件的路径。在执行过程中用户需要根据提示输入数据库的密码,密码具有一定的复杂度。为保证用户正常使用该数据库,请记住输入的数据库密码。

                                                                                        数据库的密码需要符合这些要求:最少包含8个字符;不能和用户名和当前密码(ALTER)相同,或和当前密码反序;至少包含大写字母(A-Z),小写字母(a-z),数字,非字母数字字符(限定为~!@#$%^&*()-_=+\|[{}];:,<.>/?)四类字符中的三类字符。

                                                                                        安装过程中会生成ssl证书,证书存放路径为“{gaussdbAppPath}/share/sslcert/om”,其中“{gaussdbAppPath}”为集群openGauss配置文件中指定的程序安装目录。

                                                                                        日志文件路径(安装openGauss时在XML文件中指定)下会生成两个日志文件:“gs_install-YYYY-MM-DD_HHMMSS.log”和“gs_local-YYYY-MM-DD_HHMMSS.log”。

                                                                                        openGauss支持字符集的多种写法:gbk/GBK、UTF-8/UTF8/uft8/utf-8和Latine1/latine1。安装时如果不指定字符集,默认字符集为SQL_ASCII,为简化和统一区域locale默认设置为C。如果想指定其他字符集和区域,请在安装时使用参数--gsinit-parameter="--locale=LOCALE"来指定,LOCALE为新数据库设置缺省的区域。例如用户要将数据库编码格式初始化为UTF-8,可以采用如下步骤。

                                                                                        (1) 用locale -a |grep utf8命令查看系统支持UTF-8编码的区域。
                                                                                          omm@linux:~>  locale -a|grep utf8

                                                                                          显示类似如下信息,其中en_US.utf8表示区域en_US支持UTF-8编码。

                                                                                            ......
                                                                                            en_SG.utf8
                                                                                            en_US.utf8
                                                                                            ......

                                                                                            2)根据需要选择区域,如“en_US.utf8”,在初始化数据库时加入“--locale=en_US.utf8”选项进行安装。示例如下。

                                                                                              gs_install -X /opt/software/openGauss/cluster_config.xml --gsinit-parameter="--locale=en_US.utf8"
                                                                                              (九)  安装验证

                                                                                              通过openGauss提供的gs_om工具可以完成数据库状态检查。

                                                                                              1) 前提条件:

                                                                                              openGauss数据库已安装。

                                                                                              2) 操作步骤:
                                                                                              (1)以omm用户身份登录服务器。
                                                                                              (2)执行如下命令检查数据库状态是否正常,“cluster_state”显示“Normal”表示数据库可正常使用。
                                                                                                gs_om -t status

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

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

                                                                                                  gsql -d postgres -p 26000

                                                                                                  连接成功后,系统显示类似如下信息表示数据库连接成功。

                                                                                                    gsql ((openGauss x.x.x build 290d125f) compiled at 2021-03-08 02:59:43 commit 2143 last mr 131
                                                                                                    Non-SSL connection (SSL connection is recommended when requiring high-security)
                                                                                                    Type "help" for help.
                                                                                                    本篇图文简单介绍了openGauss版本进行二次开发过程中的第一步——openGauss的安装部署方法,下篇我们将接着介绍openGauss基本使用,敬请期待!
                                                                                                    END



                                                                                                    Gauss松鼠会
                                                                                                    汇集数据库从业人员及爱好者
                                                                                                    互助解决问题 共建数据库技术交流圈


                                                                                                    文章转载自Gauss松鼠会,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                                                                    评论