基于华为云鲲鹏弹性云服务器ECS部署openGauss数据库【这次高斯不是数学家】

运气男孩 发表于 2022/06/12 01:10:47 2022/06/12
【摘要】 前言随着云计算规模越来越大,企业业务数据量呈指数级增长,传统数据库在海量数据存储与管理方面显得力不从心,面临“存不下,算得慢、算不准”的问题。面对挑战,华为云数据库深度融合华为在数据库领域多年的经验,充分结合了企业级场景需求,基于openGauss自研生态推出了企业级分布式关系型数据库GaussDB(for openGauss)。GaussDB(for openGauss)目前支持单分片和分...

前言

随着云计算规模越来越大,企业业务数据量呈指数级增长,传统数据库在海量数据存储与管理方面显得力不从心,面临“存不下,算得慢、算不准”的问题。面对挑战,华为云数据库深度融合华为在数据库领域多年的经验,充分结合了企业级场景需求,基于openGauss自研生态推出了企业级分布式关系型数据库GaussDB(for openGauss)GaussDB(for openGauss)目前支持单分片分布式两种部署形态,在支撑传统业务的基础上,持续构建竞争力特性,为企业面向数字化转型提供了无限可能。

而openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核源自PostgreSQL9.2.4,深度融合华为在数据库领域多年的经验,结合企业级场景需求,持续构建竞争力特性。同时openGauss也是一个开源、免费的数据库平台,鼓励社区贡献、合作。

区别:二者并没有直接的关系。通俗来说,GaussDB是openGauss前身,区别是GaussDB走上开源之路,形成openGauss。而在功能特性上,opengauss 支持单节点,gaussdb支持集群。

缘起

由于我自己对国产的数据库比较感兴趣,且做任何项目基本都需要数据库,特此前来感受一下,为以后自己开发项目使用GuassDB打下一定的基础。本篇文章基于华为云鲲鹏弹性云服务器ECS部署openGauss数据库,通过一系列配置在ecs服务器上下载安装openGauss数据库,然后简单创建数据库和表,然后进行增删改查功能,体验一下openGauss的强大之处。话不多说,直接开造!

具体流程

操作前提:登录华为云账号 且实名

  1. 使用手机号注册华为云账号:点击注册

  2. 点此去完成实名认证,账号类型选"个人",个人认证类型推荐使用"扫码认证"。 

    image.png

  •  创建虚拟私有云VPC
  • 创建弹性云服务器ECS
  •  远程登录弹性云服务器ECS
  • 下载openGauss镜像并解压
  • 创建集群的xml配置文件
  • 安装数据库

1.创建虚拟私有云VPC

什么是虚拟私有云?

虚拟私有云(Virtual Private Cloud,以下简称VPC),为弹性云服务器构建隔离的、用户自主配置和管理的虚拟网络环境,提升用户云中资源的安全性,简化用户的网络部署。

如何访问虚拟私有云?

提供了Web化的服务管理平台,即管理控制台和基于HTTPS请求的API(Application Programming Interface)管理方式。如果您需要将云平台上的虚拟私有云集成到第三方系统,用于二次开发,请使用API方式访问虚拟私有云;如果您需要进行其他相关操作,请使用管理控制台方式访问虚拟私有云,可直接登录管理控制台,从主页选择“虚拟私有云”。

虚拟私有云VPC为弹性云服务器ECS资源构建出隔离的虚拟私有网络环境。购买弹性云服务器ECS需要绑定VPC。

1.1 进入虚拟私有云VPC界面进入到华为云控制台,移动鼠标到左侧菜单栏,进入服务列表里面:“网络” ->“虚拟私有云VPC”界面。

1.2 创建虚拟私有云VPC点击右上角“创建虚拟私有云”按钮,进入创建VPC界面。

基本信息配置: ①区域:华北-北京四②名称:vpc-opengauss③IPv4网段:192.168.0.0/16默认子网配置:①可用区:可用区1②名称:subnet-opengauss③子网IPv4字段:192.168.0.0/24

其他内容使用默认值保持不变。 然后点击“立即创建”按钮。进入到VPC列表界面查看已经创建的VPC。创建成功后,状态显示可用。

2. 创建弹性云服务器ECS

数据库服务部署在弹性云服务器ECS上面,本次搭建单机数据库,需要购买一台弹性云服务器ECS,规格建议:CPU 4核,内存16GB

2.1 进入弹性云服务器ECS界面进入到华为云控制台,移动鼠标到左侧菜单栏,进入服务列表里面:“计算” ->“弹性云服务器ECS”界面。 点击右上角“购买弹性云服务器”按钮。

2.2 选择弹性云服务器ECS规格参数

区域和可用区有什么区别?

区域指弹性云服务器所在的物理位置,同一区域内可用区间内网互通,不同区域间内网不互通。每个区域包含许多不同的称为“可用区”的位置,即在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。

基础配置:①计费模式:按需计费②区域:华北-北京四③可用区:可用区1④CPU架构:鲲鹏计算⑤规格:鲲鹏通用计算增强型 |  kc1.xlarge.4| 4vCPU | 16GB⑥镜像:公共镜像⑦操作系统:openEuler – openEuler 20.03 64bit with ARM(40GB)⑧系统盘:通用型SSD 40G⑨购买量:1 台

点击下一步,进入网络配置。

网络配置:①网络:Vpc:vpc-opengauss (与创建VPC步骤中保持一致)、Subnet: subnet-opengauss、自动分配IP地址②安全组:使用默认的 default③弹性公网IP:现在购买④线路:全动态BGP⑤公网带宽:按带宽计费⑥带宽大小:2 Mbit/s点击下一步,进入高级配置。

高级配置:①云服务器名称:ecs-opengauss②登录凭证:密码③用户名:root④密码:自己设置(记牢后面需要用到)⑤确认密码:自己设置⑥云备份:暂不购买其他选项保持默认,点击下一步,确认配置。

确认配置:核对择的配置信息,勾选协议“我已经阅读并同意《镜像免责声明》”确认无误后,点击“立即购买”。(创建ECS需要等待2分钟左右),创建成功如下所示,状态会变为运行中。

3. 远程登录弹性云服务器ECS

(1) 打开提前搭建好的“Xfce终端”打开Terminal,输入以下命令登录弹性云服务器ECS。

注意:请使用你创建成功的弹性云服务器ECS的公网IP来替换root@后面的。

LANG=en_us.UTF-8 ssh root@119.3.181.105

说明:

(1)弹性云服务器ECS的弹性公网IP地址可以通过鼠标移动到云桌面浏览器页面中左侧菜单栏,点击服务列表->“计算”->“弹性云服务器ECS”进入服务器列表,进行查看并复制。

(2) 接受秘钥输入“yes”,回车;

(3)输入密码:创建ECS时设定的密码(输入密码时,命令行窗口不会显示密码,输完之后直接键入回车)。成功登录弹性云服务器ECS之后如下图所示:

或者使用xshell工具直接输入IP和密码进行连接,xshell是windows系统经常使用的ssh连接工具,可自行下载安装,这里不提供下载链接,聪明的你一定会。

注意:后续操作请保持Terminal窗口或xshell与弹性云服务器ECS的链接状态,以确保所有操作都执行在弹性云服务器ECS上。实验过程中请勿关闭该Terminal窗口或xshell,否则需要重复此步骤重新建立连接。

4. 下载openGauss镜像并解压

使用终端登录到弹性云服务器ECS上面,进入到/opt目录下,然后建立目录,ls命令显示一下是否创建成功

cd /opt

mkdir /opt/gauss

ls

进入到该目录下,使用wget命令下载openGauss镜像

cd /opt/gauss

wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/opengauss-install/openGauss-1.1.0-openEuler-64bit-all.tar.gz

解压完整镜像:

tar -zxvf openGauss-1.1.0-openEuler-64bit-all.tar.gz

完成后,再解压OM工具包:

tar -zxvf openGauss-1.1.0-openEuler-64bit-om.tar.gz

5. 创建集群的xml配置文件

5.1 准备稍后xml文件需要的配置信息,需要的是弹性云服务器ECS的名称和IP地址(私网地址)。可以通过hostname命令查询服务器名称,通过ifconfig查询私有IP地址。如下:

5.2 创建配置文件

进入到gauss目录下创建文件clusterconfig.xml文件,并将上面的配置信息复制粘贴到clusterconfig.xml中(记得按照5.1步骤填写你自己的弹性云服务器ECS的名称和IP地址),按Esc键,然后执行 :wq保存退出。

<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
    <CLUSTER>
        <PARAM name="clusterName" value="mycluster" />
        <!-- Need to be modified: Database node name (hostname) -->
        <PARAM name="nodeNames" value="ecs-opengauss" />
        <PARAM name="gaussdbAppPath" value="/opt/install/app" />
        <PARAM name="gaussdbLogPath" value="/opt/install/log/omm" />
        <PARAM name="tmpMppdbPath" value="/opt/install/tmp" />
        <PARAM name="gaussdbToolPath" value="/opt/install/om" />
        <PARAM name="corePath" value="/opt/install/corefile" />
        <!-- Need to be modified: Node IP addresses  -->
        <PARAM name="backIp1s" value="192.168.0.1"/> 
    </CLUSTER>
    <DEVICELIST>
        <DEVICE sn="100001">
        <!-- Need to be modified: Database node name (hostname) -->
        <PARAM name="name" value="ecs-opengauss"/>
        <PARAM name="azName" value="AZ1"/>
        <PARAM name="azPriority" value="1"/>
        <!-- Need to be modified: Node IP addresses -->
        <PARAM name="backIp1" value="192.168.0.1"/>
        <!-- Need to be modified: Node IP addresses -->
        <PARAM name="sshIp1" value="192.168.0.1"/>   
        <PARAM name="dataNum" value="1"/>
        <PARAM name="dataPortBase" value="15400"/>
        <PARAM name="dataNode1" value="/opt/install/data/dn"/>
        <PARAM name="dataNode1_syncNum" value="0"/>
        </DEVICE>
    </DEVICELIST>
</ROOT>

将数据库节点名称和节点ip一一对应,填写为你自己ECS服务器的私网ip和名称

6. 安装数据库

安装数据库分为两步,预安装gs_preinstall和安装gs_install。预安装会创建工具、数据、日志文件等目录,并将相关工具写入到对应目录下。安装则会初始化数据目录,将数据库配置文件、数据文件写入。

6.1 前置操作:

(1) 需要修改当前软件包所在目录的权限,改为755,确保子用户可以访问。

chmod -R 755 /opt/gauss/

chmod -R 755 /opt/gauss/script

(2) 对于openEuler系统,需要修改系统的performance.sh文件中min_free_kbytes的配置。

vi /etc/profile.d/performance.sh

进入文件后,直接键盘输入:set nu,可查看行数。

:set nu

键盘输入“i”,用 # 号注释掉该文件第15行。按下电脑的“ESC”键进入指令模式,执行:wq保存并退出修改。

重新设置下min_free_kbytes值:

/sbin/sysctl -w vm.min_free_kbytes=767846

(3) 执行下面命令安装libaio组件,openGauss数据库依赖系统的该组件。

yum install libaio libaio-devel -y

6.2 预安装gs_preinstal

首先进入解压目录下的script目录里面

cd /opt/gauss/script

执行预安装命令:

./gs_preinstall -U omm -G dbgrp -X /opt/gauss/clusterconfig.xml

注意:预安装过程成会有两次交互输入,第一次Are you sure you want to create trust for root (yes/no)? ,请输入yes,并输入设定的弹性云服务器ECS的root密码,第二次Are you sure you want to create the user[omm] and create trust for it (yes/no)? 请输入yes,并输入omm用户密码。命令说明:数据库需要部署在omm子用户下,如果当前操作系统没有omm用户,则会进行创建用户和用户组,并需要输入为新建用户设置的密码。 如果存在omm用户,只需输入omm用户的密码即可。用户密码需要满复杂度要求,长度大于8字符且至少包含字母、数字、特殊字符中三种(需输入两次)。等待安装显示Preinstallation succeeded,即预安装成功。进行下一步安装操作。

6.3 安装gs_install

安装需要在子用户下进行,即上一步创建的omm用户。切换子用户:

su - omm

执行安装步骤:

gs_install -X /opt/gauss/clusterconfig.xml

安装过程中会提示输入数据库的密码并确认(需输入两次),请按照提示操作。输入数据库密码:自己设置的,等待安装完成,成功如下图所示:

6.4 安装完成

(1)安装完成后,查询数据库集群状态。

gs_om -t status --detail

如图,cluster_state为Normal,表明集群状态正常。

(2) 使用gsql命令登录主机数据库

gsql -d postgres -p 15400 -r

登陆成功如下图所示

登录到数据库客户端,先进行修改密码操作:

alter role omm identified by '20000115yang**' replace '20000115yang*';

20000115yang* 为安装时候输入的数据库密码,20000115yang**为新设置的密码

完成后,便可以在数据库中进行创建表、插入数据等操作。

示例:创建数据库并进入到mydb数据库中:

create database mydb;

\c mydb

创建表

create table stu(id int, name varchar, age int);

查询表以及结构:

\d
\d stu

插入数据,下图显示插入成功

insert into stu values(1,'xiaoming', 18);
insert into stu values(2,'yunqinanhai', 22);

修改数据

update stu set age=20 where name='yunqinanhai';

删除数据

delete from stu where id=1;

查询所有数据

select * from stu

至此,基于华为云鲲鹏弹性云服务器ECS部署openGauss数据库整个流程到此结束,体验过程还是非常的流畅。

总结

在华为云的鲲鹏弹性云服务器ECS上成功部署了openGauss数据库,并使用openGauss的om工具成功安装openGauss单机数据库,登录到openGauss数据库进行简单的增删改查操作。整个流程下来非常的nice,希望在接下来的学习中,能了解更多的关于GaussDB的知识,并将其用到日常的开发中。下期见!

感恩能与大家在华为云遇见!希望能与大家一起在华为云社区共同成长。

【这次高斯不是数学家】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/345260

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。