RadonDB 是一款基于 MySQL 研发的新一代分布式关系型数据库 (MyNewSQL)。旨在向用户提供具备金融级高可用、强一致、超大容量的数据库服务,RadonDB 高度兼容 MySQL 语法,自动水平分表,智能化扩容。
RadonDB 的优势:
- 自动水平分表,一键即可开启智能化扩容,扩容过程业务不中断。
- 数据多副本,率先使用 GTID 并行复制和 Raft 一致性协议确保副本间数据强一致、零丢失。
- 主副本故障自动秒级切换,实现自动化运维,无需人工干预。
- 存储副本使用 MySQL(5.7.19) 存储,稳定可靠的存储能力与强大的计算能力并存。
- 提供分布式事务能力,保证跨节点操作的数据一致性。
- 同时支持 OLTP (高并发事务需求)和 OLAP (复杂分析需求)。
- 高度兼容 MySQL 语法,数据可快速导入、导出,简单易用。
这里可以填写新集群的基本信息。
RadonDB 包含三种类型的节点:SQL 节点、存储节点、计算节点。SQL 节点、计算节点的数量固定为 1,存储节点数量可选,每个节点都有副本节点。具体说明如下表:
节点类型 | 节点数量范围 | 副本节点数量范围 |
---|---|---|
SQL 节点 | 1 | 1-4,默认为 1 |
存储节点 | 2-60,默认为 2 | 2 |
计算节点 | 1 | 2 |
每种类型的节点都可设置 CPU、内存、磁盘类型、磁盘大小。磁盘类型可选择性能型或者超高性能型。磁盘大小决定了数据库最大容量,您的数据和日志会共享这块磁盘。
注解:按上述设置,集群会有 11 个主机,包括:SQL 节点 1 组,每组包括 1 主 1 副本;存储节点 2 组,每组包含 1 主 2 副本;计算节点 1 组,每组包含 1 主 2 副本。
为安全起见,数据库集群服务需加入已连接路由器的私有网络,并确保该私有网络的 DHCP 处于『打开』状态 (默认已打开)。 使用一个数据库独享的私有网络的好处是方便您对其做『过滤控制』,同时也不影响其它私有网络的设置。
在这一步可以创建初始的数据库账号,并设置数据库服务的配置参数。
这里显示了集群的基本信息。
集群提供两个高可用的读写 IP,分别对应于数据的读和写。
-
读 IP:可将请求在 SQL 节点及其副本之间进行负载分担,提高读取性能,消除单点故障。
-
写 IP:始终指向 SQL 主节点。
注解: 必须使用高可用的读写 IP 来访问集群。由于连接到读 IP 的请求会在所有 SQL 节点及其副本(包括当前的 SQL 主节点)之间负载,所以,当某个连接请求被分配到当前主节点时,也是可写的,反之,若分配到非主节点,则必然是只读的。
点开基本属性旁边的下拉按钮,可以看到提供的服务功能。
这里列出节点及其 IP,可以使用这里列出的 IP 来下载同步的日志。同时显示了每个节点的服务状态。
注解:这里的 IP 仅供查询和下载同步的日志使用,不能做写入使用。
这里列出了可以修改并持久化的配置参数。没有标注会重启服务的那些参数,都可以在服务运行时修改,对服务没有影响。
注解:会自动重启服务的参数已经在描述中说明,请在业务低峰时进行修改。
可以对集群节点配置告警策略,及时掌握集群的资源和服务状况。
可以对集群进行手动备份,也可以在集群列表页面右键选择备份时间进行自动备份。
如果需要从备份创建出一个独立于原有数据库服务的新数据库服务, 可以在详情页的『备份』标签下右键相应的备份点,再选择『从备份创建集群』即可。
注解:恢复集群时会保留原集群的数据库账号密码,恢复时需要指定新的账户密码,也可以在创建后修改。
要创建新账号时,需要指定账号密码。
这里填写要删除的账号名。
这里填写要修改的账号名及新密码。
可以根据需要增加 SQL 节点的副本或存储节点。增加 SQL 节点的副本只会增加一个主机,而增加存储节点则会增加 3 个主机,即 1 主 2 副本,并自动将其他存储节点的数据平衡到新加的存储节点。
注解:目前不支持删除存储节点,只支持删除 SQL 节点的副本。
可以对一个运行中的数据库服务进行在线扩容,调整 CPU/内存/磁盘空间大小。每次扩容只能选择一种角色。
注解:扩容需要在开机状态下进行,扩容 SQL 节点时链接会有短暂中断,请在业务低峰时进行。
同步日志可以将审计日志拷贝到 SQL 节点的 FTP 目录,可以在内网将 SQL 节点的审计日志下载到本地进行分析。操作指令为:
wget -m ftp://SQL节点IP地址/audit
注解:审计日志只记录最近一个小时的 SQL 记录。默认情况下不开启审计日志,可在初始化集群时或配置参数里设置开启。
这里为每个节点都提供了资源监控,并对存储、计算节点提供了服务监控。服务监控统计了 SHOW GLOBAL STATUS 中的信息,可用于定位分析数据库的性能。部分监控项示例如下:
RadonDB:
1 组 SQL 节点 (16C64G 超高性能主机)
4 组存储节点 (16C64G 超高性能主机)
sync_binlog=1
innodb_flush_log_at_trx_commit=1
RDB:
RDB (16C64G 超高性能主机)
sync_binlog=1
innodb_flush_log_at_trx_commit=1
sysbench: 16 表, 512 线程,随机写,5000 万条数据。
Item | Transaction Per Second (TPS) | Response Time(ms) |
---|---|---|
RadonDB (4 组存储节点) | 26589 | 20 |
单机 MySQL (QingCloud RDB) | 9346 | 73 |
可以看到 RadonDB 的延迟是单机 MySQL 的 1/3,但性能几乎是单机的 3 倍,这要得益于 RadonDB 对大表进行切分后,用户的写操作在这些小表上可并发式执行。
RadonDB 支持 sysbench 和 benchyou 性能压测软件。 注意:压测前需要修改建表语句指定分区键 (PARTITION BY HASH (分区键))
关于数据的导入导出,详见:数据导入导出
正如前文所述,RadonDB 高度兼容 MySQL 语法,但也略有不同,详见:支持的 SQL 集