openGauss
openGauss
1 安装准备
1.1 安装流程
本章节通过流程图简要介绍openGauss的安装流程。openGauss的安装流程如图所示:
流程图说明:
流程 | 说明 |
---|---|
安装前准备 | openGauss安装前需要准备相应的软硬件环境以及完成相关配置。本文档提供了openGauss安装所需的最低要求,实际安装中,请用户根据实际情况进行规划。 |
获取并校验安装包 | 安装包需要在openGauss开源社区下载并且对安装包内容进行检查,详细请参见获取安装包。 |
配置XML文件 | 安装openGauss前需要创建XML文件。XML文件包含部署openGauss的服务器信息、安装路径、IP地址以及端口号等。用于告知openGauss如何部署。用户需根据不同场景配置对应的XML文件。 |
上传安装包和XML文件 | 上传安装包和XML配置文件到待安装的服务器。 |
解压安装包 | 使用tar命令解压安装包。 |
初始化安装环境 | 安装环境的初始化包含上传安装包和XML文件、解压安装包、使用gs_preinstall准备好安装环境。 |
执行安装 | 使用gs_install安装openGauss。 |
1.2 获取安装包
从openGauss开源社区下载对应平台的安装包。 下载地址:https://opengauss.org/zh/download/(需要登录openGauss开源社区),选择对应平台的企业版安装包。
如何查看CPU架构和操作系统?
1.首先ssh登录服务器
2.查看CPU架构:执行lscpu
命令,查看输出信息的第一行:
Architecture: x86_64 # 表示x86架构服务器
Architecture: aarch64 # 表示arm64、aarch64架构服务器
3.查看操作系统:执行cat /etc/os-release
,查看NAME
、VERSION
、PRETTY_NAME
等字段:
NAME="openEuler"
VERSION="20.03 (LTS-SP4)"
ID="openEuler"
VERSION_ID="20.03"
PRETTY_NAME="openEuler 20.03 (LTS-SP4)"
ANSI_COLOR="0;31"
如果是CentOS或者Redhat系统,也可以执行:cat /etc/redhat-release
来查看系统版本。
确认CPU架构和操作系统后,选择对应的安装包即可:
1.3 准备软硬件安装环境
1.3.1 服务器
单机部署需要1台服务器,集群部署需要2台服务器。
1.3.2 操作系统
服务器操作系统要求(安装时语言选择英文,最小化安装):
- openEuler 20.03 LTS(推荐采用此操作系统)
- openEuler 22.03 LTS
- 麒麟V10
1.3.3 依赖软件
依赖软件,需要从对应操作系统的安装包中获取并安装(所有服务器都需要安装):
- libaio-devel:建议版本:0.3.109-13
- readline-devel:建议版本:7.0-13
- expect
- bzip2
如何判断依赖组件是否已安装?
1.首先ssh登录服务器
2.查看是否已安装,执行以下命令(以libaio-devel
为例):
#查找是否已经安装了libaio-devel
rpm -qa | grep libaio-devel
#输出了该组件名称及版本号等,表示已安装。如果无输出或者名称不一致则表示未安装
libaio-devel-0.3.112-5.oe2003sp4.x86_64
开始安装依赖组件:以openEuler 20.03 LTS系统为例,上传操作系统iso镜像文件到服务器上任意目录,比如:/hos/openEuler-20.03-LTS-SP4-x86_64-dvd.iso,挂载到目录:
mkdir /iso
#挂载iso到一个目录(如果服务器重启了需要重新挂载)
mount /hos/openEuler-20.03-LTS-SP4-x86_64-dvd.iso /iso
这样可以在/iso中看到操作系统的安装文件,下面配置本地yum源:
# 先备份默认源
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
# 配置本地源,新建文件local.repo
vi /etc/yum.repos.d/local.repo
#输入以下内容,其中baseurl中的/iso是系统镜像挂在的路径
[local]
name=local
baseurl=file:///iso
gpgcheck=0
enabled=1
# 保存后激活即可
yum clean all
yum makecache
安装依赖软件:
yum install -y libaio-devel readline-devel expect tar net-tools vim
因安装的组件版本与需求的不一致,需要配置软链接:
cd /usr/lib64
ln -s libreadline.so.8.0 libreadline.so.7
1.3.4 修改操作系统配置
以下操作使用root用户操作,所有服务器都需要配置:
1.修改/etc/selinux/config文件中的“SELINUX”值为“disabled”。
a. 使用VIM打开config文件。
vim /etc/selinux/config
b. 修改“SELINUX”的值“disabled”,执行:wq保存并退出修改。
SELINUX=disabled
重新启动操作系统。
reboot
2.检查防火墙是否关闭。
systemctl status firewalld
若防火墙状态显示为active (running),则表示防火墙未关闭,关闭防火墙并禁止开机重启。
systemctl disable firewalld.service
systemctl stop firewalld.service
在其他主机上重复以上步骤。
2 单机环境安装
服务器和IP规划:
资源 | IP | hostname |
---|---|---|
服务器1 | 192.168.80.101 | db1 |
以上是示例的ip和hostname,项目部署时替换为实际信息。服务器hostname设置方式:
hostnamectl set-hostname db1
2.1 创建XML配置文件
创建目录,用于存放安装时使用的配置文件和安装包(非数据库实际安装目录)
mkdir -p /hos/software/openGauss
chmod 755 -R /hos/software
创建XML配置文件:
#进入目录
cd /hos/software/openGauss
#创建新的配置文件
vim cluster_config.xml
配置文件中输入以下内容:
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<CLUSTER>
<!-- 数据库名称,默认即可 -->
<PARAM name="clusterName" value="gauss_cluster" />
<!-- 数据库节点名称(hostname),需要修改为两台服务器的实际hostname -->
<PARAM name="nodeNames" value="db1"/>
<!-- 数据库安装目录,默认即可-->
<PARAM name="gaussdbAppPath" value="/hos/opengauss/install/app" />
<!-- 日志目录,默认即可-->
<PARAM name="gaussdbLogPath" value="/hos/opengauss/log/omm" />
<!-- 临时文件目录,默认即可-->
<PARAM name="tmpMppdbPath" value="/hos/opengauss/tmp"/>
<!--数据库工具目录,默认即可-->
<PARAM name="gaussdbToolPath" value="/hos/opengauss/install/om" />
<!--数据库core文件目录,默认即可-->
<PARAM name="corePath" value="/hos/opengauss/corefile"/>
<!-- 服务器IP,需要修改为实际IP,与nodeNames按顺序一一对应 -->
<PARAM name="backIp1s" value="192.168.80.101"/>
</CLUSTER>
<DEVICELIST>
<!--修改为服务器1的hostnmae-->
<DEVICE sn="db1">
<!-- 服务器1的主机名称,修改为实际hostname -->
<PARAM name="name" value="db1"/>
<!-- 节点1所在的AZ及AZ优先级,默认即可 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点1的IP,修改为实际IP,backIP1和sshIP1相同即可-->
<PARAM name="backIp1" value="192.168.80.101"/>
<PARAM name="sshIp1" value="192.168.80.101"/>
<!-- dn -->
<PARAM name="dataNum" value="1"/>
<!--数据库访问端口,用于应用系统远程连接数据库-->
<PARAM name="dataPortBase" value="15400"/>
<!--数据库节点上的数据目录-->
<PARAM name="dataNode1" value="/hos/opengauss/install/data/dn"/>
<PARAM name="dataNode1_syncNum" value="0"/>
</DEVICE>
</DEVICELIST>
</ROOT>
其中主要注意的内容如下:
- 默认将服务器的数据盘挂载到/hos下,数据库的安装目录为/hos/opengauss,需要根据实际情况修改。
- 服务器的hostname建议修改为db1,此为配置文件默认配置,需要根据实际情况修改。
配置文件修改完成后保存即可。
2.2 初始化安装环境
创建完openGauss配置文件后,在执行安装前,为了后续能以最小权限进行安装及openGauss管理操作,保证系统安全性,需要运行安装前置脚本gs_preinstall准备好安装用户及环境。
安装前置脚本gs_preinstall可以协助自动完成如下的安装环境准备工作:
- 自动设置Linux内核参数以达到提高服务器负载能力的目的。
- 自动将openGauss配置文件、安装包拷贝到openGauss主机的相同目录下。
- openGauss安装用户、用户组不存在时,自动创建安装用户以及用户组。
- 读取openGauss配置文件中的目录信息并创建,将目录权限授予安装用户。
1.将安装包openGauss-x.x.x-openEuler-64bit-all.tar.gz
上传到上一步配置文件同一目录:/hos/software/openGauss
cd /hos/software/openGauss
tar -zxvf openGauss-x.x.x-openEuler-64bit-all.tar.gz
tar -zxvf openGauss-x.x.x-openEuler-64bit-om.tar.gz
2.如果是openEuler(openEuler 20.03)的操作系统,如果存在/etc/profile.d/performance.sh
文件,则编辑该文件内容,用#
号注释sysctl -w vm.min_free_kbytes=112640 &> /dev/null
,保存。
3.执行初始化安装
#进入脚本目录
cd /hos/software/openGauss/script
#执行初始化脚本
./gs_preinstall -U omm -G dbgrp -X /hos/software/openGauss/cluster_config.xml
omm
为数据库管理员(也是运行openGauss的操作系统用户)。dbgrp
为运行openGauss的操作系统用户的群组名称。/hos/software/openGauss/cluster_config.xml
为openGauss配置文件路径。- 在执行过程中,用户根据提示选择创建互信,并输入操作系统root用户或omm用户的密码。
4.错误排查 如果准备安装环境失败请根据openGauss日志目录$GAUSSLOG/om
下的gs_preinstall-YYYY-MM-DD_HHMMSS.log
和gs_local-YYYY-MM-DD_HHMMSS.log
中的日志信息排查错误。
例如配置文件中gaussdbLogPath
参数指定的路径为/hos/opengauss/log/omm
,则$GAUSSLOG/om
路径为/hos/opengauss/log/omm/omm/om
,omm
用户为运行openGauss的用户。
2.3 执行安装
1.使用root用户登录到openGauss的主机,修改目录权限并切换到omm用户。
chown -R omm:dbgrp /hos/software/openGauss/
su - omm
- omm指的是前置脚本gs_preinstall中-U参数指定的用户。
- 安装脚本gs_install必须以前置脚本中指定的omm执行,否则,脚本执行会报错。
2.使用gs_install安装openGauss。
#进入脚本目录
cd /hos/software/openGauss/script
#执行安装脚本
./gs_install -X /hos/software/openGauss/cluster_config.xml
- /hos/software/openGauss/cluster_config.xml为openGauss配置文件的路径
- 在执行过程中,用户需根据提示输入数据库的密码,密码具有一定的复杂度,为保证用户正常使用该数据库,请记住输入的数据库密码。设置的密码要符合复杂度要求:
- 最少包含8个字符,最多包含16个字符。
- 不能和用户名、当前密码(ALTER)、或当前密码反序相同。
- 至少包含大写字母(A-Z)、小写字母(a-z)、数字、非字母数字字符(限定为~!@#$%^&*()-_=+|[{}];:,<.>/?)四类字符中的三类字符。
- 安装过程中会生成ssl证书,证书存放路径为{gaussdbAppPath}/share/sslcert/om,其中{gaussdbAppPath}为openGauss配置文件中指定的程序安装目录。
- 日志文件路径下会生成两个日志文件:“gs_install-YYYY-MMDD_HHMMSS.log”和“gs_local-YYYY-MM-DD_HHMMSS.log”。
3.错误排查 如果安装失败请根据openGauss日志目录下的“gs_install-YYYY-MM-DD_HHMMSS.log”和“gs_local-YYYY-MM-DD_HHMMSS.log”中的日志信息排查错误。
2.4 配置远程访问
1.连接并切换omm用户:
su - omm
2.修改配置文件:/hos/opengauss/install/data/dn/postgresql.conf
,找到并修改以下配置:
listen_addresses = '*'
local_bind_address = '0.0.0.0'
password_encryption_type = 0
3.修改配置文件:/hos/opengauss/install/data/dn/pg_hba.conf
,增加以下内容:
host all all 0.0.0.0/0 md5
4.重启数据库
gs_om -t restart
2.5 安装验证
1.以omm用户身份登录服务器。
2.执行如下命令检查数据库状态是否正常,“cluster_state ”显示“Normal”表示数据库可正常使用。
gs_om -t status
3.数据库安装完成后,默认生成名称为postgres的数据库。第一次连接数据库时可以连接到此数据库。
其中postgres为需要连接的数据库名称,15400为数据库主节点的端口号,即XML配置文件中的dataPortBase的值。请根据实际情况替换。
gsql -d postgres -p 15400
连接成功后,系统显示类似如下信息表示数据库连接成功。
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.
4.创建远程用户 系统默认的omm用户无法远程连接,所以需要创建远程账号admin并设置管理权限:
create user admin with SYSADMIN password 'password';
5.远程客户端方式连接
- 连接方式选择postgresql或opengauss
- 连接地址:192.168.80.101,实际环境的服务器ip地址
- 端口:默认为15400,使用集群配置文件中的
dataPortBase
属性值 - 初始数据库:postgres
- 用户名:admin,使用上一步创建的远程用户
- 密码:使用上一步创建的远程用户密码
3 集群环境安装
服务器和IP规划:
资源 | IP | hostname |
---|---|---|
服务器1 | 192.168.80.101 | db1 |
服务器2 | 192.168.80.101 | db2 |
VIP | 192.168.80.100 | 独立IP,用于故障转移,不能被其他服务器占用 |
以上是示例的ip和hostname,项目部署时替换为实际信息。服务器hostname设置方式:
#服务器1
hostnamectl set-hostname db1
#服务器2
hostnamectl set-hostname db2
3.1 创建XML配置文件
创建目录,用于存放安装时使用的配置文件和安装包(非数据库实际安装目录)
mkdir -p /hos/software/openGauss
chmod 755 -R /hos/software
创建XML配置文件:
#进入目录
cd /hos/software/openGauss
#创建新的配置文件
vim cluster_config.xml
配置文件中输入以下内容:
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<CLUSTER>
<!-- 数据库名称,默认即可 -->
<PARAM name="clusterName" value="gauss_cluster" />
<!-- 数据库节点名称(hostname),需要修改为两台服务器的实际hostname -->
<PARAM name="nodeNames" value="db1,db2"/>
<!-- 数据库安装目录,默认即可-->
<PARAM name="gaussdbAppPath" value="/hos/opengauss/install/app" />
<!-- 日志目录,默认即可-->
<PARAM name="gaussdbLogPath" value="/hos/opengauss/log/omm" />
<!-- 临时文件目录,默认即可-->
<PARAM name="tmpMppdbPath" value="/hos/opengauss/tmp"/>
<!--数据库工具目录,默认即可-->
<PARAM name="gaussdbToolPath" value="/hos/opengauss/install/om" />
<!--数据库core文件目录,默认即可-->
<PARAM name="corePath" value="/hos/opengauss/corefile"/>
<!-- 服务器IP,需要修改为实际IP,与nodeNames按顺序一一对应 -->
<PARAM name="backIp1s" value="192.168.80.101,192.168.80.102"/>
<!-- VIP信息,修改为实际vip地址 -->
<PARAM name="floatIp1" value="192.168.80.100"/>
</CLUSTER>
<DEVICELIST>
<!--修改为服务器1的hostnmae-->
<DEVICE sn="db1">
<!-- 服务器1的主机名称,修改为实际hostname -->
<PARAM name="name" value="db1"/>
<!-- 节点1所在的AZ及AZ优先级,默认即可 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点1的IP,修改为实际IP,backIP1和sshIP1相同即可-->
<PARAM name="backIp1" value="192.168.80.101"/>
<PARAM name="sshIp1" value="192.168.80.101"/>
<!-- cm -->
<PARAM name="cmsNum" value="1"/>
<PARAM name="cmServerPortBase" value="15000"/>
<!-- CM Server用于侦听CM Agent连接请求或DBA管理请求的IP地址,修改为2台服务器的ip即可 -->
<PARAM name="cmServerListenIp1" value="192.168.80.101,192.168.80.102"/>
<!-- 主、备CM Server间通信的IP地址,修改为2台服务器的ip即可 -->
<PARAM name="cmServerHaIp1" value="192.168.80.101,192.168.80.102"/>
<PARAM name="cmServerlevel" value="1"/>
<!-- 修改为两台服务器的hostname -->
<PARAM name="cmServerRelation" value="db1,db2"/>
<!-- CM数据文件路径,保持默认 -->
<PARAM name="cmDir" value="/hos/opengauss/data/cmserver"/>
<!-- dn -->
<PARAM name="dataNum" value="1"/>
<!--数据库访问端口,用于应用系统远程连接数据库-->
<PARAM name="dataPortBase" value="15400"/>
<!--数据库主节点上的数据目录及备机数据目录,其中备机hostname修改为实际信息,目录默认即可-->
<PARAM name="dataNode1" value="/hos/opengauss/install/data/dn,db2,/hos/opengauss/install/data/dn"/>
<PARAM name="dataNode1_syncNum" value="0"/>
<!-- 修改为2台服务器的ip地址 -->
<PARAM name="dataListenIp1" value="192.168.80.101,192.168.80.102"/>
<PARAM name="floatIpMap1" value="floatIp1,floatIp1"/>
</DEVICE>
<!--修改为服务器2的hostnmae-->
<DEVICE sn="db2">
<!-- 服务器2的主机名称,修改为实际hostname -->
<PARAM name="name" value="db2"/>
<!-- 节点2所在的AZ及AZ优先级,默认即可 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点2的IP,修改为实际IP,backIP1和sshIP1相同即可-->
<PARAM name="backIp1" value="192.168.80.102"/>
<PARAM name="sshIp1" value="192.168.80.102"/>
<!-- cm -->
<PARAM name="cmServerPortStandby" value="15000"/>
<!-- CM数据文件路径,保持默认 -->
<PARAM name="cmDir" value="/hos/opengauss/data/cmserver"/>
</DEVICE>
</DEVICELIST>
</ROOT>
其中主要注意的内容如下:
- 默认将服务器的数据盘挂载到/hos下,数据库的安装目录为/hos/opengauss,需要根据实际情况修改。
- 2台服务器的hostname建议修改为db1、db2,此为配置文件默认配置,需要根据实际情况修改。
配置文件修改完成后保存即可。
3.2 初始化安装环境
创建完openGauss配置文件后,在执行安装前,为了后续能以最小权限进行安装及openGauss管理操作,保证系统安全性,需要运行安装前置脚本gs_preinstall准备好安装用户及环境。
安装前置脚本gs_preinstall可以协助自动完成如下的安装环境准备工作:
- 自动设置Linux内核参数以达到提高服务器负载能力的目的。
- 自动将openGauss配置文件、安装包拷贝到openGauss主机的相同目录下。
- openGauss安装用户、用户组不存在时,自动创建安装用户以及用户组。
- 读取openGauss配置文件中的目录信息并创建,将目录权限授予安装用户。
1.将安装包openGauss-x.x.x-openEuler-64bit-all.tar.gz
上传到上一步配置文件同一目录:/hos/software/openGauss
cd /hos/software/openGauss
tar -zxvf openGauss-x.x.x-openEuler-64bit-all.tar.gz
tar -zxvf openGauss-x.x.x-openEuler-64bit-om.tar.gz
2.如果是openEuler(openEuler 20.03)的操作系统,如果存在/etc/profile.d/performance.sh
文件,则编辑该文件内容,用#
号注释sysctl -w vm.min_free_kbytes=112640 &> /dev/null
,保存。
3.执行初始化安装
允许创建root用户互信时(要求2台服务器的root密码相同),预安装脚本在执行的时候会将各个主机的ip,hostname写入到/etc/hosts中,只需要在当前服务器上执行初始脚本,即可自动对2台服务器完成初始化:
#进入脚本目录
cd /hos/software/openGauss/script
#执行初始化脚本
./gs_preinstall -U omm -G dbgrp -X /hos/software/openGauss/cluster_config.xml
omm
为数据库管理员(也是运行openGauss的操作系统用户)。dbgrp
为运行openGauss的操作系统用户的群组名称。/hos/software/openGauss/cluster_config.xml
为openGauss配置文件路径。- 在执行过程中,用户根据提示选择创建互信,并输入操作系统root用户或omm用户的密码。
不允许创建root用户互信时(2台服务器的root密码不同且不能修改为相同密码),此时需要手动先建立互信(也就是将各个主机的ip,hostname写入到/etc/hosts中),然后执行预安装脚本。
以下操作需要在每台服务器上执行:
#修改/etc/hosts文件,根据实际环境填入以下内容,即服务器的ip和hostname对应关系:
192.168.80.101 db1
192.168.80.102 db2
#进入脚本目录
cd /hos/software/openGauss/script
#执行初始化脚本
./gs_preinstall -U omm -G dbgrp -L -X /hos/software/openGauss/cluster_config.xml
4.错误排查 如果准备安装环境失败请根据openGauss日志目录$GAUSSLOG/om
下的gs_preinstall-YYYY-MM-DD_HHMMSS.log
和gs_local-YYYY-MM-DD_HHMMSS.log
中的日志信息排查错误。
例如配置文件中gaussdbLogPath
参数指定的路径为/hos/opengauss/log/omm
,则$GAUSSLOG/om
路径为/hos/opengauss/log/omm/omm/om
,omm
用户为运行openGauss的用户。
3.3 执行安装
注意
只需要在一台服务器上执行安装即可。
1.使用root用户登录到openGauss的主机,修改目录权限并切换到omm用户。
chown -R omm:dbgrp /hos/software/openGauss/
su - omm
- omm指的是前置脚本gs_preinstall中-U参数指定的用户。
- 安装脚本gs_install必须以前置脚本中指定的omm执行,否则,脚本执行会报错。
2.使用gs_install安装openGauss。
#进入脚本目录
cd /hos/software/openGauss/script
#执行安装脚本
./gs_install -X /hos/software/openGauss/cluster_config.xml
- /hos/software/openGauss/cluster_config.xml为openGauss配置文件的路径
- 在执行过程中,用户需根据提示输入数据库的密码,密码具有一定的复杂度,为保证用户正常使用该数据库,请记住输入的数据库密码。设置的密码要符合复杂度要求:
- 最少包含8个字符,最多包含16个字符。
- 不能和用户名、当前密码(ALTER)、或当前密码反序相同。
- 至少包含大写字母(A-Z)、小写字母(a-z)、数字、非字母数字字符(限定为~!@#$%^&*()-_=+|[{}];:,<.>/?)四类字符中的三类字符。
- 安装过程中会生成ssl证书,证书存放路径为{gaussdbAppPath}/share/sslcert/om,其中{gaussdbAppPath}为openGauss配置文件中指定的程序安装目录。
- 日志文件路径下会生成两个日志文件:“gs_install-YYYY-MMDD_HHMMSS.log”和“gs_local-YYYY-MM-DD_HHMMSS.log”。
3.错误排查 如果安装失败请根据openGauss日志目录下的“gs_install-YYYY-MM-DD_HHMMSS.log”和“gs_local-YYYY-MM-DD_HHMMSS.log”中的日志信息排查错误。
3.4 配置VIP
VIP即Virtual IP Address,用于向客户端提供一个固定的“虚拟”访问地址,是实现HA(高可用)数据库的一种方案,避免后端主数据库发生切换时对客户端的影响。
VIP在openGauss上的实现方式:它会随主DN状态进行动态绑定和切换,即如果DN主发生了切换,原主DN上的虚拟IP可能动态绑定到新主DN上,用户可以只通过该IP与数据库连接,不用感知数据库在哪个节点上。
仲裁流程:
- 原主:
- 在原主上解绑VIP。
- 把VIP从数据库配置项"listen_addresses"中删除。
- 新主:
- 在新主上用别名(网卡名:DN端口号)方式绑定VIP。
- 把VIP添加到数据库配置项 “listen_addresses” 中。
配置方式:在数据库实例节点上每一个cm_agent数据目录下生成cm_resource.json配置文件,文件中包含VIP的json字段,可通过cm_ctl工具命令生成VIP配置文件,可以通过cm_ctl show方法查看VIP信息。
1.配置omm用户ifconfig权限(使用root用户执行,所有服务器都需要配置)
# 编辑sudoers
vim /etc/sudoers
# 在最下方增加以下内容, 强制保存:wq!
Cmnd_Alias COMMAND_FLAG = /usr/sbin/ifconfig
omm ALL=(ALL) NOPASSWD:ALL
2.增加floatIp资源(使用omm用户,在服务器1上执行)
#切换到omm用户
su - omm
# 创建VIP资源,作为集群的资源管理,ip地址改为实际环境的vip
cm_ctl res --add --res_name="VIP_az1" --res_attr="resources_type=VIP,float_ip=192.168.80.100"
# 将各实例添加到资源,2个base_ip是服务器ip,根据实际填写
cm_ctl res --edit --res_name="VIP_az1" --add_inst="node_id=1,res_instance_id=6001" --inst_attr="base_ip=192.168.80.101"
cm_ctl res --edit --res_name="VIP_az1" --add_inst="node_id=2,res_instance_id=6002" --inst_attr="base_ip=192.168.80.102"
# 检查
cm_ctl res --check
执行完check后,会在cm_agent目录下生成一个自定义的资源配置文件cm_resource.json,将此文件拷贝到服务器2相同目录:
#其中db2是服务器2的hostname
scp /hos/opengauss/data/cmserver/cm_agent/cm_resource.json db2:/hos/opengauss/data/cmserver/cm_agent/
重启数据库:
# 重启数据库使配置生效
gs_om -t restart
# 验证
cm_ctl show
3.5 配置远程访问
以下操作在2台服务器上都需要执行: 1.连接并切换omm用户:
su - omm
2.修改配置文件:/hos/opengauss/install/data/dn/postgresql.conf
,找到并修改以下配置:
listen_addresses = '*'
local_bind_address = '0.0.0.0'
password_encryption_type = 0
3.修改配置文件:/hos/opengauss/install/data/dn/pg_hba.conf
,增加以下内容:
host all all 0.0.0.0/0 md5
4.重启数据库
gs_om -t restart
3.6 安装验证
1.以omm用户身份登录服务器。
2.执行如下命令检查数据库状态是否正常,“cluster_state ”显示“Normal”表示数据库可正常使用。
gs_om -t status
3.数据库安装完成后,默认生成名称为postgres的数据库。第一次连接数据库时可以连接到此数据库。
其中postgres为需要连接的数据库名称,15400为数据库主节点的端口号,即XML配置文件中的dataPortBase的值。请根据实际情况替换。
gsql -d postgres -p 15400
连接成功后,系统显示类似如下信息表示数据库连接成功。
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.
4.创建远程用户 系统默认的omm用户无法远程连接,所以需要创建远程账号admin并设置管理权限(因备库为只读模式,所有本操作只能在主库操作):
create user admin with SYSADMIN password 'password';
5.远程客户端方式连接
- 连接方式选择postgresql或opengauss
- 连接地址:192.168.80.100,实际环境的vip地址
- 端口:默认为15400,使用集群配置文件中的
dataPortBase
属性值 - 初始数据库:postgres
- 用户名:admin,使用上一步创建的远程用户
- 密码:使用上一步创建的远程用户密码