1.Base基础/3.Icon图标/操作/search备份
1.Base基础/3.Icon图标/操作/search备份
EN
文档
关于AntDB
快速入门
使用教程
运维
调优
工具和插件
高级服务
数据安全
参考
  • 文档首页 /
  • 部署与升级 /
  • 分布式安装部署 /
  • 安装部署常见问题

安装部署常见问题

更新时间:2024-07-01 14:39:42

本章主要就软件安装部署过程中经常出现的报错进行解答。用户遇到问题时,可以先进行搜索。

安装报错

error: library 'crypto' is required for OpenSSL

原因说明:

在安装 AntDB 时,需要一些系统的依赖包。如出现类似错误说明 AntDB 依赖包未安装。

解决方式:

按上述方式以 root 用户安装即可。

yum install openssl openssl-devel

完整的依赖包如下:

yum install perl-ExtUtils-Embed flex bison readline-devel zlib-devel openssl-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel libssh2-devel

参数问题

LOG: invalid value for parameter "max_stack_depth": 16384

原因说明:

一个数据库进程在运行时的 STACK 所占的最大安全深度。若发现不能正常运行一个复杂的递归操作或一个复杂函数,建议适当提高该配置的值。

解决方式:

登录服务器,修改 /etc/security/limits.conf,增加用户的栈深度大小(以 antdb 用户为例):

antdb soft stack unlimited
antdb hard stack unlimited

ERROR: unrecognized configuration parameter "shared_buffers"

原因说明:

部分场景下,由于 adbmgr 的 param 信息未被初始化,手工执行上述命令初始化之后,再 set 参数即可。

解决方式:

登录 adbmgr,执行下述命令:

flush param;

FATAL: could not create shared memory segment: Cannot allocate memory

原因说明:

shared_buffer 设置不合理,超出了 kernel.shmmax 的系统配置。

解决方式:

建议减小 shared_buffer 值,或增大内核参数,如 shmall、shmmax 值。如果设置超大,大过内存值,则直接报错 Invalid argument。

FATAL: invalid value for parameter "shared_buffers": "222222GB" HINT: Value exceeds integer range.

FATAL: could not create semaphores: No space left on device

原因说明:

max_connections 设置不合理,超出了 kernel.sem 的系统配置。max_connections 是最大连接数,即允许客户端连接的最大连接数,增大连接可以允许接入更多的客户端,但设置过大同样会造成 DB 启动失败 semget 是获取信号的一个函数,即 get semaphore。上述的空间不够不是指的是磁盘空间不够,而是创建 semaphores 时空间参数不够,系统调用参数 semget 报错。

解决方式:

减小 max_connections,或者增大内核参数,如 semmni、semmns 等。

登录报错

error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory

原因说明:

某些特殊软件或插件,只识别 .bashrc 而不识别 .bash_profile,添加后退出终端重新登录。

解决方式:

.bashrc 环境变量中,是否设置了如下环境变量 LD_LIBRARY_PATH。

export LD_LIBRARY_PATH=$ADB_HOME/lib:$LD_LIBRARY_PATH

Authentication failed (username/password)

原因说明:

AntDB 的 mgr 通过 ssh 远程管理各节点,因此需配置 ssh 互信或添加 password 选项。

解决方式:

各主机之间是否配置了互信。或在命令后添加 password'xxxx' 选项。 下面给出一个示例说明:

antdb=# start agent all;
 hostname | status |                description                
----------+--------+-------------------------------------------
 antdb01  | f      | Authentication failed (username/password)
 antdb02  | f      | Authentication failed (username/password)
(2 rows)

antdb=# 
antdb=# start agent all password'123';
 hostname | status | description 
----------+--------+-------------
 antdb01  | t      | success
 antdb02  | t      | success
(2 rows)

unable to exchange encryption keys

原因说明:

集群版本中启动 agent 的时候,可能会出现这个报错。原因可能是 libssh2 的版本过低,可通过升级 libssh2 版本解决。

解决方式:

可以通过源码编译安装 libssh2:

步骤 1:下载地址:https://www.libssh2.org/

步骤 2:源码编译安装(root 执行)

wget https://www.libssh2.org/download/libssh2-1.9.0.tar.gz
tar xzvf libssh2-1.9.0.tar.gz
cd libssh2-1.9.0
./configure
make
make install

这里提供一个 C 代码检查 libssh2 版本,保存为 check_libssh2.c;

#include <stdio.h>
#include <libssh2.h>

int main ()
{
    printf("libssh2 version: %s\n", LIBSSH2_VERSION );
}

编译:

gcc check_libssh2.c -o check_libssh2

执行:

./check_libssh2 

预期的输出为:

libssh2 version: 1.9.0

安装部署的配置文件格式出错

原因说明:

拷贝安装部署的 tar 包过程中,可能会因为系统问题,将 tar 包中的配置文件的格式自动转换成 DOS 格式,此时需要利用 dos2unix 命令手动将 DOS 格式的文本文件转换成 UNIX 格式。

解决方式:

使用 dos2unix 命令手动将 DOS 格式的文本文件转换成 UNIX 格式。

例如:在 antdb-t-ee-release-7.2.generic.* 下对 setup/common/initconf-c.ini 执行格式转换:

dos2unix setup/common/initconf-c.ini
问题反馈