【技术实现步骤摘要】
一种PostgreSQL数据库的数据闪回查询及恢复方法、装置
本公开属于PostgreSQL数据库的
,涉及一种PostgreSQL数据库的数据闪回查询及恢复方法、装置。
技术介绍
本部分的陈述仅仅是提供了与本公开相关的
技术介绍
信息,不必然构成在先技术。PostgreSQL数据库是世界上最先进的开源数据库,近几年其发展比较迅速,被越来越多的应用到各个行业和领域。在数据库使用的生产场景中,通常会遇到数据丢失、错误操作等问题,PostgreSQL数据库通常的解决方法是利用预先做好的数据逻辑备份或物理备份进行数据恢复,而且恢复的程度取决于备份与恢复的策略。但这种方法代价高,数据备份不仅会占用额外的数据空间,数据备份或恢复的过程中还比较耗时,造成数据库性能下降,而且在某些情况下可能还必须暂停数据库服务才能完成恢复操作。在使用PostgreSQL数据库时,存在用户偶然地进行了更新或删除数据的误操作的情况,但是若用上述数据恢复方法进行数据恢复显得有些“大材小用”。闪回查询技术是数据库恢复技术中的一种重要机制,在数据库发生逻辑错误时,能够快速并且最低成本的恢复。然而,闪回查询技术仅能够在Oracle数据库中实现,目前PostgreSQL数据库还没有闪回机制,Oracle数据库中的闪回查询技术无法直接挪用至PostgreSQL数据库,由于二者数据库机制不同,存在技术壁垒。因此,用户在使用PostgreSQL数据库偶然地进行了更新或删除数据的误操作时,仍然没有有效的数据恢复方法。
技术实现思路
针对现有技术中存在的不足,解决用户在使用PostgreSQL数据库进行了更新或 ...
【技术保护点】
1.一种PostgreSQL数据库的数据闪回查询方法,其特征在于,该方法包括:预设清理控制参数,基于MVCC机制在用户对数据库表进行更改或删除操作时,根据清理控制参数保留更改或删除的旧行数据;接收闪回查询语句,并根据预定义的语法解析规则进行语法解析,获得闪回查询指定的查询时间;根据查询时间在数据库表中查询,对保留的更改或删除的旧行数据进行可见性判断,返回符合条件的闪回查询数据。
【技术特征摘要】
1.一种PostgreSQL数据库的数据闪回查询方法,其特征在于,该方法包括:预设清理控制参数,基于MVCC机制在用户对数据库表进行更改或删除操作时,根据清理控制参数保留更改或删除的旧行数据;接收闪回查询语句,并根据预定义的语法解析规则进行语法解析,获得闪回查询指定的查询时间;根据查询时间在数据库表中查询,对保留的更改或删除的旧行数据进行可见性判断,返回符合条件的闪回查询数据。2.如权利要求1所述的一种PostgreSQL数据库的数据闪回查询方法,其特征在于,所述清理控制参数包括旧行数据保存时间参数和旧行数据查询保证参数。所述旧行数据保存时间参数为PostgreSQL数据库进行数据闪回查询时数据库表的旧行数据保存的最长时间;所述旧行数据查询保证参数为PostgreSQL数据库进行数据闪回查询时是否保证所述旧行数据可以被闪回查询到。3.如权利要求1所述的一种PostgreSQL数据库的数据闪回查询方法,其特征在于,所述保留的更改或删除的旧行数据包括执行自动清理数据库表的旧行数据时保留的更改或删除的旧行数据,具体方法步骤包括:判断所述清理控制参数中的旧行数据保存时间是否大于零,若是,进入下一步,否则,闪回功能关闭;对数据库表的旧行数据进行自动清理,对待清理数据库表的旧行数据进行逐行遍历,根据行数据的事物号获得提交时间,根据提交时间是否在旧行数据保存时间内判断每个数据表的行数据是否可以被清理;提交时间在旧行数据保存时间内,保留该行数据,否则自动清理该行数据。进一步地,所述保留的更改或删除的旧行数据包括执行手动清理数据库表的旧行数据时保留的更改或删除的旧行数据,具体方法步骤包括:判断所述清理控制参数中的旧行数据保存时间是否大于零,若是,进入下一步,否则,闪回功能关闭;对数据库表的旧行数据进行手动清理,根据清理控制参数中的旧行数据查询保证值判断是否可进行手动清理操作,若是,进行手动清理操作,否则进入下一步;对待清理数据库表的旧行数据进行逐行遍历,根据行数据的事物号获得提交时间,根据提交时间是否在旧行数据保存时间内判断每个数据表的行数据是否可以被清理;提交时间在旧行数据保存时间内,保留该行数据,否则清理该行数据。4.如权利要求1所述的一种PostgreSQL数据库的数据闪回查询方法,其特征在于,该方法还包括进行闪回版本查询:接收闪回版本查询语句,并根据预定义的语法解析规则进行语法解析,获得闪回版本查询指定的查询时间;根据查询时间在数据库表中查询,对保留的更改或删除的旧行数据进行可见性判断,返回符合条件的闪回版本查询数据。进一步地,所述根据预定义的语法解析规则进行语法解析获得事务号或查询时间,当获得事务号时,根据事务号获取查询时间;根据闪回查询语句获得的所述查询时间包括闪回查询中指定查询的时间值,根据闪回版本查询语句获得的所述查询时间包括闪回版本查询中指定的开始时间和结束时间。5.如权利要求4所述的一种PostgreSQL数据库的数据闪回查询方...
【专利技术属性】
技术研发人员:田兵,黄永厚,卢健,范翊,杨杰,
申请(专利权)人:瀚高基础软件股份有限公司,
类型:发明
国别省市:山东,37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。