首页 > 数据库 >国产化数据库选型

国产化数据库选型

时间:2024-02-28 13:22:05浏览次数:24  
标签: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

相关文章

  • 数据库设计规范 - 阿里
    基于阿里数据库设计规范扩展而来设计规范1.【推荐】字段允许适当冗余,以提高查询性能,但必须考虑数据一致。冗余字段应遵循:不是频繁修改的字段。不是varchar超长字段,更不能是text字段。正例:商品类目名称使用频率高,字段长度短,名称基本一成不变,可在相关联的表中冗余存储......
  • DBeaver 配置postgresSQL离线驱动(全)ps:其他数据库同理
    原文地址:https://blog.csdn.net/wulala517/article/details/1305831931.首先在一台可联网的机器上打开db,在这儿获取驱动作为离线驱动包。依次点击数据库-驱动管理器;搜索框输入你需要修改离线驱动的数据库,我是pg库,以下以pg库为例,输入postgres,左键单击postgresSQL,后点击编辑; 2.......
  • 在K8S中,etcd数据库中数据如何更改?
    在Kubernetes(K8s)中,etcd中的数据更改主要发生在以下几个场景中:创建、更新和删除Kubernetes资源对象:当用户在Kubernetes中创建(POST)、更新(PUT)或删除(DELETE)一个资源对象(如Pod、Service、Deployment等)时,KubernetesAPI服务器会将这些更改转换为对etcd的相应操作。API服务器会将更改......
  • 在K8S中,etcd是什么类型数据库?
    在Kubernetes(K8s)中,etcd是一个高度可靠、分布式的键值存储数据库,用于存储集群的共享配置和服务发现信息。etcd在Kubernetes架构中扮演着核心组件的角色,是集群状态数据的关键存储后端。1.etcd的类型:键值存储(Key-ValueStore):etcd最基本的功能是作为键值存储,它允许用户存储和......
  • 数据库
    关系型数据库mysql索引笔记sql练习一sql练习二groupby的解析非关系型数据库Redis使用规范ELKMongoDB......
  • 【MySQL】【锁的前置知识】数据库的锁有哪些?怎么看?锁的是什么?什么情况下会加什么锁?什
    1 前言数据库中的锁,是一个很大的问题,从哪看起呢?该怎么看呢?所以在看锁之前,了解一些相关的前置知识,然后再去细看不同的场景下会加什么样的锁方便你快速理解。官网,当然我们这里看的引擎是InnoDB哈,那我们从以下几个问题看起:(1)数据库中的锁有哪些(怎么知道呢,网上的文章五花八门的......
  • oracle增加表分区,金仓增加表分区,oracle增加数据库空间
    1.金仓增加表分区CREATETABLE"public"."分区名"PARTITIONOF"public"."表名"FORVALUESFROM('2024-02-0100:00:00')TO('2024-02-2923:59:59');COMMENTONTABLE"public"."分区名"IS'......
  • idea连接数据库
    1.情景展示在idea中,我们直接连接到数据库,如何实现?2.具体操作打开idea,切换到Database窗口。按照下图指引,找到自己实际所需的数据库类型。注意:mysql不要选错了。以mysql进行举例说明等上述配置好后,点击“TestConnection”,以测试数据库是否连接正常。不管是哪种数据库,......
  • asp.net quartz 定时器 miniapi sqlite数据库 cors
    dotnet_miniapi_quartz_ipaddress_check/Dtos.csusingSystem.ComponentModel.DataAnnotations;namespaceGameStore.Api.Dtos;publicrecordIpAddressDto(Guidid,stringip,stringname,stringdomain,......
  • 修复sqlite3数据库 database disk image is malformed
    databasediskimageismalformed错误sqlite是一个文本型数据库,其内部虽然做了异常处理,且官网上也说一般的异常不会引起数据库文件损坏,但是官方还是给出了有可能导致数据库文件损坏的情况。以下内容来自官网:SQLite经过非常仔细的测试,以帮助确保它尽可能没有错误。对每个SQ......