「瀚高数据库技术栈」瀚高云平台
一、瀚高云平台使用场景及产品简介
随着数据不断增长、互联网业务的兴起以及新兴业务的激增,业务数据呈现几何倍数增加,传统服务器+存储的架构已无法很好的满足业务发展需求,开源数据库、分布式数据库、云化技术应运而生。越来越多的企业采用开源、分布式、自主创新的数据库技术来构建IT数据库基础底座平台。
瀚高云平台依托IaaS云服务的底层资源,集成了数据库以及外围开发的各功能模块,组成了瀚高PaaS服务,该方案可广泛应用于公有云、私有云、混合云等平台架构之上。同时瀚高云平台支持在裸金属服务器上订阅数据库,实现一键式的可视化数据库发放、数据库管理及智能运维功能。为满足客户的不同需求,数据库的部署又分为单机和集群高可用,单机部署提供不同租户级别的数据库发放,并可以实现不同租户级别数据库间的资源隔离,满足用户对数据库的多样化需求; 集群高可用实现了集群快速恢复,防止业务被中断的高安全和高可靠性。
瀚高云平台提供了数据库管理的全方位解决方案,图形化一键式数据库部署、管理精细化和运维智能化,降低了企业资金投入。
二、架构设计
三、主要功能模块
瀚高云平台支持在公有云、私有云、混合云上订阅数据库,通过可视化界面引导,由用户选择订阅的数据库引擎、操作系统、CPU/Memory/磁盘/带宽大小、数据库部署方式,即可实现分钟级数据库部署。
瀚高云平台亦支持在裸金属上订阅数据库,用户仅需将自己的服务器信息配置到瀚高云平台,选择自己需要的数据库参数,即可使用瀚高云平台提供的托管式数据库服务,并实现裸金属服务器资源的高效利用。
数据库粒度支持:单实例、多实例、共享实例,以满足不同的客户需求。
图1-数据库订阅
3.2、数据库可视化管理
为解放企业的DBA,瀚高云平台提供了便捷的可视化数据库管理功能:停止数据库、重启数据库、删除数据库、修改数据库密码、磁盘扩容、变更规格、主备切换等功能。
可根据业务需求灵活调整规格、带宽、磁盘大小,高效匹配业务要求。
图2-数据库可视化管理
3.3、备份恢复
为了防止数据库丢失数据以及在数据丢失后重建数据库,数据库备份与恢复工具对于数据库生产运维来说是不可缺少的。目前大多数企业级数据库常规容量普遍都已达到TB级,日增上百GB的数据变化量属于常态,这对日常的数据库备份恢复性能和可靠性提出了更高的要求。
db_backup备份恢复工具可以很好的解决了以上几种问题,使用它执行一致性备份,可用于备份和还原数据库。它可以对单一数据库、集群、归档WAL和服务器日志进行物理在线备份;并且支持从备用站点获取备份,还支持存储快照备份;同时,db_backup支持0级和1级增量备份,可以根据不同的参数选择备份或者恢复策略。
图3-备份恢复
3.4、数据复制
随着当前数据量的增大,不少企业为保证业务的连续性,实时性和稳定性,会在不同的地理区域配置不同的数据服务中心,这样虽然会让本地访问数据变得快速高效,但在一定程度上使得区域间的数据发生隔离,难以做到全局的数据统一管理,数据之间不能做到真正意义上的共享。
逻辑复制是数据库支持的一个特性,使用发布者/订阅者模型,其原理是主库将WAL日志解码成一定格式的数据,订阅端收到该数据后按协议进行解析和应用,从而实现数据的单向同步。双向数据复制dbrep_dual,是解决数据库间数据共享,进行精准数据过滤,避免“乒-乓”情况发生的一种解决方案。在这种解决方案下,不仅可以继承原有的逻辑数据复制的优势,而且可以实现两端数据库之间的数据同步,真正实现数据库表级别的数据一致,保证了数据的完整及准确,是一种可控性比较强的实现方式。
3.5、数据迁移
瀚高迁移工具,针对客户现有的应用系统迁移提供完整的解决方案,为应用系统代码修改和应用系统数据库迁移两个方面提供辅助,目的是降低应用系统迁移的复杂度和成本,使迁移过程更加简单和高效。
瀚高迁移工具在数据迁移方面,使用数据类型映射表保证源端和目标端的数据类型吻合;采用多线程并发迁移方式提升数据迁移速度;提供全表和逐行的数据对比,保证迁移后源端和目标端数据的一致性;通过对PLSQL语言的语法和词法分析,转换成PLPGSQL;提供迁移评估功能,评估源端库的规模,并将结果以报表形式展示;通过对应用程序代码进行全代码扫描,并进行语法分析,匹配定位出需要修改的代码位置。
3.6、数据监控
为及时发现系统异常,降低系统风险,保证数据库可靠高效运行,设计了一套完整的数据库管理和监控方案,实现了数据库的一致性和业务连续性。
瀚高集群监控工具是基于Prometheus开源生态系统进行构建,借助Go语言的高并发性,查询灵活,实现了多维数据模型,并通过Web展示方案,简单、直接、最大化的展示了用户关心的指标以及指标的变化趋势等相关信息。
瀚高集群监控工具大大增强了产品的稳定性、安全性及易用性。
图4-图形化监控工具
3.7、集群高可用
在数据库集群的生产场景中,通常会遭遇各种异常(主备数据库节点断网、断电、人为损坏、机器故障等),导致集群无法正常对外服务。为了实现集群快速恢复,防止业务被中断,高可用管理产品是不可或缺的。
目前的高可用产品在实际生产中存在着一些风险,如脑裂问题,即集群同时存在两个对外服务的主节点,同步备库失效导致主库被挂起,VIP漂移失效等。从故障恢复性能角度看,现有的高可用产品很难满足用户不间断业务的需求。
瀚高高可用软件(以下简称db_ha)有效的解决了以上问题。db_ha是基于WAL日志同步方案的高可用架构,支持瀚高系列数据库和PostgreSQL(9.x-12.x)版本。db_ha提供主备节点VIP功能,并对所有VIP进行管理监控;具有防脑裂检测机制,杜绝脑裂的产生;支持自动同步转异步功能,避免主库操作被挂起;提供统一的集群管理命令,操作简单方便;提供可靠的异常告警机制,最大限度保证重要信息及时传递;具有高效的业务恢复能力,保障RTO(恢复时间目标)小于8秒,即从灾难状态恢复到可运行状态时间8秒;保证RP0等于0,即切换时向前恢复的数据的时间长度为0,实现切换前后数据0丢失。
3.8、分布式
在大规模OLTP应用系统的设计中,数据库服务器的扩展能力是一个无法回避的问题。当业务所需要的数据库事务吞吐量超过单个节点数据库处理能力时,就要考虑数据库的多节点扩展问题。要使得多节点数据库系统在拥有良好的扩展性,突破节点数量的限制,就需要考虑非共享的分布式数据库解决方案。现有的多节点、非共享的分布式数据库系统,主要是用于OLAP业务场景。但是,普通的非共享分布式数据库并不适合承担OLTP的任务,跨节点的事务可能需要两阶段提交以保证事务完整性、多节点之间的通信协调可能耗费扩展性。市场上大多数非共享的分布式数据库系统都是用来做数据仓库,承担OLAP任务的。
HGDB Sharding是瀚高软件提供的一款采用多节点、非共享分布式架构的数据库。它被命名为Sharding,表明它是采用了数据分片技术,同时也是为了与传统分布式OLAP的数据库产品有所区分,它是针对大规模OLTP应用场景的解决方案。
3.9、裸金属资源控制
为有效利用裸金属服务器资源,裸金属的数据库订阅支持单实例、多实例、共享实例的订阅。为实现服务器资源的高效利用,瀚高云平台利用fdisk+lvm+systemd+cgroup实现不同租户级别数据库间的资源隔离(CPU、Memory、磁盘、带宽)。
四、产品优势
4.1低成本、资源高效利用
云平台提供了按需申请、分钟级部署的服务模式,极大简化了数据库建设模式。用户根据业务情况弹性横向伸缩所需资源,按需定制适合自己业务场景的数据库。可以灵活的调整数据库的规格、磁盘大小。
4.2高兼容
云数据库引擎的操作方法与原生数据库引擎的操作方法完全相同,可以用极低成本将数据迁移到瀚高云关系型数据库。支持主流的国内操作系统、CPU。
4.3运维管理便捷、自动化
云平台提供图形化的数据复制、备份/恢复、 修改密码、 重启数据库等专业的数据库管理功能,提供CPU利用率、系统平均负载、当前活跃链接数等信息的实时监控告警,让用户随时随地了解数据库动态。
4.4高安全
云平台提供网络隔离、访问控制、传输加密、存储加密、安全防护等安全策略保证数据库的安全性。
4.5高可用
配备统一集群管理命令,具有防脑裂机制,且能够完成高效的故障自动转移及故障节点恢复,可靠的告警系统,及时反馈异常信息。