【技术实现步骤摘要】
基于PostgreSQL数据库误操作恢复方法、装置、设备及介质
[0001]本专利技术涉及PostgreSQL数据库
,特别涉及一种基于PostgreSQL数据库误操作恢复方法、装置、设备及介质。
技术介绍
[0002]PostgreSQL(以下简称PG)数据库是世界上最先进的开源数据库,近几年其发展比较迅速,被越来越多的应用到各个行业和领域。在数据库的使用过程中,经常出现人工的误操作,导致一些数据的丢失等问题,针对上述问题,PG数据库可以通过预先做好的备份:物理备份和逻辑备份进行基于时间线的恢复,但往往需要停掉服务进行操作,代价很大。当前,已有技术提出了一种PG数据库的数据闪回查询及恢复方法、装置,该方法提出了一种延迟清理数据技术,然而在实现时仅限于基于表的行数据误操作恢复,其延迟时间受PG服务器配置的影响,记录的误操作有被抹去的风险,因此,其误操作数据的可恢复程度受限,并且一旦开启该功能将对所有数据库表的操作记录,缺少灵活性。
[0003]综上,如何在不停服的前提下实现误操作的恢复,克服PG误操作恢复时的不 ...
【技术保护点】
【技术特征摘要】
1.一种基于PostgreSQL数据库误操作恢复方法,其特征在于,包括:监测所述PostgreSQL数据库中的操作动作,并获取所述操作动作的操作信息;其中,所述操作动作包括对数据操纵语言的操作动作、基于数据定义语言删除表的操作动作和对所述PostgreSQL数据库的系统表的操作动作;基于所述操作信息创建相应的预设记录表;当所述PostgreSQL数据库中存在误操作时,对所述预设记录表中的内容进行筛选查询,以确定出所述误操作的数据信息;根据所述数据信息对所述PostgreSQL数据库进行恢复。2.根据权利要求1所述的基于PostgreSQL数据库误操作恢复方法,其特征在于,所述获取所述操作动作的操作信息,包括:获取所述数据操纵语言的操作表;相应的,所述基于所述操作信息创建相应的预设记录表,包括:判断所述操作表是否已经存在相应的第一记录表,如果是则删除所述第一记录表并重新创建与所述操作表对应的第二记录表,如果否则直接创建与所述操作表对应的第二记录表;判断所述PostgreSQL数据库中是否存在第一触发器函数,如果不存在所述第一触发器函数,则创建所述第一触发器函数;如果存在所述第一触发器函数,则判断是否存在作用于所述操作表的第一触发器;其中,所述第一触发器函数用于针对不同类型的类型命令对所述第二记录表执行不同的操作;所述第一触发器用于基于不同级别捕捉所述类型命令,并在所述类型命令作用于所述操作表后执行所述第一触发器函数;如果存在所述第一触发器,则开启所述第一触发器并执行所述第一触发器函数,然后根据所述类型命令对所述第二记录表执行不同的操作,以得到相应的预设记录表;如果不存在所述第一触发器,则创建所述第一触发器,然后执行所述开启所述第一触发器并执行所述第一触发器函数的步骤。3.根据权利要求1所述的基于PostgreSQL数据库误操作恢复方法,其特征在于,所述获取所述操作动作的操作信息,包括:获取基于数据定义语言在所述PostgreSQL数据库下删除表时对应的数据库名称和用户名称;相应的,所述基于所述操作信息创建相应的预设记录表,包括:根据所述数据库名称和所述用户名称确定删除表的目标数据库;加载所述目标数据库中的第一预设插件,并判断所述目标数据库中是否存在第二触发器函数;如果存在所述第二触发器函数,则通过第二触发器执行所述第二触发器函数,并基于归档模式表创建相应的预设记录表;如果不存在所述第二触发器函数,则创建所述第二触发器函数,然后执行所述通过所述第二触发器执行所述第二触发器函数的步骤。4.根据权利要求3所述的基于PostgreSQL数据库误操作恢复方法,其特征在于,所述通过所述第一预设插件基于预设更改规则更改所述非归档模式表的名称以及更改所述非归档模式表为所述归档模式表,包括:
通过所述第一预设插件基于随机数和时间戳的MD5编码串更改所述非归档模式表的名称以及更改所述非归档模式表为归档模式表。5.根据权利要求1所述的基于PostgreSQL数据库误操作恢复方法,其特征在于,所述获取所述操作动作的操作信...
【专利技术属性】
技术研发人员:张跃,刘刚,王阳,
申请(专利权)人:浪潮云信息技术股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。