作为openGauss数据库开发者,在基于开源社区的openGauss版本进行二次开发的过程中,需要完成软件包获取、源码了解、代码修改、编译发布等过程,同时还需要安装数据库以了解数据库的基本特点、验证开发的功能实现情况,本章将简要介绍上述过程。
2.1 安装部署
作为openGauss数据库开发者,除了需要了解openGauss的特点和使用方法外,往往也需要基于openGauss开源产品进行二次开发,同时验证所开发的功能的实现情况。本节向读者简要介绍openGauss的安装部署方法,详细的内容请参见openGauss官方社区(https://opengauss.org)。
2.1.1 了解安装流程
本节通过流程图简要介绍openGauss的安装流程。openGauss的安装流程如图2-1所示。
图2-1 安装流程图
流程图说明如表2-1所示。
表 2-1 安装流程图说明
流程 说明
安装前准备 openGauss安装前需要准备相应的软硬件环境以及相关操作系统配置。“2.1.2准备软硬件安装环境”章节提供了openGauss安装所需的最低要求,实际安装中,请用户根据实际情况进行规划
获取安装包 安装包需要在openGauss开源社区下载并且对安装包内容进行检查
配置XML文件 安装openGauss前需要创建XML文件。XML文件包含部署openGauss的服务器信息、安装路径、IP地址以及端口号等。用于告知openGauss如何部署。用户需根据不同场配置对应的XML文件
初始化安装环境 安装环境的初始化包含上传安装包和XML文件、解压安装包、使用gs_preinstall准备好安装环境
执行安装 使用gs_install安装openGauss
2.1.2 准备软硬件安装环境
本节介绍openGauss的软硬件环境要求。建议部署openGauss的各服务器具有等价的软硬件配置。
-
硬件环境要求
表2-2列出了openGauss服务器应具备的最低硬件要求。在实际产品中,硬件配置的规划需要考虑数据规模及所期望的数据库响应速度。请根据实际情况进行规划。
表2-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所示。
表2-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方式编译 -
软件依赖要求
openGauss的软件依赖要求如表2-4所示。
依赖软件建议使用表2-3中操作系统安装光盘中的默认安装包。如果不存在默认安装包时,请参见表2-4查看软件对应的建议版本。
表2-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
2.1.3 修改操作系统配置
- 关闭操作系统防火墙
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)。 - 设置字符集参数
将各数据库节点的字符集设置为相同的字符集,可以在/etc/profile文件中添加"export LANG=XXX"(XXX为Unicode编码)。
vim /etc/profile - 设置时区和时间
在各数据库节点上,确保时区和时间一致。
(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 - (可选)关闭swap交换内存
在各数据库节点上,使用“swapoff -a”命令将交换内存关闭。
swapoff -a - 关闭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)。 - 设置网卡MTU值
将各数据库节点的网卡MTU值设置为相同大小。
(1) 执行如下命令查询服务器的网卡编号。
ifconfig
如图2-2所示,如果服务器IP为10.244.53.173,则该服务器的网卡编号为eth0。
图2-2 查询网卡编号
(2) 使用如下命令将数据库各节点的网卡MTU(maximum transmission unit,最大传输单元。在网络中能够传输的最大数据报文)值设置为相同大小。对于x86,MTU值推荐1500;对于ARM,MTU值推荐8192。
ifconfig 网卡名 mtu mtu值
2.1.4 设置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(Secure Shell daemon,安全外壳协议守护进程,作为服务端提供SHH协议。SSH为Secure Shell的缩写,是一套标准的网络协议,允许在本地计算机和远程计算机之间建立安全通道)使设置生效。
systemctl restart sshd.service
(4) 以root用户身份重新登录。
ssh xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx为安装openGauss环境的IP。
2.1.5 获取安装包
openGauss开源社区上提供了安装包的获取方式。
(1) 从openGauss开源社区(https://opengauss.org/zh/download.html)下载对应平台的安装包。如图2-3所示。
图2-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