原文链接:https://www.gbase.cn/community/post/5425
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。
南大通用GBase 8c 多模多态数据库是南大通用第三代智能化分布式数据库产品,支持多种存储模式和部署形态,具有高性能、高可用、高智能、高安全、兼容能力强等特性。本文主要描述由于操作系统版本、环境等信息问题导致其安装失败的故障案例,帮助用户快速定位问题,分析原因,并提供解决办法或者思路,来熟练使用GBase 8c数据库。
0.故障分类
基础环境未准备就绪
系统版本/环境类问题
1.基础环境未准备就绪
安装前准备主要涉及操作系统信息检查、依赖包是否安装、主机名是否生效、防火墙是否关闭、多台机器root用户密码是否一致,时间是否同步等等问题,具体步骤可以参考如下:
1.1 检查操作系统信息
1)ID信息是否在json文件中
# cat /etc/os-release #linux操作系统通用命令
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Tercel)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Tercel)"
ANSI_COLOR="0;31"
# cat support_system_info.json
{
"SUSE": "suse",
"REDHAT": "redhat",
"CENTOS": "centos",
"EULEROS": "euleros",
"KYLIN": "kylin",
"KYLINSEC": "kylinsecos",
"OPENEULER": "openeuler",
"FUSIONOS": "fusionos",
"ASIANUX": "asianux",
"DEBIAN": "debian",
"UBUNTU": "ubuntu",
"NFS": "nfs",
"UOS": "uos",
"BCLINUX": "bclinux",
"NEOKYLIN": "neokylin",
"OPENKYLIN": "openkylin"
}
2)如果是麒麟操作系统,还需查看当前版本是否基于 Ubuntu,使用以下命令(二选一即可):
# cat /etc/.kyinfo
# cat /etc/os-release
返回的版本信息中,如果 dist_id 参数值是以”Kylin-Desktop”开头,则是基于 Ubuntu 的 操作系统。
需要更换 bash。使用以下命令:
# sudo dpkg-reconfigure dash
并在过程中,选择 No 并回车。退出后即可自动切换为 bash
3)麒麟操作系统,需要关闭安全授权认证
# setstatus softmode -p
4)CentOS/RHEL 7.2+环境
systemd-logind 服务引入一个新特性——RemoveIPC,表现为:用户登录后创建的文件,在 logout 后会被自动删除。默认值(即 RemoveIPC=yes)的情况,当用户退出时,操作系统会 crash 掉使用了 Shared Memory Segment (SHM) or Semaphores (SEM)的应用程序,导致 GBase 数据库进程将会被中断。避免发生此类问题。操作步骤如下:
(1) 查看 RemoveIPC 参数值是否为 yes
# loginctl show-session | grep RemoveIPC
# systemctl show systemd-logind | grep RemoveIPC
如果为 yes,则需要修改;如果为 no,则无需继续执行后续步骤。
(2) 修改/etc/systemd/logind.conf 配置文件
# vim /etc/systemd/logind.conf
将 RemoveIPC 参数值设置为 no,键入“:wq”保存并退出。
修改/usr/lib/systemd/system/systemd-logind.service 配置文件,将 RemoveIPC 参数值设置为 no。
# vim /usr/lib/systemd/system/systemd-logind.service
将 RemoveIPC 参数值设置为 no,键入“:wq”保存并退出。
(3) 重新加载配置文件,执行以下命令:
# systemctl daemon-reload
# systemctl restart systemd-logind
(4) 再次检查是否生效即可。
# loginctl show-session | grep RemoveIPC
# systemctl show systemd-logind | grep RemoveIPC
1.2 检查cpu架构
确认是 x86 还是 aarch64
# lscpu |grep 'Architecture'
Architecture: x86_64
需要确认与下载的数据包名中的信息一致,例如
GBase8cV6_SXXXXX_centos7.8_x86_64.tar.gz # x86 包
GBase8cV6_SXXXXX_centos7.8_aarch64.tar.gz # aarch64 包
1.3 安装前依赖检查
# rpm -qa|egrep "libaio-devel|flex|bison|ncurses-devel|glibc-devel|patch|redhat-lsb-core|readline-devel|libnsl|expect|patchelf|bzip2"
安装命令:
# yum install -y libaio-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core readline-devel libnsl expect patchelf bzip2
1.4 确认主机名是否一致
修改hostname。即使是单机部署,也不建议用默认的localhost。
执行命令查看hostname:
# cat /etc/hostname
# hostname
修改方式:
# hostnamectl set-hostname gbasedb01
1.5 创建数据库OS管理用户
以gbase为例,不建议使用图形化界面创建
# groupadd gbase
# useradd -m -d /home/gbase gbase -g gbase
# passwd gbase
1.6 关闭防火墙
# systemctl stop firewalld.service
# systemctl disable firewalld.service
# sed -i.bak '/^SELINUX=/s#SELINUX=.*#SELINUX=disabled#' /etc/selinux/config
# setenforce 0
如果环境必须要求开启,可以参考以下配置:
# systemctl start firewalld
# firewall-cmd --zone=public --add-port=15400/tcp --permanent
# firewall-cmd --zone=public --add-port=15300/tcp --permanent
# firewall-cmd --zone=public --add-port=15301/tcp --permanent
# firewall-cmd --zone=public --add-port=15302/tcp --permanent
# firewall-cmd --zone=public --add-port=15405/tcp --permanent
# firewall-cmd --zone=public --add-port=15401/tcp --permanent
# firewall-cmd --zone=public --add-port=5000/tcp --permanent
# firewall-cmd --zone=public --add-port=5001/tcp --permanent
# firewall-cmd --zone=public --add-port=5002/tcp --permanent
# firewall-cmd --zone=public --query-port=15400/tcp
systemctl restart firewalld
1.7 多节点环境安装需要查看时间是否一致
# date
修改方式:
# hwclock --show
# hwclock --systohc
注:数据库启动过程中,时间不一致会导致启动夯住,手动修改时间时,需要修改当前时间的未来时间。
1.8 检查最大打开文件数
要求不低于640000
# ulimit -n
修改方式:
# echo 'ulimit -n 1000000' >> ~/.bashrc
2.系统版本/环境类问题
2.1 多节点安装,root密码不一致情况
解决办法:
1.临时调整为一致
2.若不能改动,需要按照以下步骤安装
① 每台机器root下执行gs_preinstall, 安装包及xml文件放在相同目录下,gs_preinstall加上-L命令只进行本地安装
./gs_preinstall -U gbase -G gbase -X /opt/cluster.xml -L
② 切换到gbase用户,建立gbase用户互信,建立后执行"ssh 主机名"、"ssh ip"登录本机及其他机器,刷新缓存信息(具体参考ssh免配置问题 )
③ 任一台服务器执行安装
gs_install -X /opt/cluster.xml
2.2 ssh免配置问题
完整免密配置参考如下(可避免出现ssh权限不足问题)
# su - gbase
$ rm -rf /home/gbase/.ssh
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ ssh-keygen -t rsa
$ ssh-copy-id gbase@172.16.xx.xxx
$ ssh-copy-id gbase@172.16.xx.xxx
$ echo 'StrictHostKeyChecking no' >> ~/.ssh/config
$ echo 'UserKnownHostsFile ~/.ssh/known_hosts' >> ~/.ssh/config
$ chmod 644 ~/.ssh/config
验证测试(ip和主机名都需要测试)
$ ssh 172.16.xx.xxx date
$ ssh 172.16.xx.xxx date
$ ssh gbasedb01 date
$ ssh gbasedb01 date
验证时如果发现ssh ip 通,ssh 主机名不通,ping主机名确认是否是ipv6,是ipv6需要操作如下:
echo 'precedence ::ffff:0:0/96 100' | sudo tee -a /etc/gai.conf
2.3 环境问题
(1)执行安装时报错xxxx list index out of range
检查安装时的xml文件,重点检查主机名、ip地址是否配置正确。
(2)执行安装时报错”importerror:libffi.so.6:cannot open shared object file: no sucn file or directory”。
这可能是由于服务器CPU架构为ARM版,曾经安装X86版本的包卸载残留所致。这种情况下,根据提示的错误信息,删除所有相应残留即可。
ll /lib64/libffi.so.6*
sudo rm -rf /lib64/libffi.so.6*
(3)执行安装时报错“无法执行二进制文件错误”。
这是由于GBase 8c安装包与CPU架构不匹配。根据部署环境,更换对应版本的安装包即可。详情看 1.2 检查cpu架构
2.4 安装完成配置vip问题
1)vip地址不漂移
所有机器都检查是否配置sudo权限
$ su - gbase
$ sudo -l
检查备机是否配置了vip
$ sudo find /* -name 'cm_resource.json'
2)主节点宕机整个集群不可用
检查cm_server配置中是否有保存vip信息
cm_ctl list --param --server| grep "third_party_gateway_ip"
如果以上查询结果为空,配置如下:
cm_ctl set --param --server -k "third_party_gateway_ip= 网关地址"
cm_ctl set --param --server -k "cms_enable_db_crash_recovery=1"
cm_ctl set --param --server -k "cms_network_isolation_timeout=10"
cm_ctl set --param --server -k "cms_enable_failover_on2nodes=1"
原文链接:https://www.gbase.cn/community/post/5425
更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。