【技术实现步骤摘要】
一种数据回滚方法与装置
[0001]本申请涉及数据回滚
,具体而言,涉及一种数据回滚方法与装置。
技术介绍
[0002]PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统,近年来倍受各大中小企业喜爱并用于作为互联网产品的持久层方案,数据库的数据丢失或误操作问题,也同样困扰着PostgreSQL的用户,当数据未按预期结果发生变化时,往往需要对数据做紧急的修复或者回滚。而目前仍没有一种针对PostgreSQL的数据库表级即时回滚方法。
[0003]综上,现有技术中存在当PostgreSQL数据库的数据丢失或误操作时,无法进行数据回滚的问题。
技术实现思路
[0004]本申请的目的在于提供一种数据回滚方法与装置,以解决现有技术中存在的当PostgreSQL数据库的数据丢失或误操作时,无法进行数据回滚的问题。
[0005]为了实现上述目的,本申请实施例采用的技术方案如下:
[0006]第一方面,本申请实施例提供一种数据回滚方法,应用于服务器,所述数据回 ...
【技术保护点】
【技术特征摘要】
1.一种数据回滚方法,其特征在于,应用于服务器,所述数据回滚方法:利用PostgreSQL触发器,对数据库表的DML的操作事件进行监听;其中,所述操作事件包括增加事件、删除事件以及修改事件;对DML的操作事件进行数据封装,其中,不同DML的操作事件的数据封装不同;将进行数据封装后的操作事件存储至目标消息通道,其中,不同DML的操作事件对应的目标消息通道不同;监听所述目标消息通道,消费并解析目标消息通道的日志,并生成回滚脚本;当需要进行回滚操作时,利用所述回滚脚本进行数据回滚。2.如权利要求1所述的数据回滚方法,其特征在于,将进行数据封装后的操作时间存储至目标消息通道的步骤包括:当所述DML的操作事件为增加事件时,依据新增数据,将数据封装后的操作事件存储至第一目标消息通道;当所述DML的操作事件为修改事件时,依据更新前后数据的变化,将数据封装后的操作事件存储至第二目标消息通道;当所述DML的操作事件为删除事件时,依据删除前的数据,将数据封装后的操作事件存储至第三目标消息通道。3.如权利要求2所述的数据回滚方法,其特征在于,将进行数据封装后的操作事件存储至目标消息通道的步骤包括:根据进行数据封装后的操作事件的字段进行全匹配到唯一的ROW函数,以实现将数据存储至目标消息通道。4.如权利要求1所述的数据回滚方法,其特征在于,监听所述目标消息通道,消费并解析目标消息通道的日志,并生成回滚脚本的包括:将所述日志解析为对应的逆向脚本;在生成回滚脚本的步骤之后,所述方法还包括:将所述逆向脚本存储至redis中,redis存储采用sortset数据结构,key以[主节点IP或浮动IP+数据库名+表名+YYYYMMDD]命名,并设置过期策略,将逆向脚本作为value,数据变更时间戳作为sort。5.如权利要求4所述的数据回滚方法,其特征在于,redis采用cluster集群模式部署,在将所述逆向脚本存储至redis中的步骤之后,所述方法还包括:监控redis集群的实例状态,若异常则发出告...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。