BIT数据库实践——在云服务器上一键部署安装openGauss

BIT数据库实践——在云服务器上一键部署安装openGauss

    • 一、操作环境
    • 二、购买云服务器
    • 三、配置安全组
    • 四、连接至云服务器
    • 五、一键部署openGauss
    • 六、参考文献

“可爱”的数据库老师要求我们使用华为的GaussDB作为数据库学习实践平台,这按照“完整”的官方帮助文档来安装openGauss多是一件“美逝”啊。主要确实官方文档中的描述不尽详细,配置过程中总有这样那样的问题。天无绝人之路,在找遍了各大论坛之后,我突然发现了Gauss松鼠会和贾军峰老师提供的一键部署的脚本,那叫一个热泪盈眶啊。对比官方文档后发现,确实有些细节被官方“忽略”了。也可能是因为我太菜了…Anyway,为了同学们可以不要像我一样踩遍所有坑,就有了这篇文章的诞生。希望对同学们有所帮助鸭。那我们废话不多说,“直接来吧”。

一、操作环境

  • 服务器端:CentOS 7.6
  • 本地客户端:macOS 12.2.1

二、购买云服务器

  1. 登陆华为云官网

  2. 在控制台找到弹性云服务器ECS

  3. 点击购买弹性云服务器

  4. 设置基础配置

    按照下图配置即可,需要注意的选项如下:

    • 计费模式——>选择按照需要计费
    • CPU架构和规格——>x86架构且配置至少为2核CPU&&4G内存,随后选择最便宜的那个就行。
    • 镜像选择——>系统建议选择CentOS 7.6。若选择其他版本,则需要在安装后编辑/etc/redhat-release文件,将其相应版本号改为7.6,否则安装openGauss时会报错。
    • 主机安全功能——>取消勾选

    随后选择下一步即可。

  5. 进行网络配置

    • 网路直接选择默认即可。需要注意的是,你可以选择自动分配IP地址,也可以选择手动分配IP地址。
    • 带宽大小选择10M。
    • 勾选随实例释放

    随后选择下一步即可。

  6. 高级配置

    • 设置云服务器名称。
    • 设置root用户密码。注意,这里的密码会在使用SSH远程登录的时候用到。

    随后选择下一步即可。

  7. 确认购买

    • 勾选我已阅读并同意,然后选择立即购买即可。
  8. 购买完成

    完成后略等待一会,我们的服务器就创建好了。这边需要注意的是,IP地址栏第一行的IP是公网IP,在远程SSH登陆的时候会用到。

三、配置安全组

购买服务器后,为了使我们能在本地电脑通过SSH连接到服务器,我们需要在服务器端设置可以接入服务器的用户权限,也就是安全组设置。过程如下:

  1. 查询自己的公网IP

    直接在百度中搜索IP,看到IP地址查询中的地址,则为我们本地机器的公网IP,将它复制下来。

  2. 找到安全组

    在ESC云服务器侧边栏找到安全组,点击进入安全组页面。

  3. 配置安全组

    • 点击配置规则
    • 随后选择添加规则
    • 优先级设为1,在源地址中填入第1步中查到的本机IP,并在其后面加上/32

    随后点击确定即可。此时我们的安全组就配置好了,可以从本地连接到我们的云服务器了。

四、连接至云服务器

在任意SSH软件中,填入一下内容并点击确认即可登陆服务器。

  • 第二部分第8步中获得的服务器公网IP
  • 登陆服务器的用户,通常为root
  • 登陆用户的密码

我这里使用的是Termius作为演示。

  1. 在地址栏输入以下内容,随后点击CONNECT即可。

    ssh 登陆用户名@云服务器公网地址
    
  2. 输入登陆用户密码并点击CONTINUE即可连接至服务器

  3. 连接成功

五、一键部署openGauss

这里使用的是贾军峰老师和Gauss松鼠会所提供的脚本文件,十分感谢老师和松鼠会的帮助。该脚本将官方安装帮助说明中的全部命令做了汇总与整理,同学们可以放心使用。当然,如果你是Linux大佬或者是比较极客且硬核的小伙伴,也可以参照脚本中的命令自己一步一步去实践。脚本文件如下:

⚠️:请将脚本中第16行中的IP地址192.168.1.250替换为你在服务器中运行ifconfig得到的IP地址!!!这很重要!!!若是不清楚怎么获取IP,请看下面的教程。

⚠️:请将脚本中第16行中的IP地址192.168.1.250替换为你在服务器中运行ifconfig得到的IP地址!!!这很重要!!!若是不清楚怎么获取IP,请看下面的教程。

⚠️:请将脚本中第16行中的IP地址192.168.1.250替换为你在服务器中运行ifconfig得到的IP地址!!!这很重要!!!若是不清楚怎么获取IP,请看下面的教程。

#!/bin/bash
## Author:  贾军锋
## Date:    2021-10-25
## OS:       CentOS7.6 x86_64 [最小硬件配置:2c/4G]
## Database:openGauss 2.1.0
## Description:一键式实现操作系统环境配置、openGauss软件下载、openGauss软件安装等步骤,帮助大家提升安装openGauss数据库效率
## Tips:     请确保操作系统符合要求并且可以连接外网

## 0.关闭virbr0网卡 [本地虚拟机标准化安装openEuler系统会默认存在virbr0网卡,删除该网卡以避免干扰数据库的安装]
# virsh net-destroy default
# virsh net-list
# echo "Net device virbr0 is disabled."

## 1.定义主机信息[请根据实际情况修改]
export MY_HOSTNAME=node1           ## 主机名
export MY_HOSTIP=192.168.1.250      ## IP地址
export MY_SOFTWARE_DIRECTORY=/soft/openGauss      ## 软件包所在目录
export MY_XML=/soft/openGauss/clusterconfig.xml   ## 集群配置文件XML
export openGauss_Download_url=https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.1.0/x86/openGauss-2.1.0-CentOS-64bit-all.tar.gz  ## openGauss软件包下载地址

## 1. 设置主机名并配置hosts文件
hostnamectl set-hostname $MY_HOSTNAME
sed -i '/$MY_HOSTIP/d' /etc/hosts
echo "$MY_HOSTIP  $MY_HOSTNAME   #Gauss OM IP Hosts Mapping" >> /etc/hosts
cat /etc/hosts
echo "1.Configure /etc/hosts completed."
echo -e "\n"

## 2. 关闭防火墙
systemctl disable firewalld.service
systemctl stop firewalld.service
echo "Firewalld " `systemctl status firewalld|grep Active`
echo "2.Disable firewalld service completed."
echo -e "\n"

## 3. 关闭SELinux
sed -i '/^SELINUX=/d' /etc/selinux/config
echo "SELINUX=disabled" >> /etc/selinux/config
cat /etc/selinux/config|grep "SELINUX=disabled"
echo "3.Disable SELINUX completed."
echo -e "\n"

## 4. 设置操作系统字符集编码
echo "LANG=en_US.UTF-8" >> /etc/profile
source /etc/profile
echo $LANG
echo "4.Configure encoding completed."
echo -e "\n"

## 5. 设置操作系统时区
rm -fr /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
date -R
hwclock
echo "5.Configure Timezone completed."
echo -e "\n"

## 6. 关闭SWAP分区 [对于2G内存的设备,建议待安装完毕后再打开SWAP以间接 “扩容内存容量”]
sed -i '/swap/s/^/#/' /etc/fstab
swapoff -a
free -m
echo "6.Close swap partition completed."
echo -e "\n"

## 7. 配置SSH服务,关闭Banner,允许root远程登录
sed -i '/Banner/s/^/#/'  /etc/ssh/sshd_config
sed -i '/PermitRootLogin/s/^/#/'  /etc/ssh/sshd_config
echo -e "\n" >> /etc/ssh/sshd_config
echo "Banner none " >> /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
cat /etc/ssh/sshd_config |grep -v ^#|grep -E 'PermitRoot|Banner'
echo "7.Configure SSH Service completed."
echo -e "\n"

## 8. 配置YUM源、安装依赖包、修改默认Python3版本
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo  /etc/yum.repos.d/bak/
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
yum clean all
yum install -y wget bzip2 python3
yum install -y libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel net-tools tar
mv /usr/bin/python  /usr/bin/python2_bak
ln -s /usr/bin/python3 /usr/bin/python
python -V
echo "8.Configure Install Packages and change default Python version completed."
echo -e "\n"

## 9. 配置 sysctl.conf 和 performance.sh
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_retries1 = 5
net.ipv4.tcp_syn_retries = 5
net.sctp.path_max_retrans = 10
net.sctp.max_init_retransmits = 10
EOF
sysctl -p
echo "9.Configure sysctl.conf and performance.sh completed."
echo -e "\n"

## 10. 配置资源限制
echo "* soft stack 3072" >> /etc/security/limits.conf
echo "* hard stack 3072" >> /etc/security/limits.conf
echo "* soft nofile 1000000" >> /etc/security/limits.conf
echo "* hard nofile 1000000" >> /etc/security/limits.conf
echo "* soft nproc unlimited" >> /etc/security/limits.d/90-nproc.conf
tail -n 4 /etc/security/limits.conf
tail -n 1 /etc/security/limits.d/90-nproc.conf
echo "10.Configure resource limits completed."
echo -e "\n"

## 11. 关闭透明大页[Only for CentOS]
cat >>/etc/rc.d/rc.local<<EOF
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF
chmod +x /etc/rc.d/rc.local
/usr/bin/sh /etc/rc.d/rc.local
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
echo "11.Close transparent_hugepage completed."
echo -e "\n"

## 12. 禁用RemoveIPC[Only for openEuler]
## sed -i '/^RemoveIPC/d' /etc/systemd/logind.conf
## sed -i '/^RemoveIPC/d' /usr/lib/systemd/system/systemd-logind.service
## echo "RemoveIPC=no"  >> /etc/systemd/logind.conf
## echo "RemoveIPC=no"  >> /usr/lib/systemd/system/systemd-logind.service
## systemctl daemon-reload
## systemctl restart systemd-logind
## loginctl show-session | grep RemoveIPC
## systemctl show systemd-logind | grep RemoveIPC
## echo "12.Disable RemoveIPC completed."
## echo -e "\n"

## 13. 下载openGauss软件包
mkdir -p $MY_SOFTWARE_DIRECTORY
cd $MY_SOFTWARE_DIRECTORY
wget $openGauss_Download_url
echo "13.openGauss software download completed."
echo -e "\n"

## 14. 配置XML文件
rm -fr $MY_XML
cat >> $MY_XML <<EOF
 
 
     
     
         
        $MY_HOSTNAME" /> 
        $MY_HOSTIP"/> 
         
         
         
         
         
     
     
     
         
         
            $MY_HOSTNAME"/> 
             
             
             
            $MY_HOSTIP"/> 
            $MY_HOSTIP"/> 
             
	     
	     
	     
	     
         
     

EOF
cat $MY_XML
echo "14.Configure XML file completed."
echo -e "\n"

## 15. 解压安装包并修改目录权限
echo "Begin to Uncompress openGauss Package and Modify directory permissions:"
cd $MY_SOFTWARE_DIRECTORY
tar -zxvf *all.tar.gz
tar -zxvf *om.tar.gz
ls -l
chmod -R 777 $MY_SOFTWARE_DIRECTORY/../
echo "15.Uncompress openGauss Package completed."
echo -e "\n"

## 16. 执行 gs_preinstall
echo "Begin to execute openGauss preinstall:"
python $MY_SOFTWARE_DIRECTORY/script/gs_preinstall -U omm -G dbgrp -X $MY_XML
echo "16.openGauss preinstall completed."
echo -e "\n"

## 17. 检查预安装环境
echo "Begin to Check OS environment:"
$MY_SOFTWARE_DIRECTORY/script/gs_checkos -i A -h $MY_HOSTNAME --detail

## 18. 执行 gs_install
echo "Begin to execute openGauss install:"
touch /home/omm/install_db
cat >> /home/omm/install_db <<EOF
source ~/.bashrc
gs_install -X  $MY_XML --gsinit-parameter="--encoding=UTF8"  --dn-guc="max_process_memory=3GB" --dn-guc="shared_buffers=128MB" --dn-guc="cstore_buffers=16MB"
EOF
chown -R omm:dbgrp /home/omm/install_db
su - omm -c "sh /home/omm/install_db"
echo "17.openGauss install completed."
echo -e "\n"

## 安装完毕!
echo "openGauss Install completed.congratulations"
echo "Congratulations!!!"
  1. 基础设置

    连接到服务器后需要进行如下操作

    • 完成下图第一步,在命令行输入ifconfig,获取IP地址,该IP即用于上述脚本中IP地址的替换。

    • 完成上图第二步,编辑脚本文件。

      • 在命令行输入vim auto_install.sh
      • 然后按i进入编辑模式
      • 将上述脚本复制其中
      • 随后按esc退出编辑模式,并输入:wq保存脚本并退出编辑器
    • 完成第三步,运行脚本。

      在命令行输入sh auto_install.sh,回车,即开始openGauss一键部署安装。

  2. 安装过程中需要进行的操作

    • 遇到如下所示,询问是否创建用户omm时,输入yes并回车。并为omm用户设置密码。

    • 为数据库添加密码

    • 完成安装

      看到如下图时,即说明完成安装

  3. 验证安装

    安装完成后我们可以进行验证,在命令行输入命令ps -ef |grep gauss,如果返回内容与下图相似,即说明成功安装openGauss。

好了,在云服务器一键部署安装openGauss就完成啦!现在嘛,enjoy it!

哦对,最后嘞附上自己的个人Blog,有兴趣的小伙伴可以去看看哦!BaizeXS’s Blog

六、参考文献

  • 企业版安装 | openGauss
  • 一键部署openGauss2.1.0CentOS 7.6
  • 【高校课堂】openGauss 安装部署_哔哩哔哩_bilibili

你可能感兴趣的:(服务器,数据库,华为云)