标签:SequoiaDB 国产化 部署 数据库 mysql jar 选型 MySQL
背景
政府型等企业对视频会议产品有国产化方需求,其中包括国产化服务器、国产化操作系统、国产化数据库、国产化软件等,特别是国产化服务器和国产操作系统、国产化数据库,有特别明确。目前我司已选型国产化服务器为:曙光CPU,海光机器,操作系统为:KyLin-Server-V10-SP1。
需求分析
原私有化采用的数据库为MySQL5.7,主要部署架构有:单机部署、HAProxy代理的双主模式,主要应用驱动:mysql-connector-java.jar
性能要求:读写、吞吐量、数据量较低
高可用:支持单机、双机、集群模式、K8S
安全性:至少支持支持 SSL/TLS 加密通信
墨天轮每月都会在其官网上发布中国数据库流行度排行榜,如下图所示是其最新的中国数据库流行度排行
https://www.modb.pro/dbRank
从榜单中可以看到,前九名的数据库可用一句概括:三商三云三开源,非常具有代表性。
数据库技术的发展经过了三个时代,从商业、到开源,再到云数据库时代,榜单的前九名恰好反应了三个时代:
三个商业数据库品牌:达梦、GBase、金仓;
三个开源数据库品牌:openGauss、TiDB、OceanBase;
三个云数据库品牌:GaussDB、PolarDB、TDSQL
一、总揽
厂商
|
架构
|
可用性体现
|
部署方式支持
|
驱动
|
应用改造难度
|
运维维护难度
|
安全性
|
适合场景
|
资源要求
|
官网链接
|
最新版本
|
开发语言
|
OceanBase
(蚂蚁集团)
|
采用 Shared Nothing 架构,数据库内的 SQL 执行引擎具有分布式执行能力
|
单服务器故障自愈,跨城多机房容灾,数据多副本存储
使用 Paxos 的优化 Multi-Paxos 实现多副本数据同步
|
单机部署
集群部署(3+N)
容器部署-仅测试
K8S(ob-operator )
|
OB-ODBC 驱动
MySQL 官方 MySQL-ODBC 驱动:mysql-connector-java.jar
|
兼容 MySQL 5.7 的绝大部分功能和语法https://www.oceanbase.com/docs/community-observer-cn-10000000000901182
|
专业官方文档
部署工具OBD
图形化的开发工具、运维监控工具和数据迁移工具;同时社区版提供开放的接口和丰富的生态能力
|
支持 SSL/TLS 加密通信
|
1.交易支付透明拆分
2.会员系统的多维度查询
3.批处理系统
|
1.内存要求较高,available至少3G
,空载内存占用是mysql的10倍左右
2.原私有化系统环境满足
3.离线包-240M
|
https://www.oceanbase.com/
|
社区版
V4.0.0_CE
|
C++
|
TiDB(PingCAP)
|
行存储引擎 TiKV、列存储引擎 TiFlash
|
通过 Multi-Raft 协议同步事务日志
|
集群部署
(3+N)
(单机集群)
容器部署-仅测试
K8S(tidb-operator )
|
mysql-connector-java.jar
(8.0.29 及以上版本)
|
兼容 MySQL 5.7 协议和 MySQL 生态,https://docs.pingcap.com/zh/tidb/stable/mysql-compatibility
|
专业官方文档
部署工具TIUP
图形化的开发工具、运维监控工具
|
支持 SSL/TLS 加密通信
|
1、金融行业属性的场景
2、海量数据及高并发的 OLTP 场景
3、Real-time HTAP 场景
4、数据汇聚、二次加工处理的场景
|
1.内存要求较高,建议生产8C16G
2.对系统环境苛刻
3.离线包-2.5G
|
https://docs.pingcap.com/zh/
|
社区版v6.5.0
|
go
|
openGauss
(华为)
|
采用了Numa-Aware的数据结构
|
支持主备同步,异步以及级联备机多种部署模式
基于Paxos分布式一致性协议的日志复制及选主框架
|
单机
主备双机
冷热备份
一主多备(企业版)
容器部署-仅测试
|
postgresql.jar和openGauss-jdbc-x.x.x.jar
支持标准JDBC 4.0的特性、ODBC 3.5特性
不支持JDBC桥接ODBC方式
|
需要加载特定jar包
通过dolphin 插件
兼容MySQL
https://docs.opengauss.org/zh/docs/3.1.1/docs/Developerguide/B-compatibility.html
|
专业官方文档
命令安装
|
SSL、TLS 1.2
|
1、交易型应用
2、物联网数据
|
1.内存要求较高,建议生产8C16G
2.对系统环境较高
3.离线包-120M
|
https://www.opengauss.org/zh/
|
企业版v3.1.0
|
c++
基于开源PostgreSQL代码重构研发
|
PolarDB-X
(阿里)
|
Shared-nothing与存储计算分离架构进行设计
|
通过多数派Paxos协议实现数据强一致,支持两地三中心、三地五副本等多种容灾方式
|
Docker镜像安装
PXD工具一键安装-开发测试场景
源码编译安装
使用Kubernetes安装
|
mysql-connector-java.jar
|
MySQL协议、MySQL大部分语法、Collation、事务隔离级别、Binlog等https://doc.polardbx.com/features/topics/mysql-compatability.html
MySQL8.0
|
专业官方文档
部署工具PXD
|
SSL、TLS
|
1、超高并发
2、海量存储
3、复杂查询场景
|
1、镜像文件4.5G
|
https://doc.polardbx.com/?spm=a2c6h.12873639.article-detail.7.598e7c37I3XJ0a
|
|
|
HighGo DB
(瀚高)
|
分布式存储引擎为HighGO,数据库实例采用PostgreSQL
|
基于Raft算法选举主服务器
|
单机
集群模式:一主多备
|
hgdb-6.0.3-jdbc.jar
|
需要加载特定jar包
|
官方文档简陋
rpm安装
没有社区
|
SSL
|
1、政府之间互联互通大数据
2、物联网,互联网+等业务所需的多种数据结构
|
1.建议生产2C8G
2.对系统环境中等
3.离线包-80M
|
https://www.highgo.com/index.html
|
安全版
V4.5.8
|
基于开源PostgreSQL代码研发
|
SequoiaDB
(巨杉)
|
分为数据库存储引擎以及数据库实例(MySQL、PostgreSQL、Spark、MariaDB),相当于是替换掉 MySQL 中的 InnoDB
|
复制组主从选举,支持同城多中心或异地多中心部署
改进过的 Raft 选举协议
数据组内要进行选举,必须满足存活节点>=(组内总节点数/2+1)的要求,才能够发起选举
|
集群模式(至少三副本)、独立模式、容器化
|
mysql-connector-java.jar
sequoiadb-driver-5.0.1.jar
|
如果要使用原生SequoiaDB则要加载特定jar包,如果使用SequoiaDB + mysql server 则不需要任何改造
|
专业官方文档
命令安装&可视化安装(安装脚本)
|
SSL(企业版,社区版不支持)
|
1、分布式联机交易
2、数据中台
3、企业内容管理
|
1.建议生产1C2G
2.对系统环境较高
3.离线包-1.2G
|
https://www.sequoiadb.com/cn/
|
v5.0.1
|
c++
|
打分模版
打分规则:(十分制)
厂商
|
易用性-部署维护(9)
|
容灾能力-HA(9)
|
安全稳定性(9)
|
兼容性(9)
|
性能资源成本(5)
|
可扩展性(5)
|
外部落地(3)
|
生态建设(4)
|
总分
|
OceanBase(蚂蚁集团)
|
|
|
|
|
|
|
|
|
|
TiDB(PingCAP)
|
|
|
|
|
|
|
|
|
|
SequoiaDB(巨杉)
|
|
|
|
|
|
|
|
|
|
易用性-部署维护(9)
厂商
|
官方文档详情
|
系统环境要求
|
安装工具/脚本
|
开发运维监控工具
|
集成私有化
|
总分
|
OceanBase(蚂蚁集团)
|
1.文档详细
|
1.关闭swap、防火墙、开启NTP,
limits.conf
和sysctl.conf
2.关闭透明大页
3.内存available至少3GG
|
1.部署工具OBD
2.配置文件一键安装卸载清理等
|
原生Grafana
OCP(另行安装)
图形化的开发工具、运维监控工具和数据迁移工具;同时社区版提供开放的接口和丰富的生态能力
客户端工具obclient/mysql
|
1.离线包-240M
2.密码提前设定
|
|
TiDB(PingCAP)
|
1.文档全面,且有FAQ
2.实际部署过程中遗limits.conf
和sysctl.conf
|
1.关闭swap、防火墙、开启NTP
2.关闭透明大页、将存储介质的 I/O 调度器设置为 noop、为调整 CPU 频率的 cpufreq 模块选用 performance 模式
3.安装numactl工具
4.tikv和tiflash数据目录不能在同一块分区否则预检查报错,可以强制安装
|
1.部署工具TIUP
2.配置文件一键安装卸载清理等
|
Monitoring、Grafana、Alertmanager包含自研运维监控管理工具,功能全面(可选安装)
登录数据库前,你需要安装 MySQL 客户端
|
1.离线包-2.5G
2.密码随机生成
|
|
SequoiaDB(巨杉)
|
1.文档详细
|
1.关闭swap、防火墙、开启NTP
调整 ulimit、
调整内核参数
2.关闭透明大页、
3.安装numactl工具
4.主机名/IP映射
5.禁用NUMA,重新生成 grub 引导文件
|
1.命令安装&可视化安装(安装脚本)
2.交互式操作
|
无
|
1.离线包-1.2G
2.MySQL实例默认无密码
|
|
高可用-容灾能力-HA(9)
厂商
|
双机热备
|
集群
|
故障转移
|
数据备份
|
总分
|
OceanBase(蚂蚁集团)
|
不支持
主备集群
|
3+N
容灾RPO=0,RTO=30 秒的国标最高的 6 级标准
|
Kill 进程能自愈
宕机一台,不影响
宕机两台,failed,需要手动拉起
https://www.oceanbase.com/docs/community-observer-cn-10000000000902256
|
支持 OSS、NFS 和 COS 三种备份介质
|
|
TiDB(PingCAP)
|
不支持
双集群主从复制
|
3+N
秒级别 RPO 和分钟级别 RTO
|
Kill 进程能自愈
宕机一台,不影响
宕机两台,failed
重启很快能自愈
|
支持Amazon S3、Google Cloud Storage (GCS)、Azure Blob Storage、NFS,或者实现 S3 协议的其他文件存储服务
|
|
SequoiaDB(巨杉)
|
不支持
|
异地容灾RPO = 0 , RTO < 15秒
|
|
创建 S3 对象存储实例
|
|
安全稳定性(9)
厂商
|
SSL
|
TLS
|
宕机故障恢复
|
备份
|
其他
|
总分
|
OceanBase(蚂蚁集团)
|
支持
|
支持
|
重启故障【1005】https://www.oceanbase.com/product/ob-deployer/error-codes
|
1.日志备份可设置自动归档定时清理
2.数据备份手动触发(全量+增量,进度可查看)
3.obclient SQL语句
|
1.闪回,回收站主要用于存储用户删除的数据库和表等信息
2.存储加密,用户数据和备份最终都是以二进制的形式
|
|
TiDB(PingCAP)
|
支持
|
支持
|
宕机重启,很快自愈
|
1.快照数据备份恢复
2.恢复到集群的历史任意时间点
3.br 工具进行和SQL语句备份恢复
|
1.组件之间加密
2.日志脱敏
|
|
SequoiaDB(巨杉)
|
支持
|
不支持
|
宕机重启故障
cd /opt/sequoiasql/mysql
bin/sdb_mysql_ctl start myinst
|
1、启动 SDB Shell(全量+增量备份)
2、sdbrestore工具数据恢复
3.时间点恢复
|
1.特有数据回收支持,避免认为误删除数据导致的业务损失
|
|
兼容性(9)
厂商
|
MySQL协议
|
MySQL语法
|
JAVA应用驱动
|
数据迁移
|
总分
|
OceanBase(蚂蚁集团)
|
兼容 MySQL 5.7 协议
|
1.兼容 MySQL 5.7 的绝大部分功能和语法。
2.暂不支持空间数据类型。
3.不支持 SELECT ... FOR SHARE ... 语法。
4.不支持空间分析函数和性能模式函数。
5.对于备份恢复功能,不支持集群级别的备份恢复,不支持冷备份,不支持租户内部部分数据库和表级的备份恢复,备份数据的有效性验证。
6.对于优化器,查看执行计划的命令不支持使用 SHOW WARNINGS 显示额外的信息。
|
OB-ODBC 驱动
MySQL 官方 MySQL-ODBC 驱动:mysql-connector-java.jar
|
OceanBase 数据库使用的是基于 LSM-Tree 架构的存储引擎,默认OceanBase引擎,
将/utf8mb4_unicode_ci
转换utf8_general_ci
|
|
TiDB(PingCAP)
|
兼容 MySQL 5.7 协议和 MySQL 生态
|
1.兼容MySQL 5.7 常用的功能及语法
2.
|
mysql-connector-java.jar
(建议8.0.29 及以上版本)
|
默认InnoDB引擎
|
|
SequoiaDB(巨杉)
|
使用SequoiaDB + mysql server 则不需要任何改造
|
100%兼容行业标准的MySQ
|
mysql-connector-java.jar
sequoiadb-driver-5.0.1.jar
如果要使用原生SequoiaDB则要加载特定jar包,
|
默认SequoiaDB引擎,可设置InnoDB引
|
|
资源性能成本(5)
厂商
|
CPU要求
|
内存要求
|
磁盘要求
|
网络要求
|
最低可用部署
|
总分
|
OceanBase(蚂蚁集团)
|
一般
|
对内存要求较高
|
磁盘容量要求较大
|
一般
|
单机4C8G
集群4C16G
|
|
TiDB(PingCAP)
|
较高
|
一般
|
一般
|
一般
|
单机4C4G
集群4C8G
|
|
SequoiaDB(巨杉)
|
较低
|
较低
|
较低
|
较低
|
单机4C4G
集群4C8G
|
|
单机空载
集群空载
OB
TiDB
巨杉
可扩展性(5)
厂商
|
架构
|
分布式存储
|
分布式计算
|
K8S集群部署
|
发展前景
|
总分
|
OceanBase(蚂蚁集团)
|
Shared Nothing 架构,每个数据节点都是对等的
|
分区
副本
Locality
|
使用 Paxos 的优化 Multi-Paxos 实现多副本数据同步
|
容器部署-仅测试
K8S(ob-operator )
|
势在于傍着阿里,所以有的互联网的一块市场,比较容易能活下去
|
|
TiDB(PingCAP)
|
纯分布式架构,将整体架构拆分成了多个模块,各模块之间互相通信
|
行存储引擎 TiKV、列存储引擎 TiFlash
|
通过 Multi-Raft 协议同步事务日志
|
容器部署-仅测试
K8S(tidb-operator )
|
pingcap的优势在于一开始就走开源,而且海外开源做的也很好,tidb靠上市和生态
|
|
SequoiaDB(巨杉)
|
|
数据库存储引擎以及数据库实例,
|
改进过的 Raft 选举协议
|
集群模式(至少三副本)
容器部署
|
|
|
外部落地(3)
厂商
|
集团
|
大厂
|
金融
|
政企
|
总分
|
OceanBase(蚂蚁集团)
|
无
|
|
|
|
|
TiDB(PingCAP)
|
22.08希沃开学季
|
|
|
|
|
SequoiaDB(巨杉)
|
无
|
|
|
|
|
TiDB
SequoiaDB
生态建设(4)
厂商
|
官方文档视频
|
社区活跃度
|
star
|
近1month的commit数目
|
总分
|
OceanBase(蚂蚁集团)
|
文档
|
社区较为活跃,回复量一般
|
5.2k
|
836,分布不均匀
|
|
TiDB(PingCAP)
|
文档+视频
|
开源的早,社区做得较好,回复量高,响应快
|
33.4k
|
416,分布较均匀
|
|
SequoiaDB(巨杉)
|
文档
|
问答相对较少,经验分享学习资料较多
|
930
|
开源项目“SequoiaDB”近期受到了此前GitHub被攻击的影响,代码库出现了混乱,最后只能将项目清除并重新上传项目代码
|
|
标签:SequoiaDB,
国产化,
部署,
数据库,
mysql,
jar,
选型,
MySQL
From: https://www.cnblogs.com/user-sunli/p/18040034