写点什么

详讲 openGauss 5.0 单点企业版如何部署 _Centos7_x86

  • 2024-04-08
    广东
  • 本文字数:14770 字

    阅读完需:约 48 分钟

详讲openGauss 5.0 单点企业版如何部署_Centos7_x86

本文分享自华为云社区《openGauss 5.0 单点企业版部署_Centos7_x86》,本文作者:董小姐


本文档环境:CentOS7.9 x86_64 4G1C40G python2.7.5 交互式初始化环境方式

1、介绍


openGauss 是一款开源关系型数据库管理系统,采用木兰宽松许可证 v2 发行。openGauss 内核深度融合华为在数据库领域多年的经验,结合企业级场景需求,持续构建竞争力特性。


openGauss 社区版本分为长期支持版本和创新版本:


· 长期支持版本 (LTS) ——规模上线使用,发布间隔周期为 1 年,提供 3 年社区支持。


· 社区创新版本 (Preview) ——联创测试使用,发布间隔周期为 1 年,提供 6 个月社区支持。


openGauss 支持单机部署和单机 HA 部署两种部署方式。单机部署时,可在一个主机部署多个数据库实例,但为了数据安全,不建议用户这样部署。单机 HA 部署支持一台主机和最少一台备机,备机一共最多 8 台的配置方式。


说明: 通过 openGauss 提供的脚本安装时,只允许在单台物理机部署一个数据库系统。如果您需要在单台物理机部署多个数据库系统,建议您通过命令行安装,不需要通过 openGauss 提供的安装脚本执行安装。

2、安装前准备

2.1 软硬件要求


仅作参考,自测环境低一些也可以,本文档是 CentOS7.9 x86_64 4G1C40G 的配置

2.2 硬件环境

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


表 1 硬件环境要求


2.3 软件环境


表 2 软件环境要求



若用户修改过系统 python 版本,则在安装数据库之前,还需手动安装下列 python 模块(pip 安装即可)。



并且在预安装时,需要加上--unused-third-party 选项。

2.4 软件依赖要求


openGauss 的软件依赖要求如表 3 软件依赖要求所示。


建议使用上述操作系统安装光盘或者源中,下列依赖软件的默认安装包,若不存在下列软件,可参看软件对应的建议版本。


表 3 软件依赖要求


3、系统参数配置

3.1 操作系统主机命名(可选)


如果采用默认主机名,可忽略该步骤,默认的主机名 localhost.localdomain,xml 文件中的主机名也需要改成 localhost.localdomain


hostnamectl set-hostname opendb01
复制代码

3.2 /etc/hosts 配置(可选)


如果采用默认主机名,可忽略该步骤,预安装会自动追加 127.0.0.1 localhost #Gauss OM IP Hosts Mapping


cp /etc/hosts /etc/hosts.bakcat >>/etc/hosts<<EOF192.168.40.110      opendb01  EOF
复制代码

3.3 limits.conf


不用配置该文件,会自动追加如下内容:


cat /etc/security/limits.conf....root       soft    as  unlimitedomm       soft    as  unlimitedroot       hard    as  unlimitedomm       hard    as  unlimitedroot       soft    nproc  unlimitedomm       soft    nproc  unlimitedroot       hard    nproc  unlimitedomm       hard    nproc  unlimited
复制代码

3.4 关闭透明页


echo never > /sys/kernel/mm/transparent_hugepage/enabledecho never > /sys/kernel/mm/transparent_hugepage/defrag
--加入开机启动echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabledecho never > /sys/kernel/mm/transparent_hugepage/defrag' >>/etc/rc.localchmod +x /etc/rc.local
复制代码

3.5 防火墙配置


systemctl stop firewalld.servicesystemctl disable firewalld.service 
复制代码


如果启用防火墙需进行如下配置:


如果数据库端口和 ssh 端口不是 15400 和 22,需视情况更改


firewall-cmd --zone=public --add-port=15400/tcp --permanentfirewall-cmd --zone=public --add-port=22/tcp --permanentfirewall-cmd --reload
复制代码

3.6 selinux 配置


sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/configsetenforce 0 
复制代码

3.7 关闭 numa 和禁用透明大页


sed -i "s/quiet/quiet numa=off transparent_hugepage=never/g"  /etc/default/grub grub2-mkconfig -o /etc/grub2.cfg
复制代码

4、设置字符集参数


echo "export LANG=en_US.UTF-8"  >> /etc/profilesource /etc/profile
复制代码

4.1 设置时区和时间


如果服务器时间和当前时间相差 8 小时或者 12 小时,需要查看时区,分析是否决定更改。

4.2 非可视化更改步骤


--查看当前时间[root@opendb01 ~]# dateFri Jan 26 16:50:55 CST 2024
--查看当前时区root@HKSZF-ZW-172-19-146-176:/topsoft# timedatectl Local time: Wed 2024-01-24 05:51:05 UTC Universal time: Wed 2024-01-24 05:51:05 UTC RTC time: Wed 2024-01-24 05:51:56 Time zone: Etc/UTC (UTC, +0000) System clock synchronized: nosystemd-timesyncd.service active: yes RTC in local TZ: no
--更改时区 执行tzselect命令
root@HKSZF-ZW-172-19-146-176:/topsoft# tzselectPlease identify a location so that time zone rules can be set correctly.Please select a continent, ocean, "coord", or "TZ". 1) Africa 2) Americas 3) Antarctica 4) Asia 5) Atlantic Ocean 6) Australia 7) Europe 8) Indian Ocean 9) Pacific Ocean10) coord - I want to use geographical coordinates.11) TZ - I want to specify the time zone using the Posix TZ format.
--找到Asia,输入4,回车Please select a country whose clocks agree with yours. 1) Afghanistan 18) Israel 35) Palestine 2) Armenia 19) Japan 36) Philippines 3) Azerbaijan 20) Jordan 37) Qatar 4) Bahrain 21) Kazakhstan 38) Russia 5) Bangladesh 22) Korea (North) 39) Saudi Arabia 6) Bhutan 23) Korea (South) 40) Singapore 7) Brunei 24) Kuwait 41) Sri Lanka 8) Cambodia 25) Kyrgyzstan 42) Syria 9) China 26) Laos 43) Taiwan10) Cyprus 27) Lebanon 44) Tajikistan11) East Timor 28) Macau 45) Thailand12) Georgia 29) Malaysia 46) Turkmenistan13) Hong Kong 30) Mongolia 47) United Arab Emirates14) India 31) Myanmar (Burma) 48) Uzbekistan15) Indonesia 32) Nepal 49) Vietnam16) Iran 33) Oman 50) Yemen17) Iraq 34) Pakistan
--找到china,输入9,回车Please select one of the following time zone regions.1) Beijing Time2) Xinjiang Time
--找到北京时间,输入1,回车Please select one of the following time zone regions.1) Beijing Time2) Xinjiang Time
--选择yes,输入1,回车The following information has been given:
China Beijing Time
Therefore TZ='Asia/Shanghai' will be used.Selected time is now: Wed Jan 24 21:40:32 CST 2024.Universal Time is now: Wed Jan 24 13:40:32 UTC 2024.Is the above information OK?1) Yes2) No
--更新设置ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
--查看是否更改成功root@HKSZF-ZW-172-19-146-176:/topsoft# dateWed Jan 24 21:42:00 CST 2024
root@HKSZF-ZW-172-19-146-176:/topsoft# timedatectl Local time: Wed 2024-01-24 21:42:06 CST Universal time: Wed 2024-01-24 13:42:06 UTC RTC time: Wed 2024-01-24 06:09:59 Time zone: Asia/Shanghai (CST, +0800) System clock synchronized: nosystemd-timesyncd.service active: yes RTC in local TZ: no
复制代码

4.3 可视化更改步骤


--查看当前时间[root@opendb01 ~]# dateFri Jan 26 16:50:55 CST 2024
--查看当前时区root@HKSZF-ZW-172-19-146-176:/topsoft# timedatectl Local time: Wed 2024-01-24 05:51:05 UTC Universal time: Wed 2024-01-24 05:51:05 UTC RTC time: Wed 2024-01-24 05:51:56 Time zone: Etc/UTC (UTC, +0000) System clock synchronized: nosystemd-timesyncd.service active: yes RTC in local TZ: no
复制代码


在可视化界面中查看


选择进入 Applications -> System Tools -> Settings -> Details -> Date & Time



调整时间


点击“Date & Time”行中任意位置,弹出弹窗,调整时间为当前北京时间,再关闭弹窗,即保存。如下图所示:



再次使用命令查看,本地时间已显示为北京时间


[root@localhost src]# timedatectl      Local time: Mon 2022-04-04 13:14:03 CST  Universal time: Mon 2022-04-04 05:14:03 UTC        RTC time: Mon 2022-04-04 05:14:03       Time zone: Asia/Shanghai (CST, +0800)     NTP enabled: noNTP synchronized: no RTC in local TZ: no      DST active: n/a
复制代码

4.4 关闭 swap 交换内存(可选)


关闭 swap 交换内存是为了保障数据库的访问性能,避免把数据库的缓冲区内存淘汰到磁盘上。 如果服务器内存比较小,内存过载时,可打开 swap 交换内存保障正常运行。


swapoff -a
复制代码

4.5 关闭 RemoveIPC


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


修改/etc/systemd/logind.conf 文件中的“RemoveIPC”值为“no”。a. 使用 VIM 打开 logind.conf 文件。


--更改后的/etc/systemd/logind.confvim  /etc/systemd/logind.confRemoveIPC=no
--更改后的vim /usr/lib/systemd/system/systemd-logind.serviceRemoveIPC=no
--重新加载配置参数systemctl daemon-reloadsystemctl restart systemd-logind
--检查修改是否生效loginctl show-session | grep RemoveIPCsystemctl show systemd-logind | grep RemoveIPC
复制代码

4.6 关闭 HISTORY 记录(可选)


为避免指令历史记录安全隐患,需关闭各主机的 history 指令。


更改/etc/profile中HISTSIZE值vim /etc/profileHISTSIZE默认值为1000 更改为 HISTSIZE=0
--生效source /etc/profile
复制代码

4.7 配置 yum 源


将操作系统镜像上传至/opt 目录下


mount /opt/*.iso /mnt/cat << EOF >> /etc/fstab/dev/sr0    /mnt        iso9660 loop            0 0EOF
mkdir -p /etc/yum.repos.d/bakmv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bakcat >> /etc/yum.repos.d/os.repo <<"EOF"[OS1]name=OSbaseurl=file:///mntenabled=1gpgcheck=0EOF
复制代码

5、安装依赖包


yum install -y bzip2 libaio-devel flex bison ncurses-devel glibc-devel \patch redhat-lsb-core readline-devel 
注意:openEuler+x86环境中 yum install -y libnsl
复制代码

6、python 版本升级


python 版本如果是 3.6.x,可跳过该步骤


python 版本 2.7.5 需升级至 3.6.x 版本,centos7 用 python3.6 ,欧拉 20 用 python3.7,其实不需要去编译安装 python,直接用操作系统自带的包管理器 yum install python3 或 dnf install python3,装上去就是对应的版本了。切不要编译安装,不然跳坑,预安装时报错。


--查看python版本[root@opendb01 ~]# python --versionPython 2.7.5
[root@opendb01 ~]# python3 --versionpython3命令找不到
--采用yum方式安装操作系统自带的包管理器中的python3yum install python3
--再次查看python版本[root@opendb01 ~]# python --versionPython 2.7.5
[root@opendb01 ~]# python3 --versionPython 3.6.8
复制代码

7、创建用户及用户组(可选)


可以创建也可以不创建,自行操作


--创建用户组dbgrpgroupadd dbgrp
--创建用户组dbgroup下的普通用户omm,并设置密码为Gauss_234 useradd -g dbgrp ommpasswd omm
复制代码


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



在安装 openGauss 过程中 root 用户运行 openGauss-5.0.1-CentOS-64bit-om.tar.gz 中 scripts 目录中的“gs_preinstall”时,会创建与安装用户同名的数据库用户,即数据库用户 omm。此用户具备数据库的最高操作权限,此用户初始密码由用户指定。

8、目录规划


--创建存放安装包的目录mkdir -p /topsoft/soft/openGausschmod 777 -R /topsoft/soft
--创建目录 目录会自动创建,可选择不创建mkdir -p /topsoft/huawei/install/app #数据库安装目录mkdir -p /topsoft/huawei/log/omm #日志目录mkdir -p /topsoft/huawei/tmp #临时文件目录mkdir -p /topsoft/huawei/install/om #数据库工具目录mkdir -p /topsoft/huawei/corefile #数据库core文件目录
复制代码


不建议把安装包的存放目录规划到 openGauss 用户的根目录或其子目录下,可能导致权限问题。

openGauss 用户须具有/topsoft/soft/openGauss 目录的读写权限。

9、下载并上传安装包


登录 openGauss 开源社区https://opengauss.org/zh/download/,选择对应平台的企业版安装包。



上传至/topsoft/soft/openGauss 目录,安装包“openGauss-5.1.0-openEuler-64bit-all.tar.gz”和配置文件“cluster_config.xml”都上传至上一步所创建的目录中。

10、配置单节点 XML 文件


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


关于如何配置 XML 文件,详细请参见创建 XML 配置文件。


将 cluster_config.xml 上传至/topsoft/soft/openGauss 目录,安装包“openGauss-5.1.0-openEuler-64bit-all.tar.gz”和配置文件“cluster_config.xml”都上传至上一步所创建的目录中。


为确保成功安装,检查 hostname 与/etc/hostname 是否一致。预安装过程中,会对 hostname 进行检查。


默认端口 15400,若待用自定义端口,更改 xml 文件中的端口号

官方 XML 文件模板


cat cluster_config.xml<?xml version="1.0" encoding="UTF-8"?><ROOT>    <!-- openGauss整体信息 -->    <CLUSTER>        <!-- 数据库名称 -->        <PARAM name="clusterName" value="dbCluster" />        <!-- 数据库节点名称(hostname) -->        <PARAM name="nodeNames" value="node1_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,与数据库节点名称列表一一对应 -->        <PARAM name="backIp1s" value="192.168.0.1"/>     </CLUSTER>    <!-- 每台服务器上的节点部署信息 -->    <DEVICELIST>        <!-- 节点1上的部署信息 -->        <DEVICE sn="node1_hostname">            <!-- 节点1的主机名称 -->            <PARAM name="name" value="node1_hostname"/>            <!-- 节点1所在的AZ及AZ优先级 -->            <PARAM name="azName" value="AZ1"/>            <PARAM name="azPriority" value="1"/>            <!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->            <PARAM name="backIp1" value="192.168.0.1"/>            <PARAM name="sshIp1" value="192.168.0.1"/>               	    <!--dbnode-->	    <PARAM name="dataNum" value="1"/>	    <PARAM name="dataPortBase" value="15400"/>	    <PARAM name="dataNode1" value="/opt/huawei/install/data/dn"/>            <PARAM name="dataNode1_syncNum" value="0"/>        </DEVICE>    </DEVICELIST></ROOT>
复制代码

根据官方模板更改后的 xml 文件


cat cluster_config.xml<?xml version="1.0" encoding="UTF-8"?><ROOT>    <!-- openGauss整体信息 -->    <CLUSTER>        <!-- 数据库名称 -->        <PARAM name="clusterName" value="dbCluster" />        <!-- 数据库节点名称(hostname) -->        <PARAM name="nodeNames" value="opendb01" />        <!-- 数据库安装目录-->        <PARAM name="gaussdbAppPath" value="/topsoft/huawei/install/app" />        <!-- 日志目录-->        <PARAM name="gaussdbLogPath" value="/topsoft/huawei/log/omm" />        <!-- 临时文件目录-->        <PARAM name="tmpMppdbPath" value="/topsoft/huawei/tmp" />        <!-- 数据库工具目录-->        <PARAM name="gaussdbToolPath" value="/topsoft/huawei/install/om" />        <!-- 数据库core文件目录-->        <PARAM name="corePath" value="/topsoft/huawei/corefile" />        <!-- 节点IP,与数据库节点名称列表一一对应 -->        <PARAM name="backIp1s" value="192.168.40.110"/>     </CLUSTER>    <!-- 每台服务器上的节点部署信息 -->    <DEVICELIST>        <!-- 节点1上的部署信息 -->        <DEVICE sn="opendb01">            <!-- 节点1的主机名称 -->            <PARAM name="name" value="opendb01"/>            <!-- 节点1所在的AZ及AZ优先级 -->            <PARAM name="azName" value="AZ1"/>            <PARAM name="azPriority" value="1"/>            <!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->            <PARAM name="backIp1" value="192.168.40.110"/>            <PARAM name="sshIp1" value="192.168.40.110"/>               	    <!--dbnode-->	    <PARAM name="dataNum" value="1"/>	    <PARAM name="dataPortBase" value="15400"/>	    <PARAM name="dataNode1" value="/topsoft/huawei/install/data/dn"/>            <PARAM name="dataNode1_syncNum" value="0"/>        </DEVICE>    </DEVICELIST></ROOT>
复制代码


可通过以下全局替换


vi /topsoft/soft/openGauss/cluster_config.xml
:%s#node1_hostname#opendb01#g #主机名:%s#/opt/huawei/install/app#/topsoft/huawei/install/app#g #安装目录:%s#/opt/huawei/install/app#/topsoft/huawei/install/app#g #安装目录:%s#/var/log/omm#/topsoft/huawei/log/omm#g #日志目录:%s#/opt/huawei/tmp#/topsoft/huawei/tmp#g #临时文件目录:%s#/opt/huawei/install/om#/topsoft/huawei/install/om#g #数据库工具目录:%s#/opt/huawei/corefile#/topsoft/huawei/corefile#g #数据库core文件目录:%s#192.168.0.1#192.168.40.110#g #IP地址:%s#/opt/huawei/install/data/dn#/topsoft/huawei/install/data/dn#g #数据节点目录 /opt/huawei/install/data/dn
复制代码

11、解压安装包


对于个人开发者或非企业级环境,下载极简安装包(不安装 OM 等组件)即可。本文档采用的是企业版安装,因此安装 OM 等组件


注意:安装包“openGauss-5.1.0-openEuler-64bit-all.tar.gz”和配置文件“cluster_config.xml”需在同一目录中,本文档是/topsoft/soft/openGauss 目录。


--进入安装包所在目录[root@opendb01 ~]# cd /topsoft/soft/openGauss/[root@localhost openGauss]# ls -ltotal 130712-rw-r--r--. 1 root root      1905 Jan 27 08:31 cluster_config.xml-rw-r--r--. 1 root root 133842584 Jan 27 08:30 openGauss-5.1.0-openEuler-64bit-all.tar.gz
--解压openGauss-5.1.0-openEuler-64bit-all.tar.gz安装包tar -xvf openGauss-5.1.0-openEuler-64bit-all.tar.gz
--查看解压后的文件[root@localhost ~]# cd /topsoft/soft/openGauss/[root@localhost openGauss]# ls -lStotal 131764-rw-r--r--. 1 root root 99901554 Dec 15 20:34 openGauss-5.0.1-CentOS-64bit.tar.bz2-rw-r--r--. 1 root root 22528301 Dec 15 20:34 openGauss-5.0.1-CentOS-64bit-cm.tar.gz-rw-r--r--. 1 root root 11971903 Dec 15 20:33 openGauss-5.0.1-CentOS-64bit-om.tar.gz #数据库工具目录-rw-------. 1 root root 499269 Dec 15 20:32 upgrade_sql.tar.gz-rw-r--r--. 1 root root 105 Dec 15 20:34 openGauss-5.0.1-CentOS-64bit-cm.sha256-rw-r--r--. 1 root root 65 Dec 15 20:33 openGauss-5.0.1-CentOS-64bit-om.sha256-rw-r--r--. 1 root root 65 Dec 15 20:34 openGauss-5.0.1-CentOS-64bit.sha256-rw-------. 1 root root 65 Dec 15 20:32 upgrade_sql.sha256
参数说明:-S :按文件类型排序
--继续解压openGauss-5.0.1-CentOS-64bit-om.tar.gz 数据库工具包 企业版安装需要解压该包极简版不需要tar -xvf openGauss-5.0.1-CentOS-64bit-om.tar.gz
--查看解压后的文件 script目录中生成gs_preinstall等各种OM工具脚本[root@opendb01 openGauss]# ls -lStotal 262484-rw-r--r--. 1 root root 133842584 Jan 24 06:03 openGauss-5.1.0-openEuler-64bit-all.tar.gz-rw-r--r--. 1 root root 99901554 Dec 15 20:34 openGauss-5.0.1-CentOS-64bit.tar.bz2-rw-r--r--. 1 root root 22528301 Dec 15 20:34 openGauss-5.0.1-CentOS-64bit-cm.tar.gz-rw-r--r--. 1 root root 11971903 Dec 15 20:33 openGauss-5.0.1-CentOS-64bit-om.tar.gz-rw-------. 1 root root 499269 Dec 15 20:32 upgrade_sql.tar.gzdrwxr-xr-x. 14 root root 4096 Dec 15 20:33 libdrwxr-xr-x. 10 root root 4096 Dec 15 20:33 script-rw-r--r--. 1 root root 105 Dec 15 20:34 openGauss-5.0.1-CentOS-64bit-cm.sha256-rw-r--r--. 1 root root 65 Dec 15 20:33 openGauss-5.0.1-CentOS-64bit-om.sha256-rw-r--r--. 1 root root 65 Dec 15 20:34 openGauss-5.0.1-CentOS-64bit.sha256-rw-------. 1 root root 65 Dec 15 20:32 upgrade_sql.sha256-rw-r--r--. 1 root root 32 Dec 15 20:33 version.cfg
复制代码


  • 在执行前置脚本 gs_preinstall 时,需要规划好 openGauss 配置文件路径、安装包存放路径、程序安装目录、实例数据目录,后续普通用户使用过程中不能再更改这些路径。

  • 运行前置脚本 gs_preinstall 准备安装环境时,脚本内部会自动将 openGauss 配置文件、解压后的安装包同步拷贝到其余服务器的相同目录下。

  • 在执行前置脚本或者互信前,请检查/etc/profile 文件中是否包含错误输出信息,如果存在错误输出,需手动处理。

12、使用 gs_preinstall 初始化安装环境


安装环境的初始化包含上传安装包和 XML 文件(二者需在同一目录)、解压安装包、使用 gs_preinstall 准备好安装环境。


分 2 种场景初始化,自行选择。

13、准备安装用户及环境


创建完 openGauss 配置文件后,在执行安装前,为了后续能以最小权限进行安装及 openGauss 管理操作,保证系统安全性,需要运行安装前置脚本 gs_preinstall 准备好安装用户及环境。在执行前置脚本 gs_preinstall 时,需要规划好 openGauss 配置文件路径、安装包存放路径、程序安装目录、实例数据目录,后续普通用户使用过程中不能再更改这些路径。


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


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

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

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

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

  • 只能使用 root 用户执行 gs_preinstall 命令

  • 在执行前置脚本或者互信前,请检查/etc/profile 文件中是否包含错误输出信息,如果存在错误输出,需手动处理。


注意:如果是 openEuler(openEuler 20.03)的操作系统,执行如下命令打开 performance.sh 文件,用 #注释 sysctl -w vm.min_free_kbytes=112640 &> /dev/null,键入“ESC”键进入指令模式,执行**:wq**保存并退出修改。


vi /etc/profile.d/performance.sh
复制代码

场景 1:采用交互模式执行前置


[root@opendb01 /]# cd /topsoft/soft/openGauss/script/./gs_preinstall -U omm -G dbgrp -X /topsoft/soft/openGauss/cluster_config.xml
复制代码


这里设置:omm 用户密码 omm


预安装脚本执行的详细过程如下:


[root@localhost script]# ./gs_preinstall -U omm -G dbgrp -X /topsoft/soft/openGauss/cluster_config.xmlParsing the configuration file.Successfully parsed the configuration file.Installing the tools on the local node.Successfully installed the tools on the local node.Setting host ip envSuccessfully set host ip env.Are you sure you want to create the user[omm] (yes/no)?Please enter password for cluster user.Password:Please enter password for cluster user again.Password:Generate cluster user password files successfully.
Successfully created [omm] user on all nodes.Preparing SSH service.Successfully prepared SSH service.Checking OS software.Successfully check os software.Checking OS version.Successfully checked OS version.Creating cluster's path.Successfully created cluster's path.Set and check OS parameter.Setting OS parameters.Successfully set OS parameters.Warning: Installation environment contains some warning messages.Please get more details by "/topsoft/soft/openGauss/script/gs_checkos -i A -h opendb01 --detail".Set and check OS parameter completed.Preparing CRON service.Successfully prepared CRON service.Setting user environmental variables.Successfully set user environmental variables.Setting the dynamic link library.Successfully set the dynamic link library.Setting Core fileSuccessfully set core path.Setting pssh pathSuccessfully set pssh path.Setting Cgroup.Successfully set Cgroup.Set ARM Optimization.No need to set ARM Optimization.Fixing server package owner.Setting finish flag.Successfully set finish flag.Preinstallation succeeded.
复制代码

问题处理


--问题描述采用交互模式执行前置时报错/usr/bin/env: python3: No such file or directory[root@opendb01 script]# ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml/usr/bin/env: python3: No such file or directory
--解决办法采用上面办法进行python版本升级--查看python版本[root@opendb01 ~]# python --versionPython 2.7.5
[root@opendb01 ~]# python3 --versionpython3命令找不到
--采用yum方式安装操作系统自带的包管理器中的python3yum install python3
--再次查看python版本[root@opendb01 ~]# python --versionPython 2.7.5
[root@opendb01 ~]# python3 --versionPython 3.6.8
复制代码

14、执行安装


使用 gs_install 安装 openGauss。安装脚本 gs_install 必须以前置脚本中指定的 omm 执行,否则,脚本执行会报错。


/topsoft/soft/openGauss/cluster_config.xml 为 openGauss 配置文件的路径。在执行过程中,用户需根据提示输入数据库的密码,密码具有一定的复杂度,为保证用户正常使用该数据库,请记住输入的数据库密码。这里设置为 Topnet@123


设置的密码要符合复杂度要求:


  • 最少包含 8 个字符,最多包含 16 个字符。

  • 不能和用户名、当前密码(ALTER)、或当前密码反序相同。

  • 至少包含大写字母(A-Z)、小写字母(a-z)、数字、非字母数字字符(限定为~!@#$%^&*()-_=+\|[{}];:,<.>/?)四类字符中的三类字符。


注意事项:


  • openGauss 支持字符集的多种写法:gbk/GBK、UTF-8/UTF8/utf8/utf-8 和 Latine1/latine1。

  • 安装时若不指定字符集,默认字符集为 SQL_ASCII,为简化和统一区域 loacle 默认设置为 C,若想指定其他字符集和区域,请在安装时使用参数–gsinit-parameter="–locale=LOCALE"来指定,LOCALE 为新数据库设置缺省的区域。

  • 默认端口 15400


--赋予配置文件777的权限,因为安装脚本gs_install必须以前置脚本中指定的omm执行chmod 777 /topsoft/soft/openGauss/cluster_config.xml
--切换用户 omm为前置脚本gs_preinstall中-U参数指定的用户su - omm
--查看配置文件/etc/profile中的语言参数[omm@opendb01 dn_6001]$ cat /etc/profile | grep LANGexport LANG=en_US.UTF-8
--查看系统支持UTF-8编码的区域 locale -a|grep utf8
--执行安装脚本gs_install -X /topsoft/soft/openGauss/cluster_config.xml --gsinit-parameter="--locale=en_US.utf8"
复制代码


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


[omm@opendb01 om]$ cd /topsoft/huawei/install/app/share/sslcert/om[omm@opendb01 om]$ ls -ltotal 64-rw-------. 1 omm dbgrp  4399 Jan 27 08:43 cacert.pem-rw-------. 1 omm dbgrp  4402 Jan 27 08:43 client.crt-rw-------. 1 omm dbgrp  1766 Jan 27 08:43 client.key-rw-------. 1 omm dbgrp    56 Jan 27 08:43 client.key.cipher-rw-------. 1 omm dbgrp  1218 Jan 27 08:43 client.key.pk8-rw-------. 1 omm dbgrp    24 Jan 27 08:43 client.key.rand-rw-------. 1 omm dbgrp 10921 Jan 27 08:43 openssl.cnf-rw-------. 1 omm dbgrp  4402 Jan 27 08:43 server.crt-rw-------. 1 omm dbgrp  1766 Jan 27 08:43 server.key-rw-------. 1 omm dbgrp    56 Jan 27 08:43 server.key.cipher-rw-------. 1 omm dbgrp    24 Jan 27 08:43 server.key.rand
复制代码


日志文件路径下会生成两个日志文件:“gs_install-YYYY-MMDD_HHMMSS.log”和“gs_local-YYYY-MM-DD_HHMMSS.log”。


/topsoft/huawei/log/omm/omm/om/gs_install-2024-01-27_084156.log
复制代码


详细过程如下:


[omm@opendb01 ~]$ gs_install -X /topsoft/soft/openGauss/cluster_config.xmlParsing the configuration file.Check preinstall on every node.Successfully checked preinstall on every node.Creating the backup directory.Successfully created the backup directory.begin deploy..Installing the cluster.begin prepare Install Cluster..Checking the installation environment on all nodes.begin install Cluster..Installing applications on all nodes.Successfully installed APP.begin init Instance..encrypt cipher and rand files for database.Please enter password for database:Please repeat for database:begin to create CA cert filesThe sslcert will be generated in /topsoft/huawei/install/app/share/sslcert/omNO cm_server instance, no need to create CA for CM.Non-dss_ssl_enable, no need to create CA for DSSCluster installation is completed.Configuring.Deleting instances from all nodes.Successfully deleted instances from all nodes.Checking node configuration on all nodes.Initializing instances on all nodes.Updating instance configuration on all nodes.Check consistence of memCheck and coresCheck on database nodes.Configuring pg_hba on all nodes.Configuration is completed.The cluster status is Normal.Successfully started cluster.Successfully installed application.end deploy..
复制代码

问题处理


字符集不是 UTF8


--问题描述安装完成后登录数据库查看数据库时字符集不是UTF8
--原因执行安装时未指定字符集参数,,未指定字符集参数执行安装时字符集默认是SQL_ASCII
--解决办法--查看配置文件/etc/profile中的语言参数[omm@opendb01 dn_6001]$ cat /etc/profile | grep LANGexport LANG=en_US.UTF-8
--
复制代码

15、访问数据库


连接数据库的客户端工具包括 gsql、应用程序接口(如 JDBC)。


  • gsql 是 openGauss 自带的客户端工具。使用 gsql 连接数据库,可以交互式地输入、编辑、执行 SQL 语句。

  • 用户可以使用标准的数据库应用程序接口(如 JDBC),开发基于 openGauss 的应用程序。


--查看进程[omm@opendb01 ~]$ ps -ef | grep gaussdbomm        7669      1  8 07:18 ?        00:01:45 /topsoft/huawei/install/app/bin/gaussdb -D /topsoft/huawei/install/data/dn[omm@opendb01 ~]$ gs_ctl query -D /topsoft/huawei/install/data/dn[2024-01-28 07:40:02.099][9092][][gs_ctl]: gs_ctl query ,datadir is /topsoft/huawei/install/data/dn HA state:	local_role                     : Normal	static_connections             : 0	db_state                       : Normal	detail_information             : Normal
Senders info:No information Receiver info:No information
复制代码

本地连接数据库


gsql 是 openGauss 提供的在命令行下运行的数据库连接工具。此工具除了具备操作数据库的基本功能,还提供了若干高级特性,便于用户使用。本节只介绍如何使用 gsql 连接数据库,关于 gsql 使用方法的更多信息请参考《工具与命令参考》中“客户端工具 > gsql”章节。


缺省情况下,客户端连接数据库后处于空闲状态时会根据参数 session_timeout 的默认值自动断开连接。如果要关闭超时设置,设置参数 session_timeout 为 0 即可。默认为 0 表示关闭超时设置


以操作系统用户 omm 登录数据库主节点。


su - omm法一:gsql -d postgres -p 15400
参数说明:-d 连接的数据库名称,-p 数据库主节点的端口号
法二:gsql -d "host=127.0.0.1 port=15400 dbname=postgres user=omm password=Topnet@123"--登录后如下:[omm@localhost ~]$ gsql -d postgres -p 15400gsql ((openGauss 5.0.1 build 33b035fd) compiled at 2023-12-15 20:19:06 commit 0 last mr )Non-SSL connection (SSL connection is recommended when requiring high-security)Type "help" for help.
openGauss=# \l+ List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges | Size | Tablespace | Description-----------+-------+----------+------------+------------+-------------------+-------+------------+-------------------------------------------- postgres | omm | UTF8 | en_US.utf8 | en_US.utf8 | | 13 MB | pg_default | default administrative connection database template0 | omm | UTF8 | en_US.utf8 | en_US.utf8 | =c/omm +| 13 MB | pg_default | default template for new databases | | | | | omm=CTc/omm | | | template1 | omm | UTF8 | en_US.utf8 | en_US.utf8 | =c/omm +| 13 MB | pg_default | unmodifiableempty database | | | | | omm=CTc/omm | | |(3 rows)
--查看数据库状态[omm@localhost ~]$ gs_om -t status-----------------------------------------------------------------------
cluster_name : dbClustercluster_state : Normal #“Normal”表示数据库可正常使用redistributing : No
--创建数据库 不能是en_US.utf8不然报错openGauss=# create database test with encoding 'utf8' template = template0;CREATE DATABASE
复制代码


以上是 openGauss 安装部署实践分享,欢迎大家一起交流学习。


点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 3
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
详讲openGauss 5.0 单点企业版如何部署_Centos7_x86_数据库_华为云开发者联盟_InfoQ写作社区