一种基于数据库事务可信链的校验方法、设备及介质与流程
本技术涉及数据库校验,尤其涉及一种基于数据库事务可信链的校验方法、设备及介质。
背景技术:
1、数据库管理系统作为信息系统的核心基础设施,承载着关键业务数据的存储、处理与恢复职责。
2、为保证数据在异常情况下的可恢复性,数据库管理系统普遍采用预写日志(wal)机制:数据页修改落盘前,先将修改操作以wal记录顺序写入日志文件;数据库崩溃时通过重放wal恢复至一致状态。为支持时间点恢复与主备复制,数据库还通过归档模式参数与归档命令,将已写满的wal文件复制至归档位置,备库获取并回放归档wal以实现与主库同步。
3、然而,在上述初始化、启动、运行、wal归档、事务恢复和主备同步过程中,数据库执行文件、动态库、初始化参数、wal日志文件、归档日志以及数据页面存在被非法修改、替换、删除或伪造的安全风险,一旦发生此类篡改,将导致数据库运行环境不可信、事务日志链路不完整、wal回放结果不可验证的问题。
4、但现有数据库完整性校验通常只针对单一对象进行校验,例如仅校验可执行文件、仅校验数据页、仅校验wal文件或仅依赖操作系统权限控制,该类方法彼此孤立且只能事后核查,难以对数据库事务恢复所依赖的整体链路的可信性作出有效判断。
技术实现思路
1、本技术实施例提供了一种基于数据库事务可信链的校验方法、设备及介质,用于解决如下技术问题:现有数据库完整性校验通常只针对单一对象进行校验,彼此孤立且只能事后核查,难以对数据库事务恢复所依赖的整体链路的可信性作出有效判断。
2、本技术实施例采用下述技术方案:
3、本技术实施例提供一种基于数据库事务可信链的校验方法。包括,在数据库初始化阶段,基于数据库安装目录中的预设关键目录与生效的关键启动参数,构建数据库可信基线文件;响应数据库启动指令,在数据库服务进程启动之前,基于可信基线文件执行前置一致性校验;校验通过后,在数据库业务运行过程中,生成各事务的预写日志记录的可信摘要,并根据不同可信摘要之间的关联关系,将各事务的预写日志记录串联为可信日志链;对预写日志进行归档,确定已归档日志文件的完整性摘要,并将完整性摘要写入归档校验记录;响应于运行时完整性校验请求,将各已归档日志文件重新计算得到实际完整性摘要,并将实际完整性摘要与归档校验记录中的完整性摘要进行比对,并基于可信日志链对各预写日志记录进行连续性验证,以基于比对结果与验证结果,确定数据库事务可信链的可信性。
4、在本技术的一种实现方式中,在数据库初始化阶段,基于数据库安装目录中的预设关键目录与生效的关键启动参数,构建数据库可信基线文件,具体包括:响应于数据库初始化完成指令,触发基线生成流程;遍历预设关键目录,基于各预设关键目录中的文件内容,确定出参考目录摘要,以基于参考目录摘要生成运行环境可信基线文件;获取数据库初始化阶段生效的关键启动参数,基于关键启动参数的参数值及参数属性信息,生成启动参数可信基线文件;其中,参数属性信息至少包括参数名、参数类型以及生效方式;基于运行环境可信基线文件与启动参数可信基线文件,得到数据库可信基线文件。
5、在本技术的一种实现方式中,基于可信基线文件执行前置一致性校验,具体包括:当检测到数据库启动或者重启命令中携带运行环境校验参数时,确定出各预设关键目录对应的当前目录摘要,并将当前目录摘要与运行环境可信基线文件中记录的参考目录摘要进行比对,得到目录校验结果;若目录校验结果为不一致,则阻止启动数据库服务进程并输出错误信息;若目录校验结果为一致,则记录校验日志并启动数据库服务进程。
6、在本技术的一种实现方式中,基于可信基线文件执行前置一致性校验,具体包括:若预设全局配置参数的取值为开启,则读取启动参数可信基线文件,获取当前生效的关键启动参数的实际值,并将实际值与启动参数可信基线文件中记录的参数值逐参数进行比对;若比对结果为不一致,则上报告警信息,并根据预设策略选择性地阻止启动数据库服务进程;若比对结果为一致,则记录校验日志并继续启动数据库服务进程。
7、在本技术的一种实现方式中,生成各事务的预写日志记录的可信摘要,并根据不同可信摘要之间的关联关系,将各事务的预写日志记录串联为可信日志链,具体包括:在预写日志写入过程中,获取各事务对应的前序摘要以及记录特征信息,并将前序摘要以及记录特征信息组合后进行哈希函数运算,得到各事务预写日志记录的可信摘要;其中,记录特征信息至少包括日志序列号、记录内容以及生成时间,前序摘要为前一条相邻事务预写日志记录的可信摘要;将各事务的可信摘要作为其后相邻事务的预写日志记录的前序摘要,将各条事务的预写日志记录按生成顺序依次关联,以构建可信日志链。
8、在本技术的一种实现方式中,对预写日志进行归档,确定已归档日志文件的完整性摘要,并将完整性摘要写入归档校验记录,具体包括:执行归档命令将预写日志文件复制至归档位置;判断归档是否成功;若归档失败,则不记录归档校验记录并结束;若归档成功,则调用设置于预写日志归档进程内的归档回调函数,并向归档回调函数传入已归档预写日志文件的全路径;通过归档回调函数确定出已归档预写日志文件的完整性摘要,并将全路径、完整性摘要以及归档时间写入归档校验记录。
9、在本技术的一种实现方式中,响应于运行时完整性校验请求,将各已归档日志文件重新计算得到实际完整性摘要,并将实际完整性摘要与归档校验记录中的完整性摘要进行比对,并基于可信日志链对各预写日志记录进行连续性验证,以基于比对结果与验证结果,确定数据库事务可信链的可信性,具体包括:响应于运行时完整性校验请求,读取归档校验记录,获取其中所记录的各已归档日志文件及其对应的完整性摘要;基于归档校验记录中所记录的全路径,对各已归档日志文件进行定位;读取定位到的文件内容,并基于该文件内容重新计算已归档日志文件的实际完整性摘要,并将实际完整性摘要与归档校验记录中记录的完整性摘要进行逐一比对,得到文件级校验结果;基于可信日志链,对各预写日志记录进行连续性验证,并校验检查点边界,得到记录级校验结果;根据文件级校验结果与记录级校验结果,确定数据库事务可信链的可信性。
10、在本技术的一种实现方式中,基于比对结果与验证结果,确定数据库事务可信链的可信性之后,方法还包括:获取校验过程产生的异常信息;识别异常信息对应的异常等级;依据预先设定的各异常等级对应的处置规则,执行与异常等级相匹配的异常处置操作;其中,异常处置操作包括数据库启动控制、日志输出或者校验结果信息记录中的至少一种。
11、本技术实施例提供一种基于数据库事务可信链的校验设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:在数据库初始化阶段,基于数据库安装目录中的预设关键目录与生效的关键启动参数,构建数据库可信基线文件;响应数据库启动指令,在数据库服务进程启动之前,基于可信基线文件执行前置一致性校验;校验通过后,在数据库业务运行过程中,生成各事务的预写日志记录的可信摘要,并根据不同可信摘要之间的关联关系,将各事务的预写日志记录串联为可信日志链;对预写日志进行归档,确定已归档日志文件的完整性摘要,并将完整性摘要写入归档校验记录;响应于运行时完整性校验请求,将各已归档日志文件重新计算得到实际完整性摘要,并将实际完整性摘要与归档校验记录中的完整性摘要进行比对,并基于可信日志链对各预写日志记录进行连续性验证,以基于比对结果与验证结果,确定数据库事务可信链的可信性。
12、本技术实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,计算机可执行指令设置为:在数据库初始化阶段,基于数据库安装目录中的预设关键目录与生效的关键启动参数,构建数据库可信基线文件;响应数据库启动指令,在数据库服务进程启动之前,基于可信基线文件执行前置一致性校验;校验通过后,在数据库业务运行过程中,生成各事务的预写日志记录的可信摘要,并根据不同可信摘要之间的关联关系,将各事务的预写日志记录串联为可信日志链;对预写日志进行归档,确定已归档日志文件的完整性摘要,并将完整性摘要写入归档校验记录;响应于运行时完整性校验请求,将各已归档日志文件重新计算得到实际完整性摘要,并将实际完整性摘要与归档校验记录中的完整性摘要进行比对,并基于可信日志链对各预写日志记录进行连续性验证,以基于比对结果与验证结果,确定数据库事务可信链的可信性。
13、本技术实施例采用的上述至少一个技术方案能够达到以下有益效果:本技术实施例通过在数据库初始化阶段构建可信基线文件,使基线随建库动作自动生成并与数据库初始化流程内生耦合,为后续校验提供覆盖运行环境与启动参数的可信参照。在数据库服务进程启动之前基于该基线执行前置一致性校验,将事后核查转变为事前阻断,确保后续wal生成与归档行为建立在可信的运行环境与启动参数之上。在业务运行过程中为各预写日志记录生成可信摘要并串联为可信日志链,基于记录的链式依赖,使任意记录被修改、删除均导致后续摘要无法匹配,从而可靠识别日志链路被破坏。在运行阶段响应校验请求,将重新计算得到的实际完整性摘要与归档校验记录中的摘要进行比对,并基于可信日志链进行连续性验证,通过文件级比对与记录级验证两条互补的校验线,确定数据库事务可信链的可信性,使崩溃恢复与主备回放所依赖的日志基础可验证追溯。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com