目录
3. 配置NTP从节点(192.168.56.201,192.168.56.202)
1. 在所有节点创建 gbase 用户的.ssh 目录,并授权(很重要)
3. 将公钥文件上传至所有节点即可实现免密登陆,包括本节点(此操作需输入密码)
安装数据库时报错显示错误码:80000201:Run cmd failed:%s
安装过程中,报错显示80000301:Transport endpoint unreach
一.前言
感谢南大通用提供的GBase 8c GDCA 认证培训课程。本文旨在记录学习心得和分享传播国产分布式数据库。欢迎感兴趣的伙伴自行前往公众号“南大通用培训中心”、官网https://www.gbase.cn去了解产品、参与GBase学堂培训课程。
二. 学习目标
- 了解 GBase 8c 分布式数据库架构,熟悉分布式部署流程
8C数据库基本介绍见此文:南大通用GBase 8c 多模多态分布式数据库系列一之基本介绍、核心技术、架构演进-CSDN博客
- 掌握分布式集群的安装和卸载操作
- 能够自行解决安装过程中的常见问题
三. 安装流程
安装前准备:
安装好虚拟机工具 Virtualbox;
安装三个CentOS 的虚拟机环境(GBase培训团队提供了:CentOS 7.9操作系统的镜像文件。该镜像操作系统安装了必要的组件、关闭了防火墙和 selinux,安装了 ntp 组件,节省了安装操作系统和配置的时间)。
具体操作见链接,建议新手初次安装时严格按照课前准备要求使用官方提供的虚拟操作系统,节省时间并减少安装过程中可能出现的错误。
GBase 8c GDCA 认证培训课前准备|天津南大通用数据技术股份有限公司
安装前检查:
四. 配置要求
1. 硬件配置要求
在实际个人学习时,如果个人电脑本身就<=8G内存,可以设置虚拟机内存为4G,甚至是2G(会出现卡顿,但可以忍受),否则当同时运行3台8G内存的虚拟机,电脑会出现死机、黑屏(内存严重不足)、无法进行安装步骤等问题。
同时,设置共享粘贴板和拖放为双向,用于复制命名、拖拽上传安装文件。
2. 软件配置要求
3. 软件依赖配置
五. 集群规划
1. 物理规划
在此次学习例子中,设置如下物理规划。
- 每个节点node对应一台虚拟主机。
- 每台虚拟服务器上都有自己的DCS(集群状态管理器:管理各整个集群各节点的高可用状态 )。
- 选取一台主机作为gha_server(高可用状态管理器:存储各节点的高可用状态,负责在故障情况下判断集群各个节点状态并进行状态切换)。
- gtm(全局事务管理器:负责生成并维护全局时间戳,保证集群数据一致性)只在非gha_server节点上部署,node1为主,node2为备。
- 因为数据节点dn1和dn2分别在节点2和节点3上,所以对应的的协调器Coordinator也未愈node2和node3上。且不分主备。
- 数据节点dn的dn1位于node2,dn2主位于node3,dn2的备节点位于node1。
以本次三台虚拟机的ip为192.168.200,192.168.201,192.168.202为例。熟悉下图IP对应的节点类型,在各步骤配置时有助于理解。
节点/主机 | 包含节点类型 | 主机IP |
Node1(8ch1) | GHA Server、DCS、GTM主、DN2备 | 192.168.56.200 |
Node2(8ch1) | DCS、GTM备、CN1、DN1主 | 192.168.56.201 |
Node1(8ch1) | DCS、CN2、DN2主 | 192.168.56.202 |
2. 演示环境配置
六. 安装前环境检查
注:从GBase 8c GDCA 认证培训课前准备下载的虚拟机CentOS7.9,已经安装了必要的组件、关闭了防火墙和 selinux,安装了 ntp 组件。
1. 关闭防火墙
查看防火墙状态:systemctl status firewalld
2. 关闭SELINUX
3. 主机名检查、依赖检查
4. Gbase用户配置sudo
- 在所有节点创建 gbase 组和用户(牢记密码)。注:密码至少是3种字符(大小写字符、数字、特殊符号)且大于八位的组合。
- 编辑 /etc/sudoers 文件,执行命令:visudo。
添加如下内容(红框标注),将 gbase 用户添加至 sudoer 列表。
- 配置完成后,切换为 gbase 用户身份。执行命令:su - gbase。推荐使用 - 在切换用户时。原因如链接。这么多年linux白用了,到现在才知道su和su -的区别
- 后续数据库安装配置操作无需 root 用户。
七. 配置NTP时间同步
1. 检查所有服务器上NTP的服务状态:
执行命令:sudo systemctl status ntpd.service
• 若显示active (running),则表示服务正在运行。
2. 配置NTP主节点,通常是 GTM 主节点。
本次用例的主节点为192.168.56.200,在主机上编辑配置文件:vim /etc/ntp.conf,修改后并“:wq”保存退出。
注释掉以下四行。
3. 配置NTP从节点(192.168.56.201,192.168.56.202)
以192.168.56.201为例,在主机192.168.56.202上配置原理一样。
4. 启动NTP服务
启动ntp服务,执行命令:sudo systemctl start ntpd.service
使ntp服务开机自运行,执行命令:sudu systemctl enable ntpd.service
查看状态,执行命令:sudo systemctl status ntpd.service
如果成功开启,则显示:
如果未开启,则显示:
如果显示以下红色文字,则可能没有注释掉上文要求的四行文字:
5. 查看NTP同步情况
执行命令:ntpstat
NTP主节点应返回
其他节点应返回
注意:
NTP 服务器配置完毕后,需要等待 5~20 分钟才能完成时间同步,如果在配置后提示 unsynchronised time server re-starting polling server every 8 s 或 unsynchronised polling server every 8 s 均属正常,等待一段时间再次执行 ntpstat 命令查看即可。
八. 配置SSH免密互信
1. 在所有节点创建 gbase 用户的.ssh 目录,并授权(很重要)
执行命令:mkdir ~/.ssh chmod 700 ~/.ssh
2. 生成密钥文件(一直按回车即可):
执行命令:ssh-keygen -t rsa
3. 将公钥文件上传至所有节点即可实现免密登陆,包括本节点(此操作需输入密码)
执行命令:ssh-copy-id gbase@hostip
在每一个主机(200,201,202),都执行以下语句:目的是每一台主机都和自己,包括另外两台主机互信(共9次)。第一次弹出的对话框输入yes,然后输入密码即可。每次添加成功密钥,出现number of key(s) added :1。
- ssh-copy-id gbase@192.168.56.200
- ssh-copy-id gbase@192.168.56.201
- ssh-copy-id gbase@192.168.56.202
4. ssh命令验证
在任意节点主机,例如192.168.56.200,执行 ssh 192.168.56.200或ssh gbase@192.168.56.201或ssh gbase8c_2。gbase8c_2是201主机的hostname。可实现免密登陆即视为成功。若提示输入密码,则视为不成功。
九. 解压安装包、配置yml及执行安装
1. GBase 8c 安装包获取
安装包下载链接:GBase 8c V5(兼容Oracle)|下载中心
2. 上传安装包至虚拟机
将下载后的压缩包GBase8cV5_S3.0.0_分布式版_x86_64,解压为:GBase8cV5_S3.0.0B78_centos7.8_x86_64.tar.gz,然后将此.tar.gz上传至虚拟机主节点,位于gbase用户下/home/gbase/gbace_package目录下。
3. 解压
执行命令:cd /home/gbase/gbace_package
执行命令:tar -xvf GBase8cV5_S3.0.0B78_centos7.8_x86_64.tar.gz
得到下面四个文件:
继续解压OM安装包:tar -xvf GBase8cV5_S3.0.0B78_centos7.8_x86_64_om.tar.gz
得到下列文件:
4. 安装部署:配置gbase.yml文件
在/gbase_package目录下执行:vim gbase.yml
host | 由数据面节点(CN、DN)访问连接的 IP |
port | 集群节点连接端口 |
agent_host | 由控制面访问连接的IP |
role | 节点角色类型,gtm、cn、dn节点 必须设置的参数 |
agent_port | 高可用端口号 |
work_dir | 节点数据存放路径 |
cluster_type | 集群类型,分布式下参数值为multiple-nodes |
pkg_path | 安装目录。owner为gbase |
prefix | 运行目录。owner为gbase。 |
version | 安装包版本,仅修改后两位数字 |
根据第五步的集群物理规划,本次实例中的gbase.yml文件应为(仅修改不一样的地方,删除不需要的节点设置):
gha_server:
- gha_server1:
host: 192.168.56.200
port: 20001
dcs:
- host: 192.168.56.200
port: 2379
- host: 192.168.56.201
port: 2379
- host: 192.168.56.202
port: 2379
gtm:
- gtm1:
host: 192.168.56.200
agent_host: 192.168.56.200
role: primary
port: 6666
agent_port: 8001
work_dir: /home/gbase/data/gtm/gtm1
- gtm2:
host: 192.168.56.201
agent_host: 192.168.56.201
role: standby
port: 6666
agent_port: 8002
work_dir: /home/gbase/data/gtm/gtm2
coordinator:
- cn1:
host: 192.168.56.201
agent_host: 192.168.56.201
role: primary
port: 5432
agent_port: 8003
work_dir: /home/gbase/data/coord/cn1
- cn2:
host: 192.168.56.202
agent_host: 192.168.56.202
role: primary
port: 5432
agent_port: 8004
work_dir: /home/gbase/data/coord/cn2
datanode:
- dn1:
- dn1_1:
host: 192.168.56.201
agent_host: 192.168.56.201
role: primary
port: 15432
agent_port: 8005
work_dir: /home/gbase/data/dn1/dn1_1
- dn2:
- dn2_1:
host: 192.168.56.202
agent_host: 192.168.56.202
role: primary
port: 20010
agent_port: 8007
work_dir: /home/gbase/data/dn2/dn2_1
# numa:
# cpu_node_bind: 0,1
# mem_node_bind: 0,1
- dn2_2:
host: 192.168.56.200
agent_host: 192.168.56.200
role: standby
port: 20010
agent_port: 8008
work_dir: /home/gbase/data/dn2/dn2_2
# numa:
# cpu_node_bind: 2
# mem_node_bind: 2
env:
# cluster_type allowed values: multiple-nodes, single-inst, default is multiple-nodes
cluster_type: multiple-nodes
pkg_path: /home/gbase/gbase_package
prefix: /home/gbase/gbase_db
version: V5_S3.0.0B78
user: gbase
port: 22
# constant:
# virtual_ip: 100.0.1.254/24
进入gbase_package下的 script 子目录,执行 gha_ctl install 命令来安装分布式集群。
成功界面如下:
注:
(1)因主机的性能不同,该安装过程可能持续几分钟甚至十几分钟,请耐心等待,不要关闭窗口。
(2)安装过程中保证三台主机都在开机状态,安装时需要拷贝安装文件到另外两台机器(此时ssh免密互信就发挥了功能)
(3)保证虚拟机主机不占用过多系统内存以免死机、黑屏。
(4)安装失败,去检查ssh互信,检查.ssh文件是否为700权限,
5. 数据库状态查询
执行:gha_ctl monitor all -H -l http://192.168.56.200
语法格式:
结果如下:
十. 数据库的停止
在主节点(192.168.56.200)停止所有节点的集群服务
$ gha_ctl stop all -l http://10.168.10.70:2379
十一. 数据库的卸载
语法格式:
十二. 常见问题
NTP服务未处于正常运行状态
安装数据库时报错显示错误码:80000201:Run cmd failed:%s
安装过程中,报错显示80000301:Transport endpoint unreach
缺失依赖文件
系统参数问题
su - gbase:权限不够
问题如下:
解决办法如下: