【TcaplusDB知识库】TcaplusDB Local 版部署常见问题
2023-03-14 22:37:03 时间
【TcaplusDB知识库】TcaplusDB Local版部署常见问题
1. 容器启动日志报:Failed to write channels, for shmctl
问题原因:
容器的共享内存设置过小,部分Docker版本默认的容器共享内存大小为32M,而TcaplusDB容器要求的最小值是2G。
解决方案:
- 使用3.53.1最新版本的镜像,或者更高版本的镜像;
- 启动容器时通过--shm-size=2G显示指定容器的共享内存大小。
2. 在Debian系统中启动容器启动失败,容器Exit Code = 139
问题原因:
当前遇到的退出码为139的场景,绝大部分为母机vsyscall设置的问题
解决方案:
- Debian设置vsyscall的方法参考http://helpcenter.onlyoffice.com/installation/mail-enabling-vsyscall.aspx;
- Windows WSL2设置vsyscall的方法参考https://zhuanlan.zhihu.com/p/256317180
3. 容器内的SSH, PWD等命令和服务不可用,导致TcaplusDB部分功能不可用
问题原因:
当前这种情况大部分原因是因为母机开启了SELinux强制安全策略,导致容器内SSH,PWD等命令或者服务不可用。直接影响 是TcaplusDB的部分依赖这些命令和服务的功能不可用,如清表等。
解决方案:
关闭母机的SELinux强制安全策略。
- 临时关闭。 setenforce 0
- 永久关闭。编辑/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后面带的就是这个网络名。
TcaplusDB是腾讯出品的分布式NoSQL数据库,存储和调度的代码完全自研。具备缓存+落地融合架构、PB级存储、毫秒级时延、无损水平扩展和复杂数据结构等特性。同时具备丰富的生态、便捷的迁移、极低的运维成本和五个九高可用等特点。客户覆盖游戏、互联网、政务、金融、制造和物联网等领域。
相关文章
- 如何设计一个复杂的分布式爬虫系统?
- 超越YOLOv5,1.3M超轻量,高效易用,目标检测领域这一个就够了
- 深入了解Zookeeper核心原理
- Fedora 34正式版发布 迎来多项令人振奋的更新
- Golang 语言中 Context 的使用方式
- 一文带你掌握SpringCloud高可用服务注册中心Eureka
- 蚂蚁金服徐达峰:关于前端的那些事儿!
- 策略模式——略施小计就彻底消除了多重 if else
- 我被喷了:这样写代码是多此一举?
- std::string的Copy-on-Write:不如想象中美好
- 计算机架构的新黄金时代,为什么到了2021年还没有开始
- React库+GraphQL服务器+Relay架构联合作战(上)
- 「React进阶」一文吃透react事件原理
- 如何做 Nginx 安全日志分析可视化,看这一篇就够了
- 和阿里P8大佬面试互怼了半小时的Fork/Join原理
- 有了CopyOnWrite为何又要有ReadWriteLock?
- Github标星7.9K!程序员专属的命名宝典来了
- 工作六年后,对软件开发的一些新观点
- 如何在.NET Core中为gRPC服务设计消息文件(Proto)
- PHP继承竟然也需要显性基因?