GBase 8s数据库安装常见问题解析

  GBase 8s v8.7 数据库建议安装在RHEL7或者CentOS7或者类似内核的Linux发布版本中。以下是安装过程中常见的一些问题:

1,执行ids_install安装时,报“The version file is not exist.”

解析:操作系统确少必要的unzip工具,需要安装unzip。CentOS系统中可通过yum install unzip安装。
如果安装目录下的隐藏文件 .gbase.properties 缺失,也会出现此问题。重新解压缩安装包后,再次安装。
SW64平台UOS20 1070e操作系统下,需要指定LD_LIBRARY_PATH=/usr/lib:/usr/lib64:$LD_LIBRARY_PATH。

2,执行ids_install安装时,报“No Java virtual machine could be found from your PATH environment variable. You must install a VM prior to running this program.”

解析:提示信息为无Java虚拟机,按照提示安装JRE/JDK。支持的JRE/JDK版本为1.6及以上,如CentOS自带的java-1.8.0-openjdk。

3,执行ids_install安装时,报“The parent directory of the user install path is not exists, please choose another one.”

解析:提示信息为指定的目录上级目录不存在。默认的安装目录为:/opt/GBASE/gbase,如果/opt/GBASE目录不存在,则会报这个错误。需要在安装前创建/opt/GBASE目录。

4,执行ids_install安装时,报“User install directory is not empty, please chooose another one.”

解析:提示信息为指定的目录非空。安装数据库需要在空目录或者不存在的目录下(上级目录需存在,系统会自动创建目录),手工指定其它非空目录或者不存在目录(上级目录需存在,系统会自动创建目录)。

5,执行数据库初始化或者启动数据库时,报

“Allocating and attaching to shared memory...FAILED
WARNING: server initialization failed or timed out.
Check the message log, online.log, for errors.”

解析:出现问题,根据提示要求查看online.log,使用onstat -m命令可查看最近20行online.log日志信息。如果日志里包含类似以下信息
“19:03:42 shmget: EEXIST: key 52564801: shared memory already exists
19:03:42 mt_shm_init: can't create resident segment”,
表示数据库的内存段已经被占用,可能的情况是:
1)当前实例已经启动,即通过onstat -命令检查状态,如果已经是On-Line状态,即“GBase Database Server Version 12.10.FC4G1AEE -- On-Line -- Up 00:07:02 -- 208516 Kbytes”
表示数据库不需要再初始化或者重新启动,保持现有状态即可。
2)当前实例未启动,即通过onstat -命令检查状态,如果已经是未启动状态,即“shared memory not initialized for GBASEDBTSERVER 'ol_gbasedbt1210'”
则表示之前的数据库关闭或者异常时,内存未能及时释放,执行onclean -ky命令强制清理内存,然后通过ipcs -m命令查看key中与报错信息中一致的0x52564801是否存在,如果不存在,可以重新启动数据库实例;如果存在,使用root用户执行ipcrm -M 0x52564801清理共享内存,同时清理0x525648XX 开头各个内存段,完成后可以重新启动数据库实例。

6,执行数据库初始化或者启动数据库时,报

“Opening primary chunks...FAILED
oninit: Fatal error in shared memory initialization
WARNING: server initialization failed or timed out.
Check the message log, online.log, for errors. ”

解析:出现问题,根据提示要求查看online.log,使用onstat -m命令可查看最近20行online.log日志信息。如果日志里包含类似以下信息:
1)“19:07:08 The chunk '/opt/gbase/storage/rootdbs' must have READ/WRITE permissions for owner and group (660).”
表示数据库使用的chunk对应的文件或者文件系统权限不对,按提示要求修改为属主及属组均为gbasbedbt,权限为660(即:chown gbasedbt:gbasedbt /opt/gbase/storage/rootdbs , chmod 660 /opt/gbase/storage/rootdbs),完成后重新启动数据库。
2)“19:10:51 The chunk '/opt/gbase/storage/rootdbs' must have READ/WRITE permissions for owner (600).”
数据库使用的chunk对应的文件或者文件系统权限应为属主及属组均为gbasbedbt,权限为660,这里提示需要600权限。说明oninit可执行文件的属主及权限不对,或者是非root用户安装的数据库。我们要求使用root用户来安装数据库。故在$GBASEDBTDIR目录下,使用root用户执行RUNasroot.installserver脚本以完成对所有已安装的文件的权限修正。同时修改chunk文件或者文件系统的属主及属组均为gbasbedbt,权限为660(即:chown gbasedbt:gbasedbt /opt/gbase/storage/rootdbs , chmod 660 /opt/gbase/storage/rootdbs),完成后重新初始化实例或者重启实例。

7,连接数据库时,报 “908: Attempt to connect to database server (ol_gbasedbt1210) failed.”

解析:根据提示信息,表示当前无法连接到指定的数据库。对于此问题,需要从最底层往上排查。
首先,检查数据库的侦听是否正常,命令onstat -g ntt的输出结果中,thread name为soctcplst对应的address中应包括 主机名或IP地址|服务名称或者端口号|scotcp(如localhost.localdomain|ol_gbasedbt1210|soctcp),该信息来源地sqlhosts配置文件(建议在sqlhosts配置文件中指定IP地址及端口,而不是使用主机名或者服务名称)。如果不存在符合条件的soctcplst,则需要修改sqlhosts为正确配置,并重启数据库。如果存在soctcplst,但IP是本地loop地址(127.0.0.1),也需修改为实际物理IP,并重启数据库。
如果侦听正常,则继续检查操作系统防火墙设置,请关闭防火墙或者放通数据库使用的端口。

8,GBase DataStudio连接参数配置

image001.png

解析:主机 -> 填写能访问到数据库服务器的IP地址或者域名(能通过ssh客户端访问)
端口 -> sqlhosts配置文件中的端口号(通过onstat -g ntt可看到)
实例名 -> $GBASEDBTSERVER配置参数
数据库/模式 -> create database语句创建的库。可使用系统库sysmaster
用户名 -> 操作系统用户,默认的系统用户是gbasedbt
密码 -> 用户名在操作系统上的密码(注意密码强度要求)

9,GBase DataStudio连接数据库报连接错误,如下图:

image003.png

解析:该问题是指定的用户密码不符合密码强度要求(GBase 8s v8 2.0.1a2_2版本有密码强度要求,需要密码不少于8位且需包含大小写字母数字),在数据库服务器上执行onstat -m能看到“09:17:03 listener-thread: err = -961: oserr = 0: errstr = : The password is too simple.”信息。
修改用户密码以符合密码强度要求(最长可能需要15分钟生效)。

10,执行ids_install安装时,报

“./ids_install: line 3319: /tmp/install.dir.15072/Linux/resource/jre/jre/bin/java: cannot execute binary file
./ids_install: line 3319: /tmp/install.dir.15072/Linux/resource/jre/jre/bin/java: Success”

解析:提示信息是数据库安装包里自带的java命令是不能执行的二进制文件,原因是:当前的平台与数据库安装包使用的平台不同(如x86平台上使用了其它平台(飞腾、龙芯、Power等)的安装包)。X86平台对应的文件名后缀是x86_64.tar,飞腾平台对应的文件名后缀是FT.tar,龙芯平台对应的文件名后缀是Loongson3B.tar。

标签: GBase 8s安装, 安装问题

已有 2 条评论

  1. 错误信息 错误信息
    shmget: [ENOMEM][12]: key 53034804: The server ran out of memory during an attempt to allocate a new shared memory segment.
    1. 配置的内存太大了,超出了系统限制。也可能是内核限制了。

添加新评论