部署形态图
环境准备
软件准备
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)停止集群
2)启动集群
连接数据库
见上文
查看数据库
- 查数据库
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%
查看磁盘分区情况
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
虚拟机异常断电
解决办法(未找到):重装可解决问题