麒麟 V10 SP2安装GaussDB(基于TPOPS轻量化部署形态)

1. 文档说明

1.1 编写目的

仅用作个人学习

1.2 引用文档

  • 《GaussDB轻量化部署形态 24.1.30 产品文档 01》(注意版本不要搞错,版本不对极易导致安装失败)
  • 《云数据库GaussDB管理平台(TPOPS) 24.1.31.10 用户指南 (for GaussDB轻量化部署形态) 01》
  • 《云数据库GaussDB管理平台(TPOPS) 24.1.30 账户一览表 (for GaussDB轻量化部署形态) 01》

1.3 术语表

  • HC(Huawei Cloud),就是华为的公有云。特点:华为机房+华为运维
  • HCS(Huawei Cloud Stack),就是私有云版本。特点:客户机房+客户运维
  • HCSO(HCS Online),部署是在客户机房,但是用专线接入华为云运维中心。特点:客户机房+华为运维
  • BMS(Bare Metal Server)叫裸金属服务器。类似我们在公有云上面买一个ECS,用鼠标点点就可以完成镜像安装,选择挂载硬盘(裸金属是使用云硬盘的)。其实和ECS差不多,但是不同的是,裸金属不是共享一台物理机的资源的,是独享使用。

你可以这么想,ECS就是我们PC上用vmvare创建2个虚拟机,2个虚拟机其实都是使用物理机的内存,如果一台虚拟机负载很高,就抢占另一台虚拟机的CPU了。

裸金属就是也一样创建2个虚拟机,但是不同的是每台虚拟机我都把内存条CPU掰下来给它们用,两台机器相互独立。

  • ECS,弹性云服务器,其实就是虚拟机

1.4 产品简介

什么是轻量化部署?

image

image

你可能会对以上文档的for GaussDB轻量化for 华为云Stackfor HCS Online描述有些疑惑

GaussDB的部署形态挺多的(版本的命名也是有些乱),比如使用GaussDBInstaller直接安装裸实例(一般只是用来POC测试)

还有就是轻量化部署、HCS部署(BMS/ECS部署)、HCSOnline

HCS就是部署在华为的私有云上面(也叫云底座)

HCS Oline就是上面的提到的HCSO形式

什么是轻量化部署呢?

轻量化顾名思义,部署起来不需太多的内容,如果是HCS部署,你还要先部署好HCS,还有各种iAAS、PASS的部署配置,花费(Money)是十分巨大的。

轻量化体现在哪里?轻量化安装包含的组件:

  1. 云数据库GaussDB管理平台(OLTP OPS,简称为TPOPS)
  2. GaussDB实例。
  3. 数据库复制软件DRS(可选,如果没有数据迁移需求的话可以不装)

所以说安装起来步骤很少,最少只需要装两样东西,先装一个管理平台,再装数据库实例。而且还有一个重要的功能:

后期可以纳管到HCS里面

image

如果后期部署了HCS,不需要做数据迁移之类麻烦的工作,直接使用HCS纳管旧的TPOPS部署形态,让它变成HCS的一部分

什么是TPOPS?

截取一段文档里面的:

云数据库GaussDB管理平台(TPOPS),简称:TPOPS,是基于HCS DBS(Database Service)服务孵化的一款可即开即用、稳定可靠、便捷管理的数据库运维管理平台。云数据库GaussDB管理平台(TPOPS)不依赖华为云Stack云底座,与华为云Stack标准云部署形成场景互补,可获得与华为云Stack云上一致的用户体验

其实就是一个web界面,部署好软件之后就可以通过浏览器登录。

进入界面之后可以有很多功能,可以管理GaussDB实例等的许多功能、巡检监控,告警中心,任务信息等

  • 演示图片:
    image

就是这样,用鼠标点点就能创建GaussDB实例了,就想在华为云上面一样,其实整个产品结构都是从华为云上面演化出来的。

华为云(公有云)->HCS(私有云)

HCS serviceOM上面的数据库运维平台(DBS Platform)-> TP OPS平台

就是不断简化演进出来的

2.项目建设内容

2.1 项目需求

使用个人PC来进行安装测试,本次安装使用单节点、集中式的部署方式

2.2 建设目标

  • 部署TPOPS软件、可以通过浏览器登录web界面
  • 可以使用TPOPS平台,创建和删除实例
  • GaussDB实例正常,cm_ctl query -Cvipd命令显示正常
  • 系统常规上下电之后、服务保持正常状态,数据不丢失。

3.项目方案设计

3.1 系统设计总图

云数据库GaussDB管理平台(TPOPS)软件架构

image

3.2 软硬件配置清单

操作系统要求

image

本次测试使用的操作系统:银河麒麟 V10 SP2 x86架构

镜像名称:Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso

软件要求

  • 浏览器:使用Chrome即可,用于我们的本机PC来登录

  • JRE:Open JDK:1.8.0_272(麒麟系统自带)

  • Python:Python 3.7.4或3.7.9(麒麟系统自带)

  • TPOPS软件,使用这个最早的24.1.30版本,这个是一个早期POC版本
    image
    image

硬件要求

1)对于管控节点的硬件要求

这里有两种硬件要求,DRS合并部署的非常高:

image

image

个人的PC机器是达不到这个要求的,我们就独立部署TPOPS就足够了

  • 独立部署的硬件要求:

image

建议:个人的PC机器要有16核以上,96GB的内存或以上

3.3 系统设计说明

3.4 项目实施计划(部署流程)

  • 整体部署流程

image

参考一下文档的方案:

image

  • TPOPS的部署流程:

image

4.服务器规划(安装前准备)

4.1 主机基础信息

  • 准备2台虚拟机
名称\节点角色 TPOPS管控节点 GaussDB实例节点
hostname tp-ops-152 gauss-db-184
IP 192.168.4.152 192.168.4.184
IP 10.10.10.152 10.10.10.184
内存 64GB 64GB
CPU 8 core 8 core

4.2 文件系统与磁盘规划

磁盘要求

(1)TPOPS管控节点硬盘要求:

  • 系统盘建议组RAID1

  • 数据盘建议RAID10

  • 文档建议将每个下面目录都单独挂盘,但是我们测试的话一个分data,一个分opt就可以了

/data
/opt/cloud
/opt/cloud/logs
/opt/gaussdb
/opt/sftphome
/opt/backup
/opt/influxdb

(2)GaussDB实例硬盘要求:

  • 系统盘建议组RAID1
  • 数据盘建议组RADI10

分区要求

(1)TPOPS管控节点

  • 系统盘需要分区/boot、/boot-efi和根分区。不需要划分swap
  • 数据盘需要手动分区,/data /opt/cloud,/opt/cloud/logs,/opt/gaussdb,/opt/sftphome,/opt/backup,/opt/docker,/opt/influxdb

(2)GaussDB实例节点

  • 系统盘一样要分/boot、/boot-efi和根分区。不需要划分swap
  • 数据盘不需要手动划分。安装实例时程序自动识别除系统盘外所有磁盘作为数据盘使用。管理程序会自行组盘,并将逻辑卷挂载在/var/chroot路径下的数据目录、日志目录以及备份目录等位置,目录文件系统格式为Ext4。

4.3 网络配置规划

GaussDB轻量化部署形态支持单平面(单IP地址)、两平面(双IP地址)或三平面(三IP地址)

三个IP就是管理IP、业务IP、数据IP

网络平面划分规则:

  • 管理平面:云数据库GaussDB管理平台(TPOPS)与数据库节点的通信、数据库实例管理。
  • 业务平面:业务访问数据库实例通信(分布式CN、主备版DN)
  • 数据平面:DN主备间通信、CN与DN间通信、备份恢复、DBMind纳管、主备实例间流式容灾通信。

本次安装使用的网段:

  • 业务IP:10.10.10.0
  • 管理IP:192.168.4.0

4.4 系统安装规划

虚拟机安装步骤

安装两台麒麟V10SP2的虚拟机,先装好系统,后续再添加磁盘

使用两个网卡,用来做管理IP和业务IP

image

第一步直接选英文安装

image

选中图形化安装

image

一定要配置boot分区

image

  • 管控节点新增2个磁盘,数据库实例节点新增2个磁盘(加一个也可以),我们就添加640G的吧

image
image

系统配置

(1)TPOPS管控节点的配置

我比较喜欢关掉图形界面,节省内存

 systemctl set-default multi-user.target 

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

关闭selinux

vim /etc/selinux/config

修改pam规则

vi /etc/pam.d/system-auth

password    requisite     pam_pwquality.so try_first_pass local_users_only minlen=8

管控节点需要配置yum源

# 上传镜像到机器上
mount -o loop /root/Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso /mnt

cd /etc/yum.repos.d
mkdir bk
mv *.repo bk/

vim local.repo

[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1

yum clean all
yum makecache
yum list |wc -l

修改ssh,防止超时退出

vi /etc/profile
echo "export TMOUT=0" >> /etc/profile
echo "export LANG=en_US.UTF-8" >> /etc/profile
source /etc/profile

vi /etc/ssh/sshd_config
ClientAliveInterval 0
ClientAliveCountMax 3
service sshd restart
## 退出重连一下

不需要修改bashrc,安装会后会自动修改

#vi /etc/bashrc
#echo "umask 0077" >> /etc/bashrc
#source /etc/bashrc

(2)数据库机器的配置

都是差不多的

systemctl set-default multi-user.target 
systemctl stop firewalld
systemctl disable firewalld

echo "export LANG=en_US.UTF-8" >> /etc/profile
source /etc/profile

echo "umask 0022" >> /etc/bashrc
source /etc/bashrc

echo "* soft nofile 1000000" >>/etc/security/limits.conf
echo "* hard nofile 1000000" >>/etc/security/limits.conf

主机上线前需要在sshd_config文件中将GSSAPIAuthentication参数设置为no,否则可能会导致主机上线失败。

vi /etc/ssh/sshd_config
GSSAPIAuthentication no

使用Chrony配置时间同步

  • 首先在服务器端确认时间是否是正常的,是否与现实时间同步,可以用一下命令同步现实时间
date -s "2024-xx-xx 10:46:15"
  • 在服务端安装chrony(自带系统已经安装了)
yum install chrony -y

vi /etc/chrony.conf

# Allow NTP client access from local network.
allow all

# Serve time even if not synchronized to a time source.
local stratum 10

systemctl restart chronyd

image

  • 在客户端配置
vi /etc/chrony.conf

##
server 192.168.4.152 iburst

systemctl restart chronyd

image

  • 看一下时间是否同步了

image

解决bug

麒麟系统audit服务内存泄露占用大量内存

ls *.rpm
audit-3.0-5.se.12.ky10.x86_64.rpm  audit-libs-3.0-5.se.12.ky10.x86_64.rpm  python3-audit-3.0-5.se.12.ky10.x86_64.rpm

rpm -Uvh *.rpm

systemctl daemon-reload
systemctl restart auditd.service


rpm -qa audit

磁盘分区

1)首先分管控节点的

现在有2个空余的数据盘

[root@tp-ops-152 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0    7:0    0    4G  0 loop /mnt
sda      8:0    0  480G  0 disk
├─sda1   8:1    0  479G  0 part /
├─sda2   8:2    0  500M  0 part /boot
└─sda3   8:3    0  500M  0 part /boot/efi
sdb      8:16   0  1.1T  0 disk
sdc      8:32   0  480G  0 disk
sr0     11:0    1    4G  0 rom

建立对应的目录

mkdir /data
mkdir -p /opt/cloud
mkdir -p /opt/cloud/logs
mkdir -p /opt/gaussdb
mkdir -p /opt/sftphome
mkdir -p /opt/backup
mkdir -p /opt/docker
mkdir -p /opt/influxdb

文档建议是每个都划一个分区的,这里我就建2个分区

parted -s /dev/sdb mklabel gpt
parted -s /dev/sdc mklabel gpt

### 建议从100M开始分区
parted -s /dev/sdb mkpart logic 100M 100%
parted -s /dev/sdc mkpart logic 100M 100%

#有了2个分区了
[root@tp-ops-152 ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0     4G  0 loop /mnt
sda      8:0    0   480G  0 disk
├─sda1   8:1    0   479G  0 part /
├─sda2   8:2    0   500M  0 part /boot
└─sda3   8:3    0   500M  0 part /boot/efi
sdb      8:16   0   1.1T  0 disk
└─sdb1   8:17   0   1.1T  0 part
sdc      8:32   0   480G  0 disk
└─sdc1   8:33   0 479.9G  0 part
sr0     11:0    1     4G  0 rom

格式化磁盘

mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdc1

挂载磁盘

##刷新分区表
partprobe

##获取分区的UUID
blkid /dev/sdb1
blkid /dev/sdc1

##修改/etc/fatab,并mount
echo "UUID=c65a6453-6dab-4ed4-b248-131e27a53289 /opt ext4 defaults 0 0" >> /etc/fstab
echo "UUID=3ff1b3d4-e64d-4490-94b0-4297f7bf2284 /data ext4 defaults 0 0" >> /etc/fstab

mount -a 


[root@tp-ops-152 ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0     4G  0 loop /mnt
sda      8:0    0   480G  0 disk
├─sda1   8:1    0   479G  0 part /
├─sda2   8:2    0   500M  0 part /boot
└─sda3   8:3    0   500M  0 part /boot/efi
sdb      8:16   0   1.1T  0 disk
└─sdb1   8:17   0   1.1T  0 part /opt
sdc      8:32   0   480G  0 disk
└─sdc1   8:33   0 479.9G  0 part /data
sr0     11:0    1     4G  0 rom

2)数据库的机器

数据库实例节点的数据盘不需要自己手动分区

[root@gauss-db-184 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  480G  0 disk
├─sda1   8:1    0  479G  0 part /
├─sda2   8:2    0  500M  0 part /boot
└─sda3   8:3    0  500M  0 part /boot/efi
sdb      8:16   0  640G  0 disk
sdc      8:32   0  640G  0 disk
sr0     11:0    1 1024M  0 rom

重启系统

reboot

查看重启后系统是否正常

4.5 本地准备

  • 准备软件包
# 安装工具包,无状态服务
DBS-docker-service_*_all.tar.gz
# TPOPS基础包
DBS-GaussDB-Server_*_.tar.gz
DBS-Platform-Server_*_.tar.gz 
# 前端控制台软件包
DBS-GaussDBConsole-Server_*_.tar.gz
#主机上线os_patch包
GaussDB_OS_PATCH_*.zip
#云数据库GaussDB om-agent包
DBS-GaussDB-Kernel_*_.tar.gz
#麒麟操作系统云数据库GaussDB内核包
DBS-GaussDB-Kylin-Kernel_*_.tar.gz
#云数据库GaussDB DBMind内核包
DBS-DBMind-Manual_*.tar.gz
#安装工具包,含证书文件
DBS-tools_*_all.tar.gz
#麒麟操作系统元数据库内核包
DBS-MetaDB_Kylin_Centralized_*.tar.gz

在自己的PC准备一共10个软件包,不能多也不能少

5.安装云数据库GaussDB管理平台(TPOPS)

5.1 上传软件包

  • 上传DBS-docker-service_***_all.tar.gz到 /data目录
mount -o loop /root/Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso /mnt
tar -zxvf DBS-docker-service_24.1.30.2024041620522920_all.tar.gz -C /data
  • 上传以下安装包到/data/docker-service/pkgs目录下(一共是9个)
[root@tp-ops-01 pkgs]# pwd
/data/docker-service/pkgs
[root@tp-ops-01 pkgs]# ll
total 8594480
-rw-r--r-- 1 root root  223963203 Aug 21 21:32 DBS-DBMind-Manual_24.1.30.202404190920.tar.gz
-rw-r--r-- 1 root root   65032557 Aug 21 21:31 DBS-GaussDBConsole-Server_24.1.30.835004247069440.tar.gz
-rw-r--r-- 1 root root  667138535 Aug 21 21:32 DBS-GaussDB-Kernel_24.1.30.835752444875136.tar.gz
-rw-r--r-- 1 root root 3484127002 Aug 21 21:33 DBS-GaussDB-Kylin-Kernel_24.1.30.835752444875136.tar.gz
-rw-r--r-- 1 root root  783494960 Aug 21 21:31 DBS-GaussDB-Server_24.1.30.835848588612352.tar.gz
-rw-r--r-- 1 root root 1690442793 Aug 21 21:31 DBS-MetaDB_Kylin_Centralized_505.1.RC1.SPC0100.B006.tar.gz
-rw-r--r-- 1 root root 1673677615 Aug 21 21:32 DBS-Platform-Server_24.1.30.835004247069440.tar.gz
-rw-r--r-- 1 root root       7257 Aug 21 21:33 DBS-tools_2.23.07.200_all.tar.gz
-rw-r--r-- 1 root root  212829771 Aug 21 21:33 GaussDB_OS_PATCH_24.1.30.20240419201246.zip
[root@tp-ops-01 pkgs]# du -sh ../pkgs/
8.2G    ../pkgs/

5.2 修改配置文件

cd /data/docker-service/config
vim user_edit_file.conf
  • conf文件示例:
[user_edit]
ssh_port = 22    # 节点之间登录的SSH端口号
gauss_path = /opt/gaussdb    # 元数据库安装目录(不能在/home目录下)
node1_ip = 192.168.4.11    # 节点1本机IP地址(执行节点IP地址)
node2_ip =    # 节点2本机IP地址 
node3_ip =     # 节点3本机IP地址
influxdb_install_ip1 = 192.168.4.11    # InfluxDB安装节点1
influxdb_install_ip2 =     # InfluxDB安装节点2
sftp_install_ip1 = 192.168.4.11    # SFTP安装节点1
sftp_install_ip2 =     # SFTP安装节点2
main_path = /opt/cloud    # 微服务运行目录, 目录可自定义,仅支持自定义第一级目录,二级目录cloud不允许修改 
node1_ip2 = 192.168.4.11    # 节点1可以和GaussDB实例地址通信的IP地址(执行节点可以和GaussDB实例通信的IP地址,要求可以和GaussDB实例SSH通以及Ping通)
node2_ip2 =     # 节点2可以和GaussDB实例地址通信的IP地址(要求可以和GaussDB实例SSH通以及Ping通)
node3_ip2 =     # 节点3可以和GaussDB实例通信的IP地址(要求可以和GaussDB实例SSH通以及Ping通)
log_path = /opt/cloud/logs    # 日志目录, 目录可自定义,仅支持自定义第一级目录,二级目录cloud及之后目录不允许修改
sftp_path = /opt/sftphome    # SFTP数据目录, 目录可自定义,仅支持自定义第一级目录,二级目录sftphome不允许修改
influx_path = /opt/influxdb    # InfluxDB数据目录,需要保证influxDB_install_ip1以及influxDB_install_ip2节点InfluxDB的父目录都有InfluxDB用户的可执行权限(如遍历父目录,对目录执行chmod a+x /directory_1/directory_2),目录可自定义,仅支持自定义第一级目录,二级目录influxdb目录不允许修改
docker_path = /opt/docker    # Docker数据目录, 目录可自定义,仅支持自定义第一级目录,二级目录docker不允许修改,如果用户环境已安装Docker,则以用户配置为准,该项配置不生效。
backup_path = /opt/backup    # 备份数据目录, 目录可自定义,仅支持自定义第一级目录,二级目录backup不允许修改
service_group_id = 1010    # Service用户ID(需未被使用)
service_user_id = 1010    # Service用户组ID(需未被使用)
uninstall_all = no    #  卸载时需将参数值配置成yes,默认为no
use_cgroup = no    #  是否使用cgroup限制资源(需要和DRS合部时,配置为yes,其余场景配置为no)
  • 我们是单个节点,使用以下的confi
[user_edit]
ssh_port = 22
gauss_path = /opt/gaussdb
node1_ip = 192.168.4.152
node2_ip =
node3_ip =
influxdb_install_ip1 = 192.168.4.152
influxdb_install_ip2 =
sftp_install_ip1 = 192.168.4.152
sftp_install_ip2 =
main_path = /opt/cloud
node1_ip2 = 192.168.4.152
node2_ip2 =
node3_ip2 =
log_path = /opt/cloud/logs
sftp_path = /opt/sftphome
influx_path = /opt/influxdb
docker_path = /opt/docker
backup_path = /opt/backup
service_group_id = 1010
service_user_id = 1010
uninstall_all = no
use_cgroup = no

5.3 前置检查

  • 如果内存不够,可以改一下脚本
cd /data/docker-service/action/mainAction/
vim precheck.sh
  • 执行检查命令
cd /data/docker-service/
sh appctl.sh precheck

产生了一下警告:

[root@tp-ops-152 docker-service]# sh appctl.sh precheck
*** CHECK BASE SETTINGS ***
 check python                  |  OK
 check jdk                     |  OK
 check net tools               |  OK
 check expect                  |  OK: Installed expect.
 check secc                    |  OK: Installed secc.
 check libcgroup               |  OK: Installed libcgroup.
 check dos2unix                |  OK: Installed dos2unix.
 check custom dir              |  OK
 check install mode            |  OK: Single mode.
 check IP format               |  OK
 check net condition           |  OK
start check node authentication
node not support auto authentication, will input root password
请输入root用户密码:
\check node authentication success.
Now scp precheck files...
scp precheck files done
Now doing precheck for 192.168.4.152
[WARNING]-[check_drs]===>[192.168.4.152: The switch of use_cgroup is no.You are not allow to install drs together on this machine.]
[WARNING]-[check_dir_total]===>[192.168.4.152: directory total mem check not ok, mounted at /opt 1099GB available but 1100GB required.]
[WARNING]-[check_dir_mount]===>[192.168.4.152: /opt/cloud was not mounted.]
[WARNING]-[check_dir_mount]===>[192.168.4.152: /opt/backup was not mounted.]
[WARNING]-[check_dir_mount]===>[192.168.4.152: /opt/cloud/logs was not mounted.]
[WARNING]-[check_dir_mount]===>[192.168.4.152: /opt/docker was not mounted.]
[WARNING]-[check_dir_mount]===>[192.168.4.152: /opt/gaussdb was not mounted.]
[WARNING]-[check_dir_mount]===>[192.168.4.152: /opt/influxdb was not mounted.]
[WARNING]-[check_dir_mount]===>[192.168.4.152: /opt/sftphome was not mounted.]
[WARNING]-[check_users]===>[192.168.4.152: [service sftpservice] will be used, if the users already exists, we will delete the user before creating it.]
Precheck all completed.

waring的警告就暂时忽略吧,生产环境最好没有warning

5.4 安装TPOPS软件

执行安装命令

cd /data/docker-service
sh appctl.sh install

这是提示单节点可能有丢失数据的风险,我们输入y继续

image

  • 可以同时查看日志
cd /opt/cloud/logs/deploy
tail -200f install.log

安装时间大概在一个小时左右(我使用固态硬盘安装的)

安装成功:

image

5.5 安装后检查

  • 登录TPOPS
https://192.168.4.152:8443/gaussdb/#/login

登录密码见《云数据库GaussDB管理平台(TPOPS) 24.1.30 账户一览表 (for GaussDB轻量化部署形态) 01.xlsx》

image

  • 任务中心

如果任务中心了不显示内容,肯定是哪里装错了

image

  • 安装包情况

image

5.6 重启管控节点

这一步主要是验证正常系统上下电后,TPOPS重启之后是不是正常的

参照下文的《7 系统上下电》这一章节

6.安装实例

6.1 前提条件

  • 管控节点安装流程重新上电

  • 需要后台改一下管控节点的元数据库,不让界面上不会显示单实例安装的按钮

## 允许单节点安装
su - dbadmin
source gauss_env_file
gsql -p 8635 -U core -W {password} -q core -h 127.0.0.1

UPDATE CORE.DBS_FEATURE SET STATUS = 'open' WHERE ID = (SELECT ID FROM CORE.DBS_FEATURE WHERE NAME = 'gaussdb_feature_supportSingleMode' AND SITE = 'pcs-lite');

SELECT STATUS FROM CORE.DBS_FEATURE WHERE NAME = 'gaussdb_feature_supportSingleMode' AND SITE = 'pcs-lite';

6.2 主机上线

在管控平台使用主机上线功能,会对被管控机器安装base agent组件作为监控

选择一个AZ,或者创建一个新AZ

image

选择添加主机

image

填写信息

image

image

image

  • 前往任务中心查看

image

添加后查看信息是否正确

image

6.3 申请License试用

  • 进入平台管理>License管理>许可容量>申请试用

image

image

可以试用了

image

6.4 安装Gauss实例

  • 进入实例管理

image

这里可以算单实例了

image
image
image
image
image

  • 可以通过树形结构查看job的运行情况
    image

  • 实例添加完成

image

image

6.5 查看实例的信息

使用Ruby用户登录

su - Ruby
source gauss_env_file

数据盘自动分好

[Ruby@gauss-db-184 ~]$ lsblk
NAME                   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                      8:0    0  480G  0 disk
├─sda1                   8:1    0  479G  0 part /
├─sda2                   8:2    0  500M  0 part /boot
└─sda3                   8:3    0  500M  0 part /boot/efi
sdb                      8:16   0  640G  0 disk
└─gaussdbvg-mydata1    253:0    0  1.1T  0 lvm  /var/chroot/var/lib/engine/data1
sdc                      8:32   0  640G  0 disk
├─gaussdbvg-mydata1    253:0    0  1.1T  0 lvm  /var/chroot/var/lib/engine/data1
└─gaussdbvg-backupdata 253:1    0   20G  0 lvm  /var/chroot/var/lib/log/backup
sr0                     11:0    1 1024M  0 rom

7 运维指南

7.1 上下电顺序

  • 下电顺序

image

  • 上电顺序

image

7.2 系统下电

停止GuassDB实例数据库

image

确保实例已停止

image

停止监控进程

若有多个节点需要下电操作,请依次登录每个节点执行 停止监控进程 下线InfluxDB

## 注释定时任务
vi /var/spool/cron/root

#* * * * * /usr/bin/python3 /opt/cloud/monitor/monitor.py >> /dev/null 2>&1 &

# 结束查询到的监控进程
ps -ef|grep /opt/cloud/monitor/monitor.py |grep -v 'grep'

kill -9 $PID

下线微服务

执行以下命令,查找节点上所有运行的微服务。

docker ps

image

# 查找节点上所有运行的微服务
[root@tp-ops-152 ~]# docker ps |cut -c-40
CONTAINER ID        IMAGE
567e2651a8ed        gaussdb-backupmanage
1e0209fcb868        gaussdb-instancemana
d6f981dfde72        gaussdb-open-api:24.
c8520ccc0323        ots:24.1.30.20240416
1274525e02d7        luban:24.1.30.202404
f98a0afe8f8a        auth:24.1.30.2024041
b5ad03826f38        gaussdb-console:24.1
1f23486d7c4f        resource-manager:24.
05a738f10bcb        workflow:24.1.30.202
8fae7670a8a6        rds-ha-admin:24.1.30
81caffddf33a        monitor-service:24.1
fda69c61c706        common-service:24.1.
a21cfed902e6        kafka:2.23.07.200.20
0cb7d96b4055        zookeeper:2.23.07.20
     

待停止的微服务有:auth、common-service、gaussdb-backupmanager、gaussdb-console、gaussdb-instancemanager、gaussdb-open-api、luban、monitor-service、ots、rds-ha-admin、resource-manager、workflow

docker stop f98a0afe8f8a
docker stop fda69c61c706
docker stop 567e2651a8ed

docker stop b5ad03826f38
docker stop 1e0209fcb868
docker stop d6f981dfde72

docker stop 1274525e02d7
docker stop 81caffddf33a
docker stop c8520ccc0323

docker stop 8fae7670a8a6
docker stop 1f23486d7c4f
docker stop 05a738f10bcb

最后再停掉Kafka和Zookeeper的镜像

docker stop a21cfed902e6
docker stop 0cb7d96b4055

执行以下命令,确定节点上所有Docker服务均已停止。

docker ps -a

查看STATUS属性不为UP,确认所有服务均已下线。

image

下线元数据库

这个数据库是TPOPS管控节点的元数据库

切换至元数据库实例用户,查询状态

su - dbadmin
source /home/dbadmin/gauss_env_file
cm_ctl query -Cvidp

image

停止集群

 cm_ctl stop -n 1

执行命令,确认当前节点状态变为Down。

cm_ctl query -Cvidp

下线sftp

  1. 切换回root用户。
  2. 停掉节点上的SFTP服务
su - root

systemctl status sftpd
systemctl stop sftpd
systemctl status sftpd

下线InfluxDB

  1. 以root用户登录待下线节点
  2. 行以下命令,停掉节点上的InfluxDB服务。
systemctl status influxd.service

systemctl stop influxd.service

systemctl status influxd.service

下电物理机

物理机上的全部服务停止后,可以手动对该物理机执行安全下电操作

reboot
## 或
shutdown -h 0

7.3 系统上电

上线InfluxDB

查看查看InfluxDB服务是否正常

influx -host 192.168.4.152
  • 启动服务
systemctl start influxd.service
systemctl status influxd.service
  • 这样就是正常的
[root@tp-ops-152 ~]# influx -host 192.168.4.152
Connected to http://192.168.4.152:8086 version 1.8.10
InfluxDB shell version: 1.8.10
>

输入exit退出
>
> exit
[root@tp-ops-152 ~]#

上线sftp

systemctl start sftpd
systemctl status sftpd

上线元数据库

su - dbadmin

source /home/dbadmin/gauss_env_file

cm_ctl query -Cvidp

cm_ctl start -n 1

cm_ctl query -Cvidp

上线微服务

1)重启重启Docker服务。

su - root

systemctl restart docker

2)先启动执行以下命令,查找zookeeper和kafka镜像ID

docker ps -a

3)依次启动Zookeeper和Kafka的Docker镜像

docker start a21cfed902e6
docker start 0cb7d96b4055

执行以下命令,查看Zookeeper和Kafka镜像对应的STATUS字段是否为UP状态

netstat -anp | grep -w 192.168.4.152:2181
netstat -anp | grep -w 192.168.4.152:8601

启动需要一点时间

image

4)依次启动其他微服务

待启动的微服务有:auth、common-service、gaussdb-backupmanager、gaussdb-console、gaussdb-instancemanager、gaussdb-open-api、luban、monitor-service、ots、rds-ha-admin、resource-manager、workflow。

docker start f98a0afe8f8a
docker start fda69c61c706
docker start 567e2651a8ed

docker start b5ad03826f38
docker start 1e0209fcb868
docker start d6f981dfde72

docker start 1274525e02d7
docker start 81caffddf33a
docker start c8520ccc0323

docker start 8fae7670a8a6
docker start 1f23486d7c4f
docker start 05a738f10bcb

5)执行以下命令,查询gaussdb-console微服务状态

netstat -anp | grep -w 192.168.4.152:8443

查询结果不为空,代表gaussdb-console微服务已经正常启动并监听端口

执行以下命令,查询微服务健康检查状态

需要一点时间。。。。。。

#auth:
curl -ksi -m 10 -H "Content-Type:application/json" "https://127.0.0.1:8564/auth-base/health-status"
#workflow:
curl -ksi -m 10 -H "Content-Type:application/json" "https://127.0.0.1:8702/workflow/health-status"
#common-service:
curl -ksi -m 10 -H "Content-Type:application/json" "https://127.0.0.1:9002/common-service/health-status"
#rds-ha-admin:
curl -ksi -m 10 -H "Content-Type:application/json" "https://127.0.0.1:8403/ha-admin/health-status"
#resource-manager:
curl -ksi -m 10 -H "Content-Type:application/json" "https://127.0.0.1:8601/resourcemanager-admin/health-status"
#GaussDB-instancemanager:
curl -ksi -m 10 -H "Content-Type:application/json" "https://127.0.0.1:8202/GaussDB-instancemanager-service/health-status"
#GaussDB-open-api:
curl -ksi -m 10 -H "Content-Type:application/json" "https://127.0.0.1:8002/rds/health-status"
#GaussDB-backupmanager:
curl -ksi -m 10 -H "Content-Type:application/json" "https://127.0.0.1:8302/GaussDB-backupmanager-service/health-status"
#monitor-service:
curl -ksi -m 10 -H "Content-Type:application/json" "https://127.0.0.1:8977/monitor-service/health-status"
#luban:
curl -ksi -m 10 -H "Content-Type:application/json" "https://127.0.0.1:8942/DBS-luban/health-status"
#ots:
curl -ksi -m 10 -H "Content-Type:application/json" "https://127.0.0.1:8039/ots-service/health-status"

开启监控进程

取消之前的注释

vi /var/spool/cron/root

7.4 卸载TPOPS的步骤

vi /data/docker-service/config/user_edit_file.conf

cd /data/docker-service

sh appctl.sh uninstall_all

sh appctl.sh cleanup_all
rm -rf /data/docker-service

8 验收测试

8.1 数据库操作试

创建数据库

后台登录数据库

  • password为创建实例时输入的密码
  • ip可以通过cm_ctl query -Cvipd查询出的任一个内网地址
su - Ruby
source /home/Ruby/gauss_env_file
gsql -d postgres -h ${ip} -U root -p 8000 -W ${password};

创建一个数据

gaussdb=> create database testdb;
CREATE DATABASE

执行命令查看数据库

                            List of databases
   Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges
-----------+----------+----------+---------+-------+-----------------------
 postgres  | rdsAdmin | UTF8     | C       | C     | =Tc/rdsAdmin         +
           |          |          |         |       | rdsAdmin=CTc/rdsAdmin+
           |          |          |         |       | rdsBackup=c/rdsAdmin +
           |          |          |         |       | rdsRepl=c/rdsAdmin   +
           |          |          |         |       | root=c/rdsAdmin      +
           |          |          |         |       | rdsMetric=c/rdsAdmin
 template0 | rdsAdmin | UTF8     | C       | C     | =c/rdsAdmin          +
           |          |          |         |       | rdsAdmin=CTc/rdsAdmin
 template1 | rdsAdmin | UTF8     | C       | C     | =c/rdsAdmin          +
           |          |          |         |       | rdsAdmin=CTc/rdsAdmin
 templatem | rdsAdmin | UTF8     | C       | C     | =c/rdsAdmin          +
           |          |          |         |       | rdsAdmin=CTc/rdsAdmin
 testdb    | root     | UTF8     | C       | C     |
(5 rows)

创建schema与用户

切换到创建的测试数据库

\c testdb;

执行如下sql创建,密码自定义;

CREATE SCHEMA db_sqlc;
CREATE USER sqlc WITH PASSWORD 'Huawei@123';

设置搜索路径为db_sqlc

SET search_path TO db_sqlc;

给用户配置权限

GRANT CONNECT ON DATABASE test TO sqlc;  
GRANT USAGE,CREATE ON SCHEMA db_sqlc TO sqlc;  
GRANT SELECT,UPDATE,DELETE,INSERT ON ALL TABLES IN SCHEMA db_sqlc TO sqlc;

数据库增删查改

create table dbmanage(id int,b varchar(199),c timestamp);
insert into dbmanage values(1, 10000, now());
select * from dbmanage;
update dbmanage set b = '12000' where b = '10000';

image

posted on 2024-09-08 23:46  兔哥DB  阅读(118)  评论(0编辑  收藏  举报

导航