【TcaplusDB知识库】部署TcaplusDB Local 版的准备操作

1. 版本介绍

TcaplusDB Local版,是为用户提供的一个满足本地开发调试的版本(基于Docker部署的可下载版本),相比腾讯云 TcaplusDB 版,本地版可以方便用户在无法连通云环境的开发环境进行代码调试,同时在功能上和腾讯云版本无差别。此文档主要介绍用户如何在本地开发环境部署 TcaplusDB 本地 Docker 环境。

部署过程中如遇到问题,可先查阅7. 常见问题列表,列表没有解决方案时,可联系TcaplusDB团队协助解决。

2. 版本兼容性说明<div id="2"></div>

目前已经在下列环境做过兼容性测试,建议尽量在进行过兼容性测试的环境上部署TcaplusDB的Local版。

已完成兼容测试的环境
Windows10 + WSL2(CentOS 7)
MAC + Parallels + Debian
CentOS 7
TLinux1.2/TLinux2.2

TcaplusDB Local版,要求是在Linux环境以Docker容器的方式运行,如果机器为Windows或者MAC,则先在这些系统上运行Linux虚拟机或者WSL(Windows),再在虚拟机中拉起Docker容器。

在未进行兼容性测试的环境部署TcaplusDB Local版,可能会出现一些未知兼容性问题。

3. 版本部署环境要求

  • 部署机器的CPU应当不少于4核,内存总容量不少于8G,启动TcaplusDB Local版容器之前,内存的空闲容量不少于6G。

  • 部署机器磁盘大小建议 100G,存放Docker容器的磁盘可用空间应当大于 50GB。

  • 部署机器需要提前安装Docker。

  • 创建Docker容器的用户必须具有通过sudo执行docker命令的权限。

  • 部署机器应当关闭了SELinux。

  • 如果部署机器是Windows + WSL2,则应当正确设置vsyscall,设置方法参见附件3

  • 如果部署机器是Debian(或者Debian虚拟机),则应当正确设置vsyscall,设置方法参见附件4

4. 版本部署

4.1. 部署环境检查和准备

下载环境扫描脚本。

wget https://tcaplus-tools-1301716906.cos.ap-guangzhou.myqcloud.com/tcaplus_tools.sh

运行环境扫描脚本,扫描环境资源,并检查是否满足TcaplusDB Local版最低运行要求。

sh tcaplus_tools.sh check_environment

环境扫描结果样例:

Environment Information: 
  OS                       : Tencent tlinux release 2.2 (Final)
  CPU Arch                 : x86_64
  CPU Cores                 : 8
  Memory Total (MB)         : 15787
  Memory Free (MB)         : 1025
  Memory Cached (MB)       : 4542
  Disk Free (MB)           : 15787
  Docker Version           : Docker version 18.09.7, build 2d0083d
  LDD Version               : ldd (GNU libc) 2.17
  GCC Version               : gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4)
  G++ Version               : g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4)
  Go Lang Version           : Not found
  Java Version             : Not found
  Python Version           : Python 2.7.5
  SELinux Setting           : Disabled

环境扫描结果各项指标参考值:

指标 参考值
OS 参见版本兼容性说明
CPU Arch x86_64
CPU Cores >= 4
Memory Total(MB) >= 8192 (8G)
Memory Free(MB) >= 6144 (6G)
Disk Free(MB) >= 51200 (50G)
Docker Version 建议 >= Docker 1.13.1 或者 >= Docker CE 18.09.7 安装方法参见附录1
SELinux Settings Disabled 关闭方法参见附录2

TcaplusDB的一些进程依赖于 mdadm, 如果部署机器默认没有安装,就需要手动安装一下。

#centos
yum install -y mdadm
#debian
apt-get update
apt-get install -y mdadm

4.2. 检查Docker是否启动

登录部署机器。

检查Docker服务是否安装并已正常启动。Docker的安装参见附录1

# 查看Docker服务状态,检查服务是否已经启动
sudo service docker status

# 启动Docker服务命令
sudo service docker start

4.3. 下载并导入Local版镜像

下载TcaplusDB Local版镜像。

wget https://tcaplus-docker-1301716906.cos.ap-guangzhou.myqcloud.com/tcaplusdb-local-3.53.1.tar.gz

导入TcaplusDB Local版镜像到本地Docker镜像库。

sudo docker load -i tcaplusdb-local-3.53.1.tar.gz

查看本地Docker镜像库,检查镜像是否导入成功。

sudo docker images

本地Docker镜像库,如出现对应的镜像信息,即表示导入成功。

REPOSITORY                                               TAG                 IMAGE ID            CREATED             SIZE
tcaplusdb-local 3.53.1 34c03389c8d3 3 days ago 6.74GB

4.4. 创建Local版容器

容器创建命令样例:

sudo docker run -itd --shm-size=2G --privileged -e TCAPLUS_CONTAINER_PUBLIC_IP="x.x.x.x" -e TCAPLUS_CONTAINER_OMS_PASSWORD="***" -p 80:80 -p 9999:9999 -p 13755-13765:13755-13765 --name test tcaplusdb-local:3.53.1

客器启动参数说明:

参数 说明
--shm-size=2G 【可选】指定容器的共享内存大小,最低要求为2G,当未指定或者容器启动的时候检测到共享内存小于2G时,会强制设置成最小值2G。
--privileged 必选】指定以特权模式启动容器,TcaplusDB Local版启动时会涉及一些系统参数的修改,如果不以特权模式启动容器,会导致启动失败。
--name test 必选】指定容器名称。后续可以直接将该名称作为查看容器日志,启停容器的参数。
-e TCAPLUS_CONTAINER_PUBLIC_IP="x.x.x.x" 【可选】指定TcaplusDB容器对外提供服务的IP,如果需要在容器外访问TcaplusDB,则需要设置,该值一般为母机的对外IP。
-e TCAPLUS_CONTAINER_OMS_PASSWORD="***" 必选】指定TcaplusDB OMS默认用户tcaplus的登录密码。出于安全考虑,TcaplusDB容器并不提供默认登录密码,需要用户在容器启动的时候指定。 【说明】TcaplusDB服务启动之后,用户可以通过tcaplus用户名和该密码登录TcaplusDB OMS页面。
-p 80:80 -p 9999:9999 -p 13755-13765:13755-13765 【可选】以bridge网络模式运行容器的时候,如果需要在容器访问服务,则需要通过-p将容器内的端口与母机的端口建立映射关系,在容器外,通过母机的端口访问即可。 【说明】目前TcaplusDB Local版需要对外暴露的端口主要有80,9999,13755-13765,TcaplusDB监听的端口及说明见附件5
tcaplusdb-local:3.53.1 必选】镜像名和Tag。
--cpus=4 【可选】如果有必要,可使用该参数指定容器可使用的CPU核数,参数值应当大于等于4。
--memory=8G 【可选】如果有必要,可使用该参数指定容器可使用的内存容量,参数值应当大于等于8G。
--storage-opt size=50G 【可选】如果有必要,可使用该参数指定容器可使用的磁盘容量,参数值应当大于等于50G。 【注意】部分Docker版本,默认情况下,容器可使用的磁盘容量为10G,会出现服务运行一段时间后,磁盘很快就满的情况,此时应当通过该参数增加磁盘容量。
--network 自定义网络名 【可选】在一些环境下,可能存在母机网段与容器默认网段冲突的情况,此时应当创建自定义Docker网络,并通过该参数指定容器使用该网络,避免网络冲突。 【说明】Docker容器通常默认为容器网段为192.168或者172.17,当母机正好也处在这些网段时,应该创建一个与母机网段不同的Docker网络,如母机的网段为172.17,则可创建一个192.168网段的Docker网络,并在创建容器时,指定使用该网络。Docker网络的创建方法参考附录6

更多容器参数及说明参见:

sudo docker run --help

容器创建后会自动启动TcaplusDB服务,此时可通过“docker logs”命令查看服务启动日志,以了解服务启动进度和状态,通常服务的启动时间大约为30秒。

当容器启动日志最后出现“Run Success”字样时,即表示服务已经启动成功,可提供服务了。

sudo docker logs 容器名

4.5. 进入Local版容器

如果有需要进入容器查看信息或者定位问题,可执行下面的命令进入。

sudo docker exec -it 容器名 /bin/bash

4.6. 停止Local版容器

如果容器使用完毕,需要暂时关闭,释放资源,可以执行下面的命令关闭。

sudo docker container stop --time=60 容器名

注意,由于TcaplusDB进程退出需要一定时间,如果强制关闭,会导致数据引擎文件损坏,进而影响容器的再次启动。这里需要指定显示指定关闭超时时间为60秒,防止TcaplusDB进程还没正常关闭退出,就被Docker强制杀死的情况(Docker默认关闭超时时间10秒,时间到了之后,容器如果还未关闭退出,就会被强制关闭)。

4.7. 启动Local版容器

针对已经关闭的容器,如果想再次拉起服务,可以执行下面的命令启动。

sudo docker container start 容器名

4. 版本测试

版本部署完成后,可通过SDK,OMS等方式连接TcaplusDB,进行数据读写或者集群管理。

TcaplusDB Local版默认创建了测试业务,游戏区和表,可登录Tcaplus OMS查看相关信息。

4.1. 通过OMS运维连接

此部分请参考:使用TcaplusDB OMS控制台

OMS的登录地址为http://<host>:<port>。基中host为TCAPLUS_CONTAINER_PUBLIC_IP(如果有指定)或者母机的IP。port为容器的80端口映射到母机的端口号。

登录OMS的默认用户名为tcaplus,密码为启动容器的时候指定的TCAPLUS_CONTAINER_OMS_PASSWORD参数值。

4.2. 通过SDK方式连接

此部分请参考: TcaplusDB入门

5. 版本下载

版本号 下载链接 功能说明
3.51.1 下载 基线版本,包含Tcaplus 3.51.1全功能集。 API:C++/Go/Java SDK,Web Service,RESTful,CGI。
3.53.1 下载 增加标准SQL访问接口,提供JDBC Driver,C++ Driver。

6. 附录

6.1. 安装Docker<div id="6-1"></div>

Docker 安装一般通过系统命令来安装,如 yum、apt-get 等,以 CentOS7举例,安装方式如下:

# CentOS 7环境,CVM实例
yum install -y docker

# Debian 8.2环境
apt-get update
apt-get install -y docker-ce containerd.io

# CentOS 8环境,CVM实例,用dnf来安装
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
dnf repolist -v
dnf list docker-ce --showduplicates | sort -r
dnf install docker-ce --nobest

注意:在安装Docker过程中,注意镜像源的配置,可参考网上相关文档资料,配置成国内镜像源。

安装完Docker之后,可以用docker命令检查是否安装成功。

安装成功,则执行如下命令启动 docker 服务。

# 启动Docker服务
sudo service docker start

6.2. 关闭SELinux<div id="6-2"></div>

查看SELinux状态。

getenforce

临时关闭。

setenforce 0

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

6.3. 设置vsyscall(Windows + WSL2)<div id="6-3"></div>

在Windows 10 操作系统的系统盘- 用户 - <用户名>目录下,修改.wslconfig文件(如C:\Users\test\.wslconfig),若没有这个文件,则需要先创建。

在其中修改/添加如下内容:

[wsl2]
kernelCommandLine = vsyscall=emulate

6.4. 设置vsyscall(Debian)<div id="6-4"></div>

参见说明

6.5. 容器内监听的端口及说明<div id="6-5"></div>

端口 组件 说明
21 SFTP FTP服务端口。 新搭建一个FTP,是为了解决tcm自带的传包功能速度慢的问题
80 TcapOMS OMS HTTP服务端口
443 TcapOMS OMS HTTPS服务端口
3306 MySQL MySQL数据库服务端口
4500 Tcapdb Tcapdb服务端口
6000 Tcapcenter Tcaplus Center服务端口
8899 Tcenterd Tcenterd服务端口
9010 Tconnd Tconnd服务端口
9017 Tbuspp Tbuspp服务端口
9020 Tbuspp Tbuspp服务端口
9200 Elasticsearch Elasticsearch服务端口
9300 Elasticsearch Elasticsearch服务端口
9898 Tcapdir Tcaplus Dir服务端口
9999 Tcapdir Tcaplus Dir服务端口
13755 Tcaproxy Tcaplus Proxy服务端口
13756 Tcaproxy Tcaplus Proxy服务端口
31001 Tcaprestproxy Tcaplus REST Proxy服务端口
36000 SSH SSH服务端口
45755 Tcapsvr Tcaplus Server服务端口
45760 Tcapsvr Tcaplus Server服务端口
46755 Tcapsvr Tcaplus Server服务端口
46760 Tcapsvr Tcaplus Server服务端口

6.6 创建Docker网络<div id="6-6"></div>

执行下面的命令创建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后面带的就是这个网络名。

7. 常见问题<div id="7"></div>

参见常见问题文档。


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

【TcaplusDB知识库】如何部署TcaplusDB Local 版的更多相关文章

  1. [TcaplusDB知识库]数据库支撑底盘引擎计算层介绍

    在上次的TcaplusDB知识库中,TcaplusDB君为大家讲解了TcaplusDB所用的基于HASH表的Key-value存储引擎TXHDB.存储引擎作为数据库的支撑底盘,其重要性无可置疑,而在本 ...

  2. 「TcaplusDB知识库」概念(表、键、记录、索引)

       TcaplusDB作为一款NoSQL数据库,语法与传统的SQL关系库有所差异.本文将详细介绍TcaplusDB表.记录.索引这三个数据库中常用术语在TcaplusDB中的概念与意义. 术语\概念 ...

  3. CentOS7.2非HA分布式部署Openstack Pike版 (实验)

    部署环境 一.组网拓扑 二.设备配置 笔记本:联想L440处理器:i3-4000M 2.40GHz内存:12G虚拟机软件:VMware® Workstation 12 Pro(12.5.2 build ...

  4. CentOS7.4安装部署openstack [Liberty版] (二)

    继上一篇博客CentOS7.4安装部署openstack [Liberty版] (一),本篇继续讲述后续部分的内容 一.添加块设备存储服务 1.服务简述: OpenStack块存储服务为实例提供块存储 ...

  5. CentOS7.4安装部署openstack [Liberty版] (一)

    一.OpenStack简介 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. OpenStack是一个 ...

  6. dokcer部署code-server web版vscode

    #dokcer部署code-server web版vscode codercom/code-server:latest不支持插件在线安装 codercom/code-server:v2目前为最新版1. ...

  7. 以windows服务方式快速部署免安装版Postgres数据库

    目录 以windows服务方式快速部署免安装版Postgres数据库 1.下载Postgresql数据库免安装包 2.安装环境准备及验证 解压文件 测试环境依赖 3.创建并初始化数据目录 创建数据目录 ...

  8. [TcaplusDB知识库]TcaplusDB客户端及常用命令

    数据库大都支持命令行访问,TcaplusDB也不例外,通过安装TcaplusDB客户端,您可以方便快捷地从命令行管理与访问数据库. TcaplusDB客户端 首先在 TcaplusServiceApi ...

  9. 在自己的服务器上部署 GitLab 社区版

    GitLab 简介 因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.这篇文章是在 Gitlab 7.4 的环境下配置的,相关内容可能已经过时. 后续做了一次迁移,将 Gi ...

随机推荐

  1. 题解 CF1119H Tripe题解

    题目传送门 题目大意 给出\(n,t,x,y,z\),值域\(\le 2^t\),给出\(n\)个三元组\((a_i,b_i,c_i)\),表示有\(x\)个\(a_i\),\(y\)个\(b_i\) ...

  2. res目录下的结构

    目录 res目录下的结构 drawable开头的文件夹 mipmap开头的文件夹 values开头的文件夹 layout文件夹 使用res目录下的资源 res目录下的结构 如果你展开res目录看一下, ...

  3. SpringBoot-语言国际化

    在resouce下新建i18ni18n 类似的还有k8s在i18n下新建signIn.properties再新建 signIn_zh_CN.properties此时,iden会帮助合并: 现在可以在这 ...

  4. LDAP-初见

    目录 什么是LDAP? LDAP 协议能解决什么问题? Spring Boot中使用LDAP来统一管理用户信息 添加用户 连接LDAP服务端 什么是LDAP? LDAP 的全称是 Lightweigh ...

  5. Golang通脉之数据类型

    标识符与关键字 在了解数据类型之前,先了解一下go的标识符和关键字 标识符 在编程语言中标识符就是定义的具有某种意义的词,比如变量名.常量名.函数名等等. Go语言中标识符允许由字母数字和_(下划线) ...

  6. 80. 删除有序数组中的重复项 II

    题目 给你一个有序数组 nums ,请你原地删除重复出现的元素(不需要考虑数组中超出新长度后面的元素),使每个元素最多出现两次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入 ...

  7. py3.8安装

    ubantu python3.8# 命令下载wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tar.xz#解压tar -xvJf P ...

  8. Java:常用的容器小记

    Java:常用的容器小记 对 Java 中的 常用容器,做一个微不足道的小小小小记 容器类概述 常见容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 M ...

  9. the Agiles Scrum Meeting 9

    会议时间:2020.4.17 20:00 1.每个人的工作 今天已完成的工作 个人结对项目增量开发组:基本实现个人项目创建.仓库自动分配,修复bug issues: 增量组:准备评测机制,增加仓库自动 ...

  10. 热身训练1 Calculator

    题目出处:Calculator 简要题意: 你有一个确定的函数,f(x)=+...*...^...,其中共有n个操作,从左到右依次计算. 共有m次询问,我们每次询问,1.会修改f(x)中的操作:2.输 ...