1. 下载安装包
https://opengauss.org/zh/download.html
下载完成后上传并解压到一个目录中,/opt/huawei是默认的安装目录,不要把安装包放在安装目录中,如果一定要用不想改名,就只能在安装配置xml文件中修改安装目录位置。
吐槽一下: 官网给的连接和说明是下载一个all.tar.gz的文件,里面包含cm、om、tar.bz2还有一个upgrade_sql的文件,但后面安装教程只提到和用到了om。
2. 安装环境要求:
1) 硬件环境
内存 32G 及以上
8核 2.0GHz ,性能及商业化部署 单实例建议至少16核 2.0GHz,目前Gauss 数据库支持鲲鹏和X86 环境
硬盘 1GB 应用程序, 300M 元数据,建议系统盘 RAID1 ,数据盘RAID5
网卡 300M
(2)软件环境
注意python版本: 我用的环境是 centos 7.9,python 安装了3.7 一直报错,后来换成python3.6就通过了。后来看文档,人家写的是支持,不是支持XX及以上版本。 用shell脚本不行吗? 非要用python,还弄了好几个版本,不累么?
- openEuler:支持Python 3.7.X
- CentOS:支持Python 3.6.X
- 麒麟:支持Python 3.7.X
(3)软件依赖
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
redhat-lsb-core 建议版本:4.1
readline-devel 建议版本:7.0-13
libnsl(openEuler+x86环境中)建议版本:2.28-36
yum install -y libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel libnsl
(4) 系统设置
systemctl stop firewalld
setenforce 0
export LANG=XXX 字符集与数据库相同
设置时区
swapoff -a 关闭swap交换分区
ifconfig eth0 mtu 1500 / 8192 X86 1500 ARM 8192
3. 安装前准备
(1) 创建xml文件
在script的某个子目录中有一个示例cluster_config_template.xml ,将此文件按照环境实际情况修改后即可使用,官方也提供了多种场景的配置文件示例。
我第一次安装用单节点模式,没有互信等问题。需要将配置文件中的node2 信息都删除掉即可。
(2) 安装前置检查
./gs_preinstall -U omm -G dbgrp -X /opt/gaussdb-installer/script/cluster_config.xml
上面报错就是因为python版本不对,找不到对应的库文件,必须要对应。
[root@localhost script]# ./gs_preinstall -U omm -G dbgrp -X /opt/gaussdb-installer/script/cluster_config.xml
Parsing 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 env
Successfully set host ip env.
Are you sure you want to create the user[omm] (yes/no)? yes
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 "/opt/gaussdb-installer/script/gs_checkos -i A -h node1_hostname --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 file
Successfully set core path.
Setting pssh path
Successfully 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.
脚本会自动创建用户并交互式设置口令。 上面提示有告警。看一下
[root@localhost script]# /opt/gaussdb-installer/script/gs_checkos -i A -h node1_hostname --detail
Checking items:
A1. [ OS version status ] : Normal
[node1_hostname]
centos_7.9.2009_64bit
A2. [ Kernel version status ] : Normal
The names about all kernel versions are same. The value is "3.10.0-1160.el7.x86_64".
A3. [ Unicode status ] : Normal
The values of all unicode are same. The value is "LANG=zh_CN.UTF-8".
A4. [ Time zone status ] : Normal
The informations about all timezones are same. The value is "+0800".
A5. [ Swap memory status ] : Normal
The value about swap memory is correct.
A6. [ System control parameters status ] : Warning
[node1_hostname]
Warning reason: variable 'net.ipv4.tcp_retries1' RealValue '3' ExpectedValue '5'.
Warning reason: variable 'net.ipv4.tcp_syn_retries' RealValue '6' ExpectedValue '5'.
Check_SysCtl_Parameter warning.
A7. [ File system configuration status ] : Warning
[node1_hostname]
Warning reason: variable 'open files' RealValue '1024' ExpectedValue '1000000'
Warning reason: variable 'max user processes' RealValue '127913' ExpectedValue 'unlimited'
A8. [ Disk configuration status ] : Normal
The value about XFS mount parameters is correct.
A9. [ Pre-read block size status ] : Normal
The value about Logical block size is correct.
A10.[ IO scheduler status ] : Normal
The value of IO scheduler is correct.
A11.[ Network card configuration status ] : Warning
[node1_hostname]
BondMode Null
Warning reason: network 'ens160' 'mtu' RealValue '1500' ExpectedValue '8192'
A12.[ Time consistency status ] : Warning
[node1_hostname]
The NTPD not detected on machine and local time is "2022-05-18 10:51:38".
A13.[ Firewall service status ] : Normal
The firewall service is stopped.
A14.[ THP service status ] : Normal
The THP service is stopped.
Total numbers:14. Abnormal numbers:0. Warning numbers:4.
看到没有,参数设置高了也不行,低了也不行。
Warning reason: variable 'net.ipv4.tcp_retries1' RealValue '3' ExpectedValue '5'.
Warning reason: variable 'net.ipv4.tcp_syn_retries' RealValue '6' ExpectedValue '5'.
还有一个槽点,看这个警告提示:
Warning reason: network 'ens160' 'mtu' RealValue '1500' ExpectedValue '8192'
官网明明写的是X86 MTU设置1500,ARM 平台设置 8192. 结果我的X86平台竟然期望是8192,只能改了再说。
ifconfig ens160 mtu 8192
按照提示,将报警的项目一一设置好,然后再次检查完全通过。
(2) 安装
安装反而简单了,只要注意设定好python的路径即可。
安装完成后,按照官网就是初始化数据库了,不过实际上数据库只是安装了,还没有启动好不好!以下命令启动数据库。
gs_om -t start
启动了,看官网说要连接数据库,结果报错。
看下数据库进程监听的端口,15400,监听端口在xml配置文件中定义的,需要自己看下。3.0版本中的模板样例中将端口改成了15400,可能2.X版本是26000吧。
用gsql -d postgres -p 15400 连接数据库,然后创建一个自己的数据库成功。
后记:
1. 按照官网的安装文档进行安装并不顺利,很多小地方都没有提到,顺序也较为混乱。象操作系统参数设置放在环境准备和初始化安装环境两部分了。
2. 感觉如果限定python版本的话, 还不如用shell,基本不会有太大改变。我的系统上已经安装了python 3.8,又要再安装一个 3.6才可以安装,不爽。
3. 官网文档有些山寨,动不动就让你关闭防火墙进行安装。用什么端口就直接开放端口就可以了,到最后也没有说要防火墙开放什么端口。自己玩玩可以,生产环境这样操作就有些不好了。