一种数据库备份方法及装置制造方法及图纸

技术编号:33793023 阅读:49 留言:0更新日期:2022-06-12 14:50
本申请实施例提供一种数据库备份方法及装置,该方法包括:获取数据库变更脚本,所述数据库变更脚本中包含至少一条数据库变更语句;针对任意一条数据库变更语句,将所述数据库变更语句转换成对应的数据库查询语句;根据所述数据库查询语句从数据库中获取查询结果;根据所述查询结果和所述数据库变更语句对应的反向操作语句,生成针对所述数据库变更语句的数据库备份回滚语句;基于各数据库备份回滚语句,生成所述数据库变更脚本对应的数据库回滚脚本。用于节约存储资源,降低数据回滚对数据库性能的影响。库性能的影响。库性能的影响。

【技术实现步骤摘要】
一种数据库备份方法及装置


[0001]本申请涉及计算机
,尤其涉及一种数据库备份方法及装置。

技术介绍

[0002]近年来,随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出更高的要求。如,目前金融行业的大部分业务转至线上处理,相应的,会产生大量的线上数据存储在数据库。
[0003]MySQL(Structured Query Language,结构化查询语言)数据库是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样可以增加存储的速度并提高灵活性。随着互联网技术的推广和“大数据”时代的来临,数据更新速度快,数据的存储、备份、恢复功能也越来越受到人们的关注,如何优化数据库的备份方式,保证数据的存储、备份和恢复就成了当务之急。目前数据库的备份是在固定的时间点对整个数据库进行备份和回滚,过程中若出现问题,则整个数据库进行回滚。这种方式耗费大量存储资源,且影响数据库性能。
[0004]因此,现在亟需一种数据库备份方法,用于节约存储资源,降低数据回滚对数据库性能的影响。

技术实现思路

[0005]本申请实施例提供一种数据库备份方法,用于节约存储资源,降低数据回滚对数据库性能的影响。
[0006]第一方面,本申请实施例提供一种数据库备份方法,该方法包括:
[0007]获取数据库变更脚本,所述数据库变更脚本中包含至少一条数据库变更语句;
[0008]针对任意一条数据库变更语句,将所述数据库变更语句转换成对应的数据库查询语句;根据所述数据库查询语句从数据库中获取查询结果;根据所述查询结果和所述数据库变更语句对应的反向操作语句,生成针对所述数据库变更语句的数据库备份回滚语句;
[0009]基于各数据库备份回滚语句,生成所述数据库变更脚本对应的数据库回滚脚本。
[0010]上述方法中,获取数据库变更脚本,数据库变更脚本中包含至少一条数据库变更语句;针对任意一条数据库变更语句,将数据库变更语句转换成对应的数据库查询语句。如此,数据库变更脚本中的每一条数据库变更语句都有对应的数据库查询语句,可以准确查数据库得到对应每条数据库变更语句对应的需要发生变更的数据,也就是得到查询结果。可以保证获取的需要发生变更数据的精准性。后续根据得到的查询结果生成的数据库备份回滚语句都是针对需要发生变更的数据库原数据的精准备份。相比于现有技术中,对整个数据库进行备份来说,本申请这种精准备份方式大大降低备份存储空间资源浪费,以及消除现有技术中因为大量备份并不需要备份和变更的数据导致的服务器性能下降,服务器运行速度下降等不良影响,保证服务器中其他服务运行可靠性。根据查询结果和数据库变更
语句对应的反向操作语句,生成针对数据库变更语句的数据库备份回滚语句。如此,根据数据库变更语句对应的反向操作语句(如,删除数据语句的反向操作语句是插入数据语句,新增字段语句的反向操作语句是删除字段语句)和查询结果生成数据库备份回滚语句,则可以将删除的数据在回滚的时候插入数据库,将数据库中新增的字段删除,以实现数据库数据回滚,该过程中,数据库的回滚也是针对数据库备份回滚语句精准回滚,同样可以降低数据库回滚的资源浪费,保证服务器性能。该过程中,不论是数据库备份还是数据库回滚都做到了数据的精确备份和回滚,可以在保证服务器性能的前提下,进而保证服务器系统与对接系统的正常运行,提高服务可靠性。
[0011]可选的,将所述数据库变更语句转换成对应的数据库查询语句,包括:解析所述数据库变更语句,得到所述数据库变更语句中的选取数据条件,根据所述选取数据条件生成所述数据库查询语句,所述选取数据条件用于从数据库中选取所述数据库变更语句对应的待变更对象的关联数据。
[0012]上述方法中,数据库变更语句中包含选取数据条件,根据选取数据条件生成的数据库查询语句,可以基于选取数据条件准确的查询到需要变更的数据库原数据

待变更对象的关联数据。如此,精准的数据查询得到精准的查询结果,基于查询结果得到的数据库备份回滚语句也是精准的,达到无论是数据库备份还是数据库回滚都是针对待变更对象的关联数据进行的目的,进一步,降低资源浪费,保证服务器性能,提高服务可靠性。
[0013]可选的,所述数据库变更语句为更新数据语句,根据所述查询结果和所述数据库变更语句对应的反向操作语句,生成针对所述数据库变更语句的数据库备份回滚语句,包括:
[0014]解析所述更新数据语句的更新数据范围,判断所述更新数据范围和所述查询结果中的查询数据范围;
[0015]在所述更新数据范围大于等于所述查询数据范围,根据所述更新数据语句和所述查询结果生成数据库备份回滚语句;
[0016]在所述更新数据范围小于所述查询数据范围,则按照所述更新数据语句中的顺序关键字确定所述查询数据范围对应的子查询结果,根据所述更新数据语句和所述子查询结果生成数据库备份回滚语句。
[0017]上述方法中,若更新数据范围大于等于查询数据范围,则基于更新数据语句的更新数据范围进行更新,可以对查询数据范围内的所有待变更对象的关联数据进行变更,变更数据仍然可控。若更新数据范围小于查询数据范围,更新数据语句不根据一定限制,而对查询数据范围内的所有待变更对象的关联数据进行变更,会造成变更数据不可控。因此,根据顺序关键字先确定查询数据范围对应的子查询结果,该子查询结果的数据范围可以是与更新数据范围相等的,也可以是小于更新数据范围的。如此,保证变更数据的可控性。另外,顺序关键字只是一种确定子查询结果的方式,还可以通过其他方式,如,基于字符数量从小到大或从大到小排序,选取与更新数据范围相等或小于的数据范围的数据作为子查询结果,这里对子查询结果的具体确定方式具体不做限制,可以根据需要具体设定。另外,还可能存在一种情况,若更新数据语句的更新数据范围小于查询数据范围,且查询数据范围中不存在顺序关键字,为防止更新数据范围不可控,则可以生成异常提示信息,且提示信息中明确不建议执行的具体信息等。
[0018]可选的,所述数据库变更语句为插入数据语句或更新数据语句,将所述数据库变更语句转换成对应的数据库查询语句之前,还包括:
[0019]解析所述插入数据语句或所述更新数据语句的选取数据条件得到数据库表名;
[0020]确定主键容器中是否包含所述数据库表名对应的主键,若否,则根据所述数据库表名生成主键查询语句,通过所述主键查询语句从所述数据库中获取所述数据库表名对应的主键,将获取的主键存储在所述主键容器中。
[0021]上述方法中,若插入数据语句或更新数据语句的选取数据条件的数据库表名对应的主键在主键容器中获取不到,则在生成插入数据语句或更新数据语句对应的数据库备份回滚语句时,可能造成无法针对主键生成对应的数据库备份回滚语句。因此,可以在主键容器中获取不到数据库表名对应的主键时,从数据库中获取数据库表名本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库备份方法,其特征在于,所述方法包括:获取数据库变更脚本,所述数据库变更脚本中包含至少一条数据库变更语句;针对任意一条数据库变更语句,将所述数据库变更语句转换成对应的数据库查询语句;根据所述数据库查询语句从数据库中获取查询结果;根据所述查询结果和所述数据库变更语句对应的反向操作语句,生成针对所述数据库变更语句的数据库备份回滚语句;基于各数据库备份回滚语句,生成所述数据库变更脚本对应的数据库回滚脚本。2.如权利要求1中所述的方法,其特征在于,将所述数据库变更语句转换成对应的数据库查询语句,包括:解析所述数据库变更语句,得到所述数据库变更语句中的选取数据条件,根据所述选取数据条件生成所述数据库查询语句,所述选取数据条件用于从数据库中选取所述数据库变更语句对应的待变更对象的关联数据。3.如权利要求1中所述的方法,其特征在于,所述数据库变更语句为更新数据语句,根据所述查询结果和所述数据库变更语句对应的反向操作语句,生成针对所述数据库变更语句的数据库备份回滚语句,包括:解析所述更新数据语句的更新数据范围,判断所述更新数据范围和所述查询结果中的查询数据范围;在所述更新数据范围大于等于所述查询数据范围,根据所述更新数据语句和所述查询结果生成数据库备份回滚语句;在所述更新数据范围小于所述查询数据范围,则按照所述更新数据语句中的顺序关键字确定所述查询数据范围对应的子查询结果,根据所述更新数据语句和所述子查询结果生成数据库备份回滚语句。4.如权利要求1中所述的方法,其特征在于,所述数据库变更语句为插入数据语句或更新数据语句,将所述数据库变更语句转换成对应的数据库查询语句之前,还包括:解析所述插入数据语句或所述更新数据语句的选取数据条件得到数据库表名;确定主键容器中是否包含所述数据库表名对应的主键,若否,则根据所述数据库表名生成主键查询语句,通过所述主键查询语句从所述数据库中获取所述数据库表名对应的主键,将获取的主键存储在所述主键容器中。5.如权利要求1中所述的方法,其特征在于,根据所述查询结果和所述数据库变更语句对应的反向操作语句,生成针对所述数据库变更语句的数据库备份回滚语句,包括:确定所述数据库变更语句对应的反向操作语句;将所述查询结果中的查询值设置为所述反向操作语句的变更对象,从而生成所述数据库变更语句的数据库备份回滚语句。6.如权利要求5中所述的方法,其特征在于,所述数据库变更语句为删除数据语句;根据所述数据库查询语句从数据库中获取查询结果,包括:根据所述数据库查询语句从数据库中获取所述删除数据语句对应的各字段的值;确定所述数据库变更语句对应的反向操作语句,包括:确定所述数据库变更语句对应的反向操作语句为插入数据语句。7.如权利要求5中所述的方法,其特征在于,所述数据库变更语句为插入数据语句;根据所述数据库查询语句从数据库中获取查询结果,包括:
在从所述数据库中未查询到所述数据库查询语句对应的数据后,将从所述插入数据语句中获取的数据库表名和主键作为查询结果;确定所述数据库变更语句对应的反向操作语句,包括:确定所述数据库变更语句对应的反向操作语句为删除数据语...

【专利技术属性】
技术研发人员:杨成江旻杨杨吴磊
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1