GaussDB分布式测试环境搭建

部署形态图

在这里插入图片描述

环境准备

软件准备

1)准备软件VMware® Workstation 16 Pro、xshell 7

2)准备安装包

GaussDB_Kernel_V500R002C10SPC600B012_X86_Distributed_AGENT_PACKAGE.tar.gz
GaussDB_Kernel_V500R002C10SPC600B012_X86_Distributed_SERVER_PACKAGE.tar.gz
DBS-GaussDBforOpenGauss-Adaptor_1.1.0.1663816251.tar.gz
EulerOS-V2.0SP10-x86_64-dvd.iso

安装操作系统前置操作

新增三个虚拟网卡

在这里插入图片描述

宿主机网卡去掉勾选桥接

在这里插入图片描述

配置宿主机虚拟网卡ip和子网掩码

在这里插入图片描述

在这里插入图片描述

管理平面网络配置

1)管理平面网卡设置成nat模式,这样就换无线网就不需要修改静态ip地址了

在这里插入图片描述

设置管理平面网络网关

在这里插入图片描述

欧拉操作系统安装

操作步骤:Vmware 主页 => 创建新的虚拟机 => 典型 => 选择操作系统镜像 =>配置安装位置 => 自定义硬件(硬盘40GB,内存4GB,3个自定义网卡)=>完成
在这里插入图片描述

关闭防火墙

查看防火墙状态

在这里插入图片描述

关闭并禁用防火墙

在这里插入图片描述

多网卡配置

进入网卡配置文件目录

在这里插入图片描述

依次编辑三个网卡配置文件

在这里插入图片描述
在这里插入图片描述

查看网卡详情

1)验证是否配置成功
在这里插入图片描述

检查网卡连接

1)三个网卡未连接设备
在这里插入图片描述

检查网卡设备

1)三个网卡设备都处于断开状态
在这里插入图片描述

重新加载网卡配置文件

在这里插入图片描述

连接网卡设备

在这里插入图片描述

重新检查网卡连接和网卡设备

在这里插入图片描述

查看网卡详情

在这里插入图片描述

配置sshd文件

编辑配置文件

在这里插入图片描述

修改属性

在这里插入图片描述

重启服务

在这里插入图片描述

Xshell连接服务

1)xshell链接服务器验证网络配置是否成功

在这里插入图片描述

设置时间

硬件时间和操作系统时间同步

1)设置硬件时间和操作系统时间,保持两个时间一致,避免每次重启机器集群时间不一致,导致集群自动重启失败

在这里插入图片描述

检查集群时间

在这里插入图片描述

配置DNS

vim /etc/resolv.conf
nameserver x.x.x.x
nameserver x.x.x.x

配置yum源(忽略)

vim /etc/yum.repos.d/EulerOS.repo
#粘贴下面内容后去掉首行
[base]
name=EulerOS-2.0SP5 base
baseurl=http://repo.huaweicloud.com/euler/2.5/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://repo.huaweicloud.com/euler/2.5/os/RPM-GPG-KEY-EulerOS
# 继续执行下面命令
yum clean all
yum makecache
#安装常用工具
yum install -y openssh-server vim gcc gcc-c++ glibc-headers bzip2-devel lzo-devel curl wget openssh-clients zlib-devel autoconf automake cmake libtool openssl-devel fuse-devel snappy-devel telnet unzip zip net-tools.x86_64 firewalld systemd

上传安装包

创建目录

mkdir -p /opt/software/gaussdb

上传软件包server、adaptor 、agent

在这里插入图片描述

解压安装包

tar -xzf xxx_AGENT_PACKAGE.tar.gz
tar -xzf xxx-EULER-64bit-AGENT.tar.gz
mkdir server
mv  xxx_SERVER_PACKAGE.tar.gz  server/
tar -zcf server.tar.gz server/
tar -xzf DBS-GaussDBforOpenGauss-Adaptor_1.1.0.1663816251.tar.gz

最终目录结构

在这里插入图片描述

创建omm用户

1)创建omm用户、用户组,并修改密码,赋予相关权限

groupadd ommGroup
useradd -g ommGroup -d /home/omm -m -s /bin/bash omm
passwd omm

其他操作

vim /home/omm/.bashrc
添加一行 export HOST_IP=管理ip
vim /etc/cron.allow
添加omm
mkdir -p /opt/rh/python27/root
ln -s /usr /opt/rh/python27/root/usr
chown -R omm:ommGroup /opt/software

SSL证书准备

创建目录

su - omm
mkdir -p /home/omm/CA
mkdir -p /home/omm/sslcrt
mkdir -p /home/omm/demoCA/newcerts

修改证书目录文件

touch demoCA/index.txt && echo '01' > demoCA/serial
vim /etc/pki/tls/openssl.cnf

在这里插入图片描述

CA证书准备

openssl genrsa -aes256 -out ca.key 2048
openssl req -config /etc/pki/tls/openssl.cnf -new -key ca.key -out ca.csr
openssl ca -config /etc/pki/tls/openssl.cnf -days 365 -out ca.crt -keyfile ca.key -selfsign -infiles ca.csr

服务端证书准备

#修改/home/omm/demoCA/index.txt.attr文件
unique_subject = no
#依次执行下面命令
openssl genrsa -aes256 -out server.key 2048
openssl req -new -key server.key -out server.csr -config /etc/pki/tls/openssl.cnf
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config /etc/pki/tls/openssl.cnf -days 365 -md sha256
cat ca.crt > ca.pem && cat server.crt > server.pem
cp ca.pem server.key server.pem /home/omm/sslcrt/
chmod 700 /home/omm/sslcrt
chmod 600 /home/omm/sslcrt/*
chown -R omm: /home/omm/sslcrt

安装Agent

修改配置文件om_agent.conf

1)这里的ssl_close =on,agent证书没用到

vim agent/om_agent.conf

在这里插入图片描述
在这里插入图片描述

创建om_agent.conf相关目录并赋予权限

mkdir -p /home/omm/log/om_agent 
chown -R omm:ommGroup /home/omm/log
mkdir -p /dbs/om-agent 
chmod 755 /dbs
chown -R omm:ommGroup /dbs/om-agent

修改public_cloud.conf

cp agent/common/public_cloud.conf.sample agent/common/public_cloud.conf
vim public_cloud.conf
#修改网卡配置名称ens32,ens33,esn34
mkdir -p /opt/cluster/usr/local/package
mkdir -p /opt/cluster/var/lib/engine/data1/data
chown -R omm:ommGroup /opt/cluster

chown -R root:dbgrp /opt/cluster/usr/local/package
chmod -R 750 /opt/cluster/usr/local/package
chown root:dbgrp /opt/software/gaussdb/adaptor/utils/sudoer/gaussdbv5_api_sudo_exec.py
chmod 750 /opt/software/gaussdb/adaptor/utils/sudoer/gaussdbv5_api_sudo_exec.py

在这里插入图片描述

以root用户修改omm的sudo权限

vim /etc/sudoers
添加下面内容
Defaults logfile =/var/log/sudo.log
Cmnd_Alias COMMAND_FLAG =/opt/cluster/usr/local/package/script/gs_preinstall *, /opt/software/gaussdb/adaptor/utils/sudoer/gaussdbv5_api_sudo_exec.py
omm ALL=(root) NOPASSWD: COMMAND_FLAG

执行安装Agent命令

su - omm
python3 /opt/software/gaussdb/agent/mgr/install.py --gen_ca_passwd xxxxxx

安装server

准备预安装文件

1)在3个节点上都要执行

su - omm
vim json_file
#粘贴下面内容,并修改其中的ip

{"dbPort": "8000", "nodeIp": "192.168.28.40", "packagePath": "/opt/software/gaussdb", "packageName": "server.tar.gz", "clusterMode": "combined", "clusterConf": "{\"gtmFree\": 1, \"clusterName\": \"CBG_Order\", \"solution\": \"hws\", \"cm\": [{\"rack\": \"gauss001\", \"az\": \"AZ1\", \"ip\": \"192.168.28.40\", \"dataIp\": \"192.168.38.40\", \"virtualIp\": \"192.168.48.40\"}, {\"rack\": \"gauss002\", \"az\": \"AZ2\", \"ip\":\"192.168.28.41\", \"dataIp\": \"192.168.38.41\", \"virtualIp\": \"192.168.48.41\"}, {\"rack\": \"gauss003\", \"az\": \"AZ3\", \"ip\": \"192.168.28.42\", \"dataIp\": \"192.168.38.42\", \"virtualIp\": \"192.168.48.42\"}], \"cn\": [{\"rack\": \"gauss001\", \"az\": \"AZ1\", \"ip\": \"192.168.28.40\", \"dataIp\": \"192.168.38.40\", \"virtualIp\": \"192.168.48.40\"}, {\"rack\": \"gauss002\", \"az\": \"AZ2\", \"ip\": \"192.168.28.41\", \"dataIp\": \"192.168.38.41\", \"virtualIp\": \"192.168.48.41\"}, {\"rack\": \"gauss003\", \"az\": \"AZ3\", \"ip\": \"192.168.28.42\", \"dataIp\": \"192.168.38.42\", \"virtualIp\": \"192.168.48.42\"}], \"shards\": [[{\"rack\": \"gauss001\", \"az\": \"AZ1\", \"ip\": \"192.168.28.40\", \"dataIp\": \"192.168.38.40\", \"virtualIp\": \"192.168.48.40\"}, {\"rack\": \"gauss002\", \"az\": \"AZ2\", \"ip\": \"192.168.28.41\", \"dataIp\": \"192.168.38.41\", \"virtualIp\": \"192.168.48.41\"}, {\"rack\": \"gauss003\", \"az\": \"AZ3\", \"ip\": \"192.168.28.42\", \"dataIp\": \"192.168.38.42\", \"virtualIp\": \"192.168.48.42\"}]], \"etcd\": {\"nodes\": [{\"rack\": \"gauss001\", \"az\": \"AZ1\", \"ip\": \"192.168.28.40\", \"dataIp\": \"192.168.38.40\", \"virtualIp\": \"192.168.48.40\"}, {\"rack\": \"gauss002\", \"az\": \"AZ2\", \"ip\": \"192.168.28.41\", \"dataIp\": \"192.168.38.41\", \"virtualIp\": \"192.168.48.41\"}, {\"rack\": \"gauss003\", \"az\": \"AZ3\", \"ip\": \"192.168.28.42\", \"dataIp\": \"192.168.38.42\", \"virtualIp\": \"192.168.48.42\"}]}, \"gtm\": [{\"rack\": \"gauss001\", \"az\": \"AZ1\", \"ip\": \"192.168.28.40\", \"dataIp\": \"192.168.38.40\", \"virtualIp\": \"192.168.48.40\"}, {\"rack\": \"gauss002\", \"az\": \"AZ2\", \"ip\": \"192.168.28.41\", \"dataIp\": \"192.168.38.41\", \"virtualIp\": \"192.168.48.41\"}, {\"rack\": \"gauss003\", \"az\": \"AZ3\", \"ip\": \"192.168.28.42\", \"dataIp\": \"192.168.38.42\", \"virtualIp\": \"192.168.48.42\"}], \"replicaNum\": 3, \"shardingNum\": 1}", "func_name": "pre_install"}

准备安装文件

su - omm
vim install_json_file
#粘贴下面内容,并设置密码
{"rdsMetricPasswd": "xxxxxx", "rdsBackupUser": "rdsBackup", "rdsAdminUser": "rdsAdmin", "rdsMetricUser": "rdsMetric", "dbUser": "root", "server_crt_filename": "server.pem",  "enableForceSwitch": null, "ca_crt_filename": "ca.pem", "cmParams": {}, "params": {"enable_thread_pool":"off"}, "nodeIp": "192.168.28.40", "clusterMode": "combined", "func_name":  "install", "dnParams": {}, "rdsBackupPasswd": "xxxxxx","server_key_filename": "server.key", "cnParams": {}, "ssl_cert_path": "/home/omm/sslcrt", "dbPort": "8000", "rdsReplUser": "rdsRepl", "dbUserPasswd": "xxxxxx", "rdsAdminPasswd": "xxxxxx", "rdsReplPasswd": "xxxxxx", "ssl_cert_passwd": "xxxxxx", "replicationAll":"true"}

预安装

1) 在三个节点上都要执行命令

cat json_file | python3 /opt/software/gaussdb/adaptor/om_controller

2) 预安装报错操作系统不满足要求,报错信息中提示让执行gs_checkos -i A -h 192.168.28.40

3)执行后发现需要关闭交换内存 ,执行命令swapoff -a

4)正常返回结果

{\"detailmsg\": \"SUCCESS\", \"retcode\": 0}

安装

1)在任意一个节点执行命令即可

cat install_json_file | python3 /opt/software/gaussdb/adaptor/om_controller

2)正常返回结果

{\"detailmsg\": \"SUCCESS\", \"retcode\": 0}

数据库使用

查询数据库状态

在这里插入图片描述

登录数据库节点

在这里插入图片描述

查看日志

  1. 安装数据库过程中失败优先查看日志

在这里插入图片描述

重启数据库集群

1)停止集群

在这里插入图片描述

2)启动集群
在这里插入图片描述

连接数据库

见上文

查看数据库

  1. 查数据库

在这里插入图片描述

2)查表

在这里插入图片描述

安装过程中遇到的问题

网络不通

1)问题现象

在这里插入图片描述

2)使用命令检查各个网络平面的网络是否互通

ping -I 源端ip 目的ip

3)检查上述命令不通,再检查网关,也不通

ping -I 192.168.38.42 192.168.38.1

4)检查虚拟机网络,发现网卡顺序选错,三个虚拟机的网卡2和网卡3应该保持一致
在这里插入图片描述

内存不够

1)问题现象

在这里插入图片描述

2)调大虚拟机内存6G。很多问题都是因为内存不勾引起的,比如调用gauss -V会出现报错信息

Segmentation fault

3)进入到dn目录,修改shared_buffers属性。改完后再修改其他组件(CN、DN等)shared_buffers属性

4)查看组件的数据目录

执行命令
cm_ctl view

5)调小shared_buffers属性

 vim /opt/cluster/var/lib/engine/data1/data/dn_6003/postgresql.conf

在这里插入图片描述

重装集群

背景

安装GaussDB的时候dn节点采用的三分片部署形式,发现安装时内存不够,修改json_file文件后,重新安装,使用cm_ctl query -Cvidp查询发现还是之前的部署的3分片形式,json_file 未生效

解决办法

rm -rf /opt/cluster
mkdir -p /opt/cluster/usr/local/package
mkdir -p /opt/cluster/var/lib/engine/data1/data
chown -R omm:ommGroup /opt/cluster
chown -R root:ommGroup /opt/cluster/usr/local/package
重新执行前置准备、预安装、安装

磁盘空间不够

安装时报错信息

未记录

检查磁盘空间

1) 检查根目录空间情况,发现已经达到100%

该图中并未达到100%

查看磁盘分区情况

1)sda3是后面加的

在这里插入图片描述

扩展磁盘大小

在这里插入图片描述

分区

执行命令 :fdisk /dev/sda

如步骤3) 图中红线框到的部分,新增一个分区

重启机器

reboot

查看逻辑卷lvs

在这里插入图片描述

将磁盘分区初始化为物理卷

pvcreate /dev/sda3

为逻辑卷添加物理卷

1)将物理卷加入到名为euleros(上图VG字段)的逻辑卷组中

vgextend euleros /dev/sda3

查看逻辑卷组

1)发现euleros卷组下有一块空闲的空间

在这里插入图片描述

扩容卷组容量

lvextend -L +19.75G /dev/mapper/euleros-root

在这里插入图片描述

查看扩容成功的卷组

在这里插入图片描述

查看文件系统格式

在这里插入图片描述

扩容文件系统

resize2fs /dev/mapper/euleros-root

检查是否扩容成功

df -h

虚拟机异常断电

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

解决办法(未找到):重装可解决问题

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
分布式数据库环境搭建可以参考以下步骤: 1. 首先,了解分布式数据库的基本概念和原理,可以阅读引用中的文章《分布式数据库-CrateDB架构分析与源码阅读之最佳实践》和引用中的文章《分布式数据库-CrateDB架构分析与源码阅读之搭建部署》。这些文章将帮助你了解CrateDB的架构和部署方式。 2. 确保你的服务器满足CrateDB的系统要求。通常,CrateDB可以在各种操作系统上运行,如Linux、Windows和Mac OS。你需要确保服务器上有足够的硬件资源(CPU、内存、磁盘空间等)来支持你的数据库规模和负载。 3. 下载和安装CrateDB。你可以从CrateDB的官方网站上下载最新版本的软件包。根据引用中的文章,你可以按照里面的步骤进行安装和部署。 4. 配置CrateDB集群。一般来说,一个分布式数据库环境包含多个节点,你需要配置这些节点之间的通信和数据同步。引用中的文章会给出一些关于配置CrateDB集群的指导。 5. 启动CrateDB集群。完成配置后,你可以启动CrateDB集群并监控其运行状态。引用中的文章会告诉你如何启动集群以及如何查看集群状态。 6. 使用常用命令进行数据库操作。一旦CrateDB集群成功搭建和启动,你可以使用引用中的文章《分布式数据库-CrateDB架构分析与源码阅读之常用命令》中提到的常用命令来进行数据库操作,如创建表、插入数据、查询数据等。 总结起来,分布式数据库环境搭建的步骤包括了了解基本概念和原理、准备服务器环境、下载和安装CrateDB、配置和启动CrateDB集群以及使用常用命令进行数据库操作。阅读引用、和中的文章将为你提供更详细的指导和实践经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值