羲和(Halo)通用数据库系统软件 (Halo14)技术白皮书 技术白皮书(Halo14)易景科技文档开发组 版权所有©2023杭州易景数通科技有限公司 版权声明 易景科技是HaloDatabase、HaloDatabaseManagementSystem、羲和数据库、羲和数据库管理系统(后面简称Halo)软件的发明人同时也为知识产权权利人。Halo软件的知识产权,以及与本软件相关的所有信息内容(包括但不限于文字、图片、音频、视频、图表、界面设计、版面框架、有关数据或电子文档等)均受中华人民共和国法律法规和相应的国际条约保护,易景科技享有上述知识产权,但相关权利人依照法律规定应享有的权利除外。未免疑义,本条所指的“知识产权”是指任何及所有基于Halo软件产生的:(a)版权、商标、商号、域名、与商标和商号相关的商誉、设计和专利;与创新、技术诀窍、商业秘密、保密技术、非技术信息相关的权利;(b)人身权、掩模作品权、署名权和发表权;以及(c)在本协议生效之前已存在或此后出现在世界任何地方的其他工业产权、专有权、与“知识产权”相关的权利,以及上述权利的所有续期和延长,无论此类权利是否已在相关法域内的相关机构注册。 Copyright(c)2021-2023,HaloTechCo.,Ltd.Allrightsreserved. HaloisaDatabaseManagementSystemwhichisdevelopedbyHaloTechCo.,Ltd. 通讯方式 杭州易景数通科技有限公司 浙江省杭州市滨江区长河街道建业路511号华创大厦505室电话:17767273303邮箱:halolab@halodbtech.com 目录 1.产品简介5 1.1产品概述5 1.2产品能力5 1.3功能简介6 2.数据库体系结构简介8 2.1Halo数据库系统体系结构8 2.2数据库群集9 2.3数据库实例11 3.数据库兼容平台12 3.1兼容的CPU12 3.2兼容的操作系统12 4.多模式兼容技术(MMC)14 5.Halo数据库部署方式16 5.1单机部署方式16 5.2读写部署方式16 5.3DLB部署方式16 5.4HDS部署方式17 6.高可用解决方案19 7.备份与恢复21 7.1逻辑备份与恢复21 7.2物理备份与恢复21 8.复制技术22 8.1物理复制22 8.2逻辑复制22 8.3级联复制22 8.4复制槽23 8.5同步复制23 8.6可查询从库24 8.7分组复制(MGR)24 9.接口管理工具26 9.1HaloJDBC26 9.2HaloDOTNET26 9.3Halo数据库可视化开发管理工具软件26 10.迁移能力27 11.技术服务28 1.产品简介 1.1产品概述 杭州易景数通科技有限公司(以下简称“易景科技”),易景科技于2021年 10月正式获批成为“信息技术应用创新工作委员会”成员单位,拥有业内领先的专家团队,技术人员多来自于国内外金融机构和知名技术企业,具有丰富的金融行业系统开发、迁移经验。在多年金融行业的系统实践基础上,我们研发打造出了一款完全自主可控的羲和(Halo)通用数据库产品,此产品已入选信息技术应用创新工作委员会图谱。 羲和(Halo)数据库代码率100%完全自主可控,并且还开发了迁移评估、数据迁移、监控、高可用等工具,从而使得羲和(Halo)数据库拥有丰富的功能可选项,满足金融、政府、医疗、军工等全行业对可靠性、高并发、强一致性的业务需求。 1.2产品能力 σ先进的多平台兼容能力 •独有的多模式兼容技术(MMC),针对Oracle、SQLServer、MySQL、PostgreSQL、Db2等数据库上构建的应用系统,能大幅减少应用代码的修改量甚至不修改应用代码即可完成迁移,并且无任何性能损耗; •现有系统快速完成迁移; •快速、低成本、大规模替换; •开发人员保留原有开发习惯,快速适应。 π先进的内核架构 •业内率先提出的插件式内核架构,高度可扩展。同时提供优异的容灾能力,独有的分组复制能力,不影响性能的同时实现异地容灾,并且达到RPO=0。 ⋈全场景覆盖 新一代高性能安全自主可控全场景通用型统一数据库。通过配置的方式,可部署成单机、主从HA、1主多从、DLB、HDS等,从而适配不同的应用场景,打造全场景覆盖的能力,满足企业大部分数据存储处理需求,从而消除数据孤岛,降低系统复杂度,保护企业既有投资,降低企业成本。同时支持x86、arm等混合部署平台。 1.3功能简介 产品功能介绍 功能 详细说明 数据类型 数值类型、字符类型、日期/时间类型、BOOL类型、二进制大对象类型、高级数据类型 字段缺省值 字段缺省值 自增及序列 自增列、序列 数据定义 表定义、约束定义、虚拟列、注释、TRUNCATE表、表的填充率设置(fillfactor) 索引定义 B-Tree索引、Hash索引、组合索引、唯一索引、表 达式索引、部分索引 视图定义 视图定义 表连接 内连接、左/右连接、全连接 函数、存储过程 自定义函数、自定义聚合/窗口函数、自定义存储过程 触发器 行级触发器、语句级触发器、时间触发器 类型转换 强制类型转换、自定义类型转换 字符集 GBK字符集、GB18030字符集 全局表fillfactor 全局表fillfactor 用户自动锁定 登录失败一定次数后用户自动锁定 多模运行方式 支持多种兼容模式运行 多平台兼容 兼容ORACLE、MYSQL、DB2、PostgreSQL等主流的数据库 备份、恢复 逻辑备份恢复、物理备份恢复、宕机数据零丢失 安全性 安全审计功能、数据库访问白名单控制能力、用户输入三次密码锁账号、性能分析工具(HWR)报告、本机使用账号密码登陆、修改用户密码过期、密码复杂度策略、资源控制级别、自动收集统计信息触发条件 数据库迁移 Web迁移平台 WEB管理端 数据备份、监控管理、报警管理等 3.数据库体系结构简介 3.1Halo数据库系统体系结构 数据库管理系统是任何信息管理系统的关键系统。 Halo数据库由数据库实例和数据库群集组成: 数据库实例:一系列内存和后台进程的集合。 数据库群集:数据库文件的集合。可以独立于数据库实例而存在。 图2-1Halo数据库体系结构 图2-1描述了Halo数据库的体系结构。数据库实例主要包含共享内存区域、本地内存区域和一系列后台进程。其中共享内存区域主要由共享缓存、事务日志缓存构成。后台进程主要由BackgroundWriter(数据写进程)、WAL Write(r 事务日志写进程)、Checkpointe(r 检查点进程)、StatisticCollector (统计信息收集进程)、Autovacuum(自动清理进程)以及BackendProcess(会话进程)等构成。数据库群集主要由数据文件、事务日志文件及其它一些辅助文件组成。 3.2数据库群集 在Halo数据库体系中,数据库群集(DatabaseCluster)类似一个容器,在该容器内可以创建多个独立的数据库,分别对应不同的系统,即多租户。数据库群集初始化后,会创建3个默认的数据库:halo0root、template1和template0。 halo0root:管理库,群集管理使用,请不要删除。 template1:正如其名称所示,这是一个模板库,后面通过CREATEDATABASE命令创建的库默认都以它为模板进行创建。 template0:也是一个模板库。和template1的区别在于,通过template1创建的库部分库属性,如字符集是无法更改的。而通过template0就可以。 数据库 在Halo中,数据库(Database)是真正存储数据的地方,可以使用CREATEDATABASE命令来创建一个数据库。 一个数据库通常包含多种不同类型的对象: 表 索引 视图 函数 存储过程 触发器 序列 约束 其中表通常是最基本的对象。除了上述类型的对象外,可能还会有用户自定义类型、外部表、用户自定义操作符、外键等。 数据存储结构 在Halo数据库中,数据库群集是一组数据库的集合。每个数据库又是一组对象的集合。 图2-2数据库存储结构 图2-2描述了这种关系。其中,表的数据文件内部又被划分为固定长度的页 (Page),通常为8KB。每个文件中的页从0开始按顺序编号,该编号即为页号。页通常又被划分为页头和数据,即PageLayout中的内容。数据按行 (Row)进行存储,每一行又被划分为行头和实际数据,即RowLayout中的内容。索引的布局与表的布局类似。 3.3数据库实例 数据库实例由内存区域和进程组成。Halo数据库的核心设计思想是插件式内核,这也是Halo数据库成为新一代统一数据库的关键。 图2-3Halo数据库实例架构 图2-3描述了Halo数据库实例的主要成分。通过插件式内核的设计,可以非常灵活的实现多种协议的兼容、多种语法的兼容、以及分布式存储引擎 (HFSX,发展中技术)的支持等,这个重要特性也是Halo能够称之为新一代统一数据库的重要原因。 4.数据库兼容平台 4.1兼容的CPU Halo数据库兼容多种CPU平台,能够满足各种不同的需求。 表3-1兼容的CPU平台 CPU体系 CPU平台 是否兼容 x86 兆芯 是 海光 是 AMD 是 Intel 是 arm 鲲鹏 是 飞腾 是 MIPS 龙芯 是 Alpha 申威 是 4.2兼容的操作系统 Halo数据库兼容多种主流操作系统,能够满足各种不同的需求。 表3-2兼容的操作系统 操作系统 是否兼容 银河麒麟 是 中标麒麟 是 统信 是 openEuler 是 中科方德 是 凝思安全操作系统 是 Ubuntu 是 RHEL/CentOS 是 FreeBSD 是 5.多模式兼容技术(MMC) 多模引擎技术 为我司独创的技术,通过原生的内核级实现多平台的兼容能力。针对在Oracle、DB2、SQLServer、MySQL、PostgreSQL等数据库上构建的系统,能大幅减少应用代码的修改量。根据目前的迁移实践的结果表明,至少可以减少98%以上甚至不修改代码,即可完成系统的迁移,从而极大的降低了迁移成本和时间,同时也大大降低了迁移风险,也保护了既有投资。 多模引擎包含以下四大组件: •通信协议 •编译引擎 •优化引擎 •执行引擎 其中通信协议负责服务端与客户端的通信连接及交互;编译引擎负责SQL语句的语法和语义解析;优化引擎负责执行计划的生成;执行引擎负责执行计划的执行。 每个多模引擎都是从编译到优化最后到执行完整的实现,因而多模引擎不仅仅只是语法层面的浅层次兼容,而是从数据库协议、语法解析、优化器、执行器全方面的深度的兼容,针对在Oracle、Db2、MySQL、SQLServer、PostgreSQL等数据库上构建的系统能够实现平滑的迁移。 二次解析技术 在多模引擎的基础上,同时还拥有独特的二次解析技术: ①SQL经兼容引擎正确解析后,将解析结果传送给下一组件进行执行处理 ②兼容引擎无法正确处理SQL,兼容引擎将SQL传送给标准引擎做进一步解析(可配置) 注:该功能为可选,通过配置方式实现。 使用二次解析技术可以使得兼容引擎可以轻量化设计与实现,将共有的功能交由标准引擎处理。 6.Halo数据库部署方式 6.1单机部署方式 Halo数据库可以以单实例的方式部署,既可以将应用和数据库部署在同一台机器上,也可以将应用和数据库分开部署。该部署方式对硬件要求极低。 6.2读写部署方式 采用本地存储的方式实现读写集群。由于写只发生在RW节点,从而避免了分布式锁的开销,可能获得比RAC更优的性能表现,且更易扩展。可用性相比RAC稍差一点点。该解决方案适合大多数应用场景。 6.3DLB部署方式 DLB技术具有如下特点: 采用数算分离架构 条件智