一种数据库故障时的数据存储方法和设备的制造方法_3

文档序号:9673000阅读:来源:国知局
数据值”的步骤,即执行上述步骤202。如果读数据库中没有存储对应于该业务标识的数据值,则业务处理服务器需要执行“判断备用数据库中是否存储有对应于业务标识的数据值”的步骤,即执行上述步骤202。
[0053]步骤203,业务处理服务器确定对应于该业务标识的准确数据值已经存储在备用数据库中,并丢弃当前得到的业务标识以及数据变动值。
[0054]本申请实施例中,当备用数据库中已经存储有对应于该业务标识的数据值时,则说明对应于该业务标识的准确数据值已经存储在备用数据库中,即之前已经在备用数据库中存储了准确数据值以及业务标识,因此,业务处理服务器不再需要将业务标识以及对应的准确数据值存储到备用数据库中,业务处理服务器可以直接丢弃当前得到的业务标识以及数据变动值。
[0055]步骤204,业务处理服务器利用读数据库中存储的数据值以及数据变动值确定对应于该业务标识的准确数据值,并将该业务标识以及该准确数据值存储到备用数据库中,以通过该备用数据库中存储的数据值提供服务。
[0056]本申请实施例中,当主用数据库发生故障时,由于主用数据库未发生故障时,主用数据库中存储的数据值需要在Μ秒之内同步到读数据库中,因此主用数据库发生故障之前的Μ秒之前存储的所有数据值均已经同步到读数据库中,这些数据值不再需要存储到备用数据库中。对于主用数据库发生故障之前的Μ秒内存储的数据值,可能已经同步到读数据库中,也可能还没有同步到读数据库中。因此,主用数据库发生故障之前的Μ秒内存储的数据值,需要存储到备用数据库中,以通过备用数据库提供准确的数据值。为了将主用数据库发生故障之前的Μ秒内存储的数据值存储到备用数据库中,执行上述步骤201-步骤204,以最终将业务标识以及准确数据值存储到备用数据库。
[0057]本申请实施例中,当主用数据库发生故障时,对于主用数据库发生故障之后产生的数据值,业务处理服务器直接在备用数据库中存储相应的数据值。
[0058]本申请实施例中,业务处理服务器利用读数据库中存储的数据值以及数据变动值确定对应于业务标识的准确数据值的过程,具体包括但不限于如下方式:当读数据库中没有存储对应于业务标识的数据值时,业务处理服务器获得业务请求在读数据库中对应的数据值,并确定业务请求在读数据库中对应的数据值与数据变动值之和为对应于业务标识的准确数据值;或者,当读数据库中已经存储有对应于业务标识的数据值时,业务处理服务器确定读数据库中存储的对应于业务标识的数据值为对应于业务标识的准确数据值。
[0059]例如,业务处理服务器得到对应的业务标识为123456,得到对应的数据变动值为减100元之后,首先,业务处理服务器判断备用数据库中是否存储有对应于业务标识123456的数据值;其中,如果步骤201之前已经对业务请求1进行过业务处理,并将业务处理得到的业务标识123456和数据值存储到备用数据库中,则备用数据库中将存储有对应于业务标识123456的数据值;否则,备用数据库中将没有对应于业务标识123456的数据值。其次,假设备用数据库中没有对应于业务标识123456的数据值,则业务处理服务器判断读数据库中是否存储有对应于业务标识123456的数据值;当读数据库中没有存储对应于业务标识123456的数据值时,业务处理服务器获得业务请求在读数据库中对应的数据值,即用户Α的账户余额为1000元,并确定业务请求在读数据库中对应的数据值(1000元)与数据变动值(-100元)之和为对应于业务标识123456的准确数据值,即准确数据值为900元;当读数据库中已经存储有对应于业务标识123456的数据值时,业务处理服务器确定读数据库中存储的对应于业务标识123456的数据值(即用户A的账户余额为900元)为对应于业务标识123456的准确数据值,即准确数据值为900元。之后,业务处理服务器将业务标识123456以及准确数据值900元存储到备用数据库中。
[0060]本申请实施例中,业务处理服务器将业务标识和准确数据值存储到备用数据库后,当主用数据库故障恢复时,业务处理服务器将备用数据库中存储的数据值恢复到主用数据库中,并通过主用数据库中存储的数据值提供服务。
[0061]综上所述,本申请实施例至少具有以下优点:本申请实施例中,当主用数据库发生故障时,业务处理服务器能够通过读数据库中存储的数据值确定准确数据值,并将准确数据值存储到备用数据库中,从而在主用数据库发生故障且等待主用数据库恢复的过程中,能够通过备用数据库中存储的数据值提供服务,使得业务处理服务器可以从备用数据库中获得准确的数据值来进行业务处理,继而避免业务发生中断,并可以提高用户的使用感受。
[0062]实施例二
[0063]基于与上述方法同样的申请构思,本申请实施例还提供一种业务处理服务器,主用数据库中存储的数据值需要在Μ秒之内同步到读数据库中,如图3所示,所述业务处理服务器具体包括:获得模块11,用于当主用数据库发生故障时,确定Μ秒之内的业务请求,并对所述业务请求进行业务处理,以得到对应的业务标识以及数据变动值;判断模块12,用于判断备用数据库中是否存储有对应于业务标识的数据值;确定模块13,用于当判断结果为否时,利用所述读数据库中存储的数据值以及所述数据变动值确定对应于所述业务标识的准确数据值;存储模块14,用于将所述业务标识以及所述准确数据值存储到所述备用数据库中,以通过所述备用数据库中存储的数据值提供服务。
[0064]所述获得模块11,具体用于在确定Μ秒之内的业务请求时,通知上游服务器将Μ秒之内发起的业务请求重新发起一次,由上游服务器重新发送Μ秒之内已经发起过的业务请求;接收来自所述上游服务器的业务请求,确定所述业务请求为所述上游服务器重新发送的Μ秒之内已经发起过的业务请求。
[0065]所述判断模块12,进一步用于在判断备用数据库中是否存储有对应于所述业务标识的数据值之前,判断所述读数据库中是否存储有对应于所述业务标识的数据值;如果已经存储有对应于所述业务标识的数据值,则确定对应于所述业务标识的准确数据值已经存储在所述读数据库中,并丢弃当前得到的业务标识以及数据变动值;如果没有存储对应于所述业务标识的数据值,则执行判断备用数据库中是否存储有对应于所述业务标识的数据值的过程。
[0066]所述判断模块12,进一步用于在判断所述备用数据库中是否存储有对应于所述业务标识的数据值之后,如果所述备用数据库中已经存储有对应于所述业务标识的数据值,则确定对应于所述业务标识的准确数据值已经存储在所述备用数据库中,并丢弃当前得到的业务标识以及数据变动值。
[0067]所述确定模块13,具体用于在利用所述读数据库中存储的数据值以及所述数据变动值确定对应于所述业务标识的准确数据值时,当所述读数据库中没有存储对应于所述业务标识的数据值时,获得所述业务请求在所述读数据库中对应的数据值,并确定所述业务请求在所述读数据库中对应的数据值与所述数据变动值之和为对应于所述业务标识的准确数据值;或者,当所述读数据库中已经存储有对应于所述业务标识的数据值时,确定所述读数据库中存储的对应于所述业务标识的数据值为对应于所述业务标识的准确数据值。
[0068]所述存储模块14,还用于在将所述业务标识以及所述准确数据值存储到所述备用数据库之后,当主用数据库故障恢复时,将备用数据库中存储的数据值恢复到主用数据库中,并通过主用数据库中存储的数据值提供服务。
[0069]其中,本申请装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0070]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1