【TcaplusDB知识库】TcaplusDB Local版部署常见问题

1. 容器启动日志报:Failed to write channels, for shmctl

问题原因

容器的共享内存设置过小,部分Docker版本默认的容器共享内存大小为32M,而TcaplusDB容器要求的最小值是2G。

解决方案

  1. 使用3.53.1最新版本的镜像,或者更高版本的镜像;
    1. 启动容器时通过–shm-size=2G显示指定容器的共享内存大小。

2. 在Debian系统中启动容器启动失败,容器Exit Code = 139

问题原因

​ 当前遇到的退出码为139的场景,绝大部分为母机vsyscall设置的问题

解决方案

  1. Debian设置vsyscall的方法参考http://helpcenter.onlyoffice.com/installation/mail-enabling-vsyscall.aspx;

  2. Windows WSL2设置vsyscall的方法参考https://zhuanlan.zhihu.com/p/256317180

3. 容器内的SSH, PWD等命令和服务不可用,导致TcaplusDB部分功能不可用

问题原因

​ 当前这种情况大部分原因是因为母机开启了SELinux强制安全策略,导致容器内SSH,PWD等命令或者服务不可用。直接影响 是TcaplusDB的部分依赖这些命令和服务的功能不可用,如清表等。

解决方案

关闭母机的SELinux强制安全策略。

  1. 临时关闭。

    setenforce 0
    
  2. 永久关闭。编辑/etc/selinux/config文件,设置SELINUX=Disabled,重启机器。

4. 母机网段与Docker容器网段冲突,导致Client连不上服务

问题原因

​ 在一些环境下,可能存在母机网段与容器默认网段冲突的情况,Docker容器通常默认为容器网段为192.168或者172.17,当母机正好也处在这些网段时,TcaplusDB会将从母机发出的请求当作是内网请求,给Client返容器内IP作为服务IP,而在某些环境下(如WSL),母机不能直接访问容器内IP,直接表现为服务状态正常,但客户端无法连接服务端。

解决方案

​ 创建一个与母机网段不同的Docker网络,如母机的网段为172.17,则可创建一个192.168网段的Docker网络,并在创建容器时,指定使用该网络。Docker网络的创建方法如下。

​ 执行下面的命令创建Docker网络。

sudo docker network create --driver=bridge --subnet=192.168.10.0/24 subnet_192_168_10
  • 192.168.10.0/24为Docker网络网段及掩码定义。

  • subnet_192_168_10为Docker网络名,创建容器命令中–network后面带的就是这个网络名。


img

TcaplusDB是腾讯出品的分布式NoSQL数据库,存储和调度的代码完全自研。具备缓存+落地融合架构、PB级存储、毫秒级时延、无损水平扩展和复杂数据结构等特性。同时具备丰富的生态、便捷的迁移、极低的运维成本和五个九高可用等特点。客户覆盖游戏、互联网、政务、金融、制造和物联网等领域。

猜你喜欢

转载自blog.csdn.net/weixin_44545651/article/details/121497331