选型文档看得再多,不如自己跑一遍。国产数据库这两年的安装体验已经好了很多,大部分都能用容器或官方工具在十分钟内起来。下面四种覆盖了交易、分析、时序三条主线,一台 16G 内存的开发机足够。
开始之前
- 安装 Docker(Windows 建议 WSL2 后端,macOS 建议给到 8G 以上内存)
- 确认可用内存:OceanBase 与 TiDB 都比较吃内存,2G 的小机器会启动失败
- 端口规划:OceanBase 2881、openGauss 5432、TDengine 6030、TiDB 4000
- 镜像架构要对:Apple Silicon 与 ARM 服务器上,部分镜像需要指定 arm64 版本
OceanBase:一条 docker run
官方社区版镜像自带 OBD 与最小集群配置,单容器即可体验。
docker run -d --name obce -p 2881:2881 -p 2883:2883 \
-e MODE=mini oceanbase/oceanbase-ce:latest启动后等 1-2 分钟初始化,用 docker logs -f obce 观察,出现「boot success」即可连接。默认租户 root、空密码:
mysql -h127.0.0.1 -P2881 -urootOceanBase 兼容 MySQL 协议,所以直接用 mysql 客户端就行。想跑 OceanBase 的 Oracle 模式,需要在建租户时指定兼容模式。产品详情见 OceanBase。
TiDB:用 tiup playground 起最小集群
TiDB 不适合用单个 docker run 起(它天然是多组件),官方推荐的体验方式是 tiup:
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
source ~/.bashrc
tiup playgroundplayground 会拉起 TiDB、TiKV、PD 各一个实例,并在 4000 端口暴露 MySQL 协议:
mysql -h127.0.0.1 -P4000 -uroot -D test它默认把数据放在临时目录,重启即丢,只适合试用。要验证持久化和扩容,得用 tiup cluster 部署到真实机器。见 TiDB。
openGauss:容器镜像加密码环境变量
openGauss 官方主要发布 Linux 安装包,容器体验可以用社区维护的 enmotech 镜像:
docker run -d --name opengauss --privileged=true \
-e GS_PASSWORD=Enmo@123 -p 5432:5432 enmotech/opengauss:latest密码有复杂度要求:至少 8 位,且必须包含大小写字母、数字、特殊符号中的三类,否则容器会启动失败并提示密码不合规。连接方式与 PostgreSQL 一致:
psql -h 127.0.0.1 -p 5432 -U gaussdb -d postgres注意 openGauss 默认不允许远程 root 登录,测试时用 gaussdb 用户。见 openGauss。
TDengine:单机版最快
时序库的启动最简单,一条命令,自带 taos 客户端:
docker run -d --name tdengine -p 6030:6030 -p 6041:6041 tdengine/tdengine:latest
docker exec -it tdengine taos进去后先建库建表再写数据,注意它的建表语句要先指定超级表:
CREATE DATABASE demo;
USE demo;
CREATE STABLE meters (ts TIMESTAMP, current FLOAT, voltage INT, phase FLOAT) TAGS (location BINARY(64));
INSERT INTO d1 USING meters TAGS ('beijing') VALUES (NOW, 10.3, 220, 0.28);
SELECT * FROM meters;6041 是 REST 接口端口,6030 是原生连接端口。见 TDengine。
试用阶段该测什么
- 真实 SQL:把业务里最复杂的十条查询贴进去跑,看是否报语法不兼容
- 导入导出:用真实数据量做一次批量导入,观察耗时与内存占用
- 连接池:用应用的连接池配置连一次,驱动版本往往是最先出问题的地方
- 备份恢复:跑一遍官方备份工具,确认恢复流程可执行
常见坑
- 容器内存不足导致启动即退出,先看
docker logs再怀疑镜像 - ARM 机器上拉 amd64 镜像会报 exec format error,加
--platform linux/arm64 - 端口被本机已有 MySQL/PostgreSQL 占用,换宿主端口映射即可
- 试用环境默认参数不适合压测,要读官方调优文档再下结论
跑通之后如果要做更完整的对比,可以配合《国产数据库怎么选》里的场景矩阵一起看。