在华为云ECS上部署openGauss
这次手动安装了一遍openGauss,讲道理,挺累的。。。
一、操作环境
- 服务器端:openEuler 20.03 64bit with ARM
- 本地客户端:macOS 12.2.1
二、购买云服务器
-
登陆华为云官网
-
在控制台找到
弹性云服务器ECS
-
点击
购买弹性云服务器
-
设置基础配置
- 计费模式选择:按需计费
- 区域:华北-北京四
- CPU架构:鲲鹏架构
- CPU规格:2核CPU&&4G内存
- 镜像类型:公共镜像
- 镜像: openEuler 20.03 64bit with ARM
- 主机安全功能:取消勾选
配置完成后,单击下一步。
-
设置网络配置
- 网路设置:选择默认即可。需要注意的是,你可以选择自动分配IP地址,也可以选择手动分配IP地址。
- 公网宽带:按流量计费
- 带宽大小:5M
- 随实例释放:可选
配置完成后,单击下一步。
-
设置高级配置
- 云服务器名称:根据自己的喜好设置即可,我这里设置为
openGauss
。 - root用户密码:根据自己的喜好设置即可。注意,这里的root用户密码会在使用SSH远程登录服务器时用到。
配置完成后,单击下一步。
- 云服务器名称:根据自己的喜好设置即可,我这里设置为
-
确认购买
- 勾选
我已阅读并同意
,然后选择立即购买即可。
- 勾选
-
购买完成
完成后略微等待一会,我们的服务器就创建好了。注意:IP地址栏第一行的IP是公网IP,第二行则为私有IP。公网IP在远程SSH登陆服务器时会用到,私有IP在后续安装openGauss过程中会用到。
三、配置安全组(可选)
创建好服务器之后,一般有两种方式可以登陆我们的服务器:
- 通过云服务器厂商提供的
Cloud Shell
等服务,在网页端使用SSH服务登陆服务器。 - 在本地机器上借助Terminal或者Xshell、Putty等软件,通过SSH协议连接至我们的云服务器。
有时我们可以在本地电脑通过SSH直接连接到我们的服务器,有时却怎么登陆也登陆不上。为了使我们能在本地电脑通过SSH连接到服务器,我们需要在服务器端设置可以接入服务器的用户权限,也就是安全组设置。如果你的电脑无法正常连接到服务器,可以尝试下面的方法:
-
查询自己的公网IP
直接在百度中搜索IP,看到IP地址查询中的地址,则为我们本地机器的公网IP,将它复制下来。
-
找到安全组
在ESC云服务器侧边栏找到
安全组
,点击进入安全组页面。 -
配置安全组
- 点击
配置规则
- 随后选择
添加规则
优先级
设为1
,在源地址中填入第1步中查到的本机IP,并在其后面加上/32
。
随后点击确定即可。此时我们的安全组就配置好了,可以从本地连接到我们的云服务器了。
- 点击
四、使用Terminal连接至云服务器
在终端输入如下格式命令:
ssh 用户名@公网IP -p 端口
我们这里使用root
用户登陆,并且ssh服务默认端口为22,因此不需要添加-p
参数,示例命令如下:
ssh root@121.36.36.113
随后根据提示输入root
用户密码即可登陆服务器。
五、部署openGauss
-
设置字符集参数
将各数据库节点的字符集设置为相同的字符集,可以在
/etc/profile
文件中添加字符集。-
输入如下命令,编辑
/etc/profile
文件vim /etc/profile
按
i
进入编辑模式,在文件底部添加如下内容:export LANG=en_US.UTF-8
添加后按
ESC
键退出编辑模式,并输入:wq
保存修改并退出vim。 -
输入如下命令初始化文件,使之立即生效
source /etc/profile
-
-
修改Python版本并安装
libaio
包-
安装Python3
yum install -y python3
-
进入
/usr/bin
目录cd /usr/bin
-
查找
python
文件find python
正常情况下返回值为
python
-
备份
python
文件mv python python.bak
-
建立Python3软链接
ln -s python3 /usr/bin/python
-
查看Python版本
python -V
返回值为
Python 3.x.x
即可。 -
安装
libaio
包yum install -y libaio*
-
-
下载数据库安装包
-
在
root
用户下新建openGauss安装目录mkdir -p /opt/software/openGauss
-
更改文件夹权限
chmod 755 -R /opt/software
-
进入安装目录
cd /opt/software/openGauss
-
使用
wget
下载安装包wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.1.0/arm/openGauss-2.1.0-openEuler-64bit-all.tar.gz
注:根据服务器配置,这里选择的openGauss安装包为
openeuler_aarch64
版本,其他版本请自行更换安装包下载地址。下载地址可在openGauss官网找到。
-
-
配置XML文件
安装openGauss前需要创建XML文件。XML文件包含部署openGauss的服务器信息、安装路径、IP地址以及端口号等。用于告知openGauss如何部署。用户需根据不同场合配置对应的XML文件。这里我们以实验为目的,使用单节点配置的方案。
-
在
root
用户下进入/opt/software/openGauss
文件夹cd /opt/software/openGauss
-
在华为云网络控制台处记下私有IP,编辑XML文件时会用到
-
查看
hostname
,并将其记下,编辑XML文件时会用到cat /etc/hostname
-
创建XML配置文件
vim clusterconfig.xml
按
i
进入编辑模式,并将如下内容复制进去<?xml version="1.0" encoding="UTF-8"?> <ROOT> <CLUSTER> <PARAM name="clusterName" value="dbCluster" /> <PARAM name="nodeNames" value="ecs-c9bf" /> <PARAM name="backIp1s" value="192.168.0.58"/> <PARAM name="gaussdbAppPath" value="/opt/gaussdb/app" /> <PARAM name="gaussdbLogPath" value="/var/log/gaussdb" /> <PARAM name="gaussdbToolPath" value="/opt/huawei/wisequery" /> <PARAM name="corePath" value="/opt/opengauss/corefile"/> <PARAM name="clusterType" value="single-inst"/> </CLUSTER> <DEVICELIST> <DEVICE sn="1000001"> <PARAM name="name" value="ecs-c9bf"/> <PARAM name="azName" value="AZ1"/> <PARAM name="azPriority" value="1"/> <PARAM name="backIp1" value="192.168.0.58"/> <PARAM name="sshIp1" value="192.168.0.58"/> <!--dbnode--> <PARAM name="dataNum" value="1"/> <PARAM name="dataPortBase" value="26000"/> <PARAM name="dataNode1" value="/gaussdb/data/db1"/> </DEVICE> </DEVICELIST> </ROOT>
复制完成后需要进行一些修改,如下图所示,其中服务器名称就是我们刚才查看的
hostname
。修改完成后按
ESC
键,输入:wq
保存并退出。
参数 说明 clusterName openGauss名称。 nodeNames openGauss中主机名称。 backIp1s 主机在后端存储网络中的IP地址(内网IP)。所有openGauss主机使用后端存储网络通讯。 gaussdbAppPath openGauss程序安装目录。此目录应满足如下要求:•磁盘空间>1GB。•与数据库所需其它路径相互独立,没有包含关系。 gaussdbLogPath openGauss运行日志和操作日志存储目录。此目录应满足如下要求:•磁盘空间建议根据主机上的数据库节点数规划。数据库节点预留1GB空间的基础上,再适当预留冗余空间。•与openGauss所需其它路径相互独立,没有包含关系。此路径可选。不指定的情况下,openGauss安装时会默认指定"$GAUSSLOG/安装用户名"作为日志目录。 tmpdbPath 数据库临时文件存放目录。若不配置tmpdbPath,默认存放在/opt/huawei/wisequery/perfadm_db目录下。 gaussdbToolPath openGauss系统工具目录,主要用于存放互信工具等。此目录应满足如下要求:•磁盘空间>100MB。•固定目录,与数据库所需其它目录相互独立,没有包含关系。此目录为可选配置项。不指定的情况下,openGauss安装时会默认指定"/opt/huawei/wisequery"作为数据库系统工具目录。 corePath openGauss core文件的指定目录。 -
-
预安装准备
-
修改
performance.sh
文件vim /etc/profile.d/performance.sh
注释如下内容,修改完成后按
ESC
键,输入:wq
保存并退出。 -
加载安装包中
lib
库vim /etc/profile
在文件底部添加如下内容:
export packagePath=/opt/software/openGauss export LD_LIBRARY_PATH=$packagePath/script/gspylib/clib:$LD_LIBRARY_PATH
添加完成后按
ESC
键,输入:wq
保存并退出。输入如下命令初始化文件,使之立即生效:
source /etc/profile
-
解压安装包
进入安装包目录
cd /opt/software/openGauss
解压
openGauss-x.x.x-openEuler-64bit-all.tar.gz
包tar -zxvf openGauss-x.x.x-openEuler-64bit-all.tar.gz
解压
openGauss-x.x.x-openEuler-64bit-om.tar.gz
包tar -zxvf openGauss-x.x.x-openEuler-64bit-om.tar.gz
解压后查看目录下文件
ls
-
-
预安装
-
进入
script
目录cd script
-
执行预安装脚本
python gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/clusterconfig.xml
-U
后为用户名-G
后为用户组-X
后为XML配置文件
运行过程中会询问我们是否执行,填写
yes
即可,随后会要求我们设置omm
用户密码。 -
安装完成后显示如下
-
-
安装openGauss
-
修改文件权限
chmod -R 755 /opt/software/openGauss/script
-
修改
omm
用户的sudo
权限vim /etc/sudoers
按
i
进入编辑模式,在root
的下一行添加omm
用户,添加完成后按ESC
键,输入:wq
保存并退出。 -
切换至
omm
用户su omm
-
切换至openGauss的script目录
cd /opt/software/openGauss/script
-
执行安装脚本
gs_install -X /opt/software/openGauss/clusterconfig.xml --gsinit-parameter="--encoding=UTF8" --dn-guc="max_process_memory=4GB" --dn-guc="shared_buffers=256MB" --dn-guc="bulk_write_ring_size=256MB" --dn-guc="cstore_buffers=16MB"
参数说明如下:
参数 用途 Encoding 设置字符集 max_process_memory 设置一个数据库节点可用的最大物理内存 shared_buffers 设置openGauss使用的共享内存大小 bulk_write_ring_size 大批量数据写入触发时,该操作使用的环形缓冲区大小 cstore_buffers 设置列存所使用的共享缓冲区的大小 在安装过程中需要需要设置数据库密码
-
安装成功则会有下图显示
-
六、openGauss体验
-
登陆服务器并切换至
omm
用户su omm
-
查看数据库是否启动
gs_om -t status
-
启动数据库
gs_om -t start
-
连接到默认数据库
gsql -d postgres -p 26000 -r
postgres
为openGauss安装完成后默认生成的数据库,初始可以连接到此数据库进行新数据库的创建,26000为数据库主节点的端口号,需根据openGauss的实际情况做替换。 -
创建数据库用户
jay
CREATE USER jay WITH PASSWORD "Bigdata@123";
创建用户名为
jay
,密码为Bigdata@123
的用户 -
创建数据库
CREATE DATABASE db_tpcc OWNER jay;
创建名为
db_tpcc
的数据库,其所有者为jay
-
退出默认登陆
\q
-
使用新用户连接到此数据库
gsql -d db_tpcc -p 26000 -U jay -W Bigdata@123 -r
-
创建名为
jay
的SCHEMA
,并设置jay
为当前的schema
CREATE SCHEMA joe AUTHORIZATION jay; SET search_path TO jay;
-
创建表
CREATE TABLE mytable (firstcol int);
-
向表中插入数据
INSERT INTO mytable values (100);
-
查看表中数据
SELECT * from mytable;