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

文档序号:9673000阅读:207来源:国知局
一种数据库故障时的数据存储方法和设备的制造方法
【技术领域】
[0001]本申请涉及了互联网技术领域,尤其是涉及了一种数据存储方法和设备,特别是涉及了一种数据库故障时的数据存储方法和设备。
【背景技术】
[0002]业务处理服务器在收到来自上游服务器的业务请求之后,对业务请求进行业务处理,并利用业务处理的结果更新主用数据库中存储的数据值。例如,主用数据库主要用于存储账户余额,上游服务器用于对用户的支付行为进行处理时,假如用户A的支付行为是消费了 100元,则上游服务器向业务处理服务器发送业务请求,该业务请求用于将用户A的账户余额减100元。业务处理服务器在收到该业务请求后,利用业务请求进行业务处理,即业务处理为将用户A的账户余额减100元。进一步的,假设用户A在主用数据库中对应的账户余额为1000元,则业务处理服务器需要将用户A在主用数据库中存储的账户余额1000元减100元,将主用数据库中存储的用户A的账户余额更新为900元。
[0003]现有技术中,当主用数据库发生故障时,需要停止通过主用数据库提供服务,并等待主用数据库恢复,一直到主用数据库恢复后,才继续通过主用数据库提供服务,以保障数据的准确性。但是,当主用数据库发生故障时,业务处理服务器将无法获取到主用数据库中的数据值,也无法基于主用数据库中存储的数据值进行业务处理,从而导致业务中断,影响用户使用感受。

【发明内容】

[0004]本申请实施例提供一种数据库故障时的数据存储方法和设备,以在主用数据库发生故障时,避免业务发生中断,并可以提高用户的使用感受。
[0005]本申请实施例提供一种数据库故障时的数据存储方法,主用数据库中存储的数据值需要在Μ秒之内同步到读数据库中,所述方法包括以下步骤:
[0006]当主用数据库发生故障时,业务处理服务器确定Μ秒之内的业务请求,并对所述业务请求进行业务处理,以得到对应的业务标识以及数据变动值;
[0007]所述业务处理服务器判断备用数据库中是否存储有对应于所述业务标识的数据值;如果否,则所述业务处理服务器利用所述读数据库中存储的数据值以及所述数据变动值确定对应于所述业务标识的准确数据值;
[0008]所述业务处理服务器将所述业务标识以及所述准确数据值存储到所述备用数据库中,以通过所述备用数据库中存储的数据值提供服务。
[0009]所述业务处理服务器确定Μ秒之内的业务请求的过程,具体包括:
[0010]所述业务处理服务器通知上游服务器将Μ秒之内发起的业务请求重新发起一次,由所述上游服务器重新发送Μ秒之内已经发起过的业务请求;
[0011]所述业务处理服务器接收来自所述上游服务器的业务请求,并确定所述业务请求为所述上游服务器重新发送的Μ秒之内已经发起过的业务请求。
[0012]所述业务处理服务器判断备用数据库中是否存储有对应于所述业务标识的数据值之前,所述方法还包括:
[0013]所述业务处理服务器判断所述读数据库中是否存储有对应于所述业务标识的数据值;如果已经存储有对应于所述业务标识的数据值,则确定对应于所述业务标识的准确数据值已经存储在所述读数据库中,并丢弃当前得到的业务标识以及数据变动值;如果没有存储对应于所述业务标识的数据值,则执行判断备用数据库中是否存储有对应于所述业务标识的数据值的步骤。
[0014]所述业务处理服务器判断备用数据库中是否存储有对应于所述业务标识的数据值之后,所述方法还包括:
[0015]如果所述备用数据库中已经存储有对应于所述业务标识的数据值,则所述业务处理服务器确定对应于所述业务标识的准确数据值已经存储在所述备用数据库中,并丢弃当前得到的业务标识以及数据变动值。
[0016]所述业务处理服务器利用所述读数据库中存储的数据值以及所述数据变动值确定对应于所述业务标识的准确数据值的过程,具体包括:
[0017]当所述读数据库中没有存储对应于所述业务标识的数据值时,所述业务处理服务器获得所述业务请求在所述读数据库中对应的数据值,并确定所述业务请求在所述读数据库中对应的数据值与所述数据变动值之和为对应于所述业务标识的准确数据值;或者,当所述读数据库中已经存储有对应于所述业务标识的数据值时,所述业务处理服务器确定所述读数据库中存储的对应于所述业务标识的数据值为对应于所述业务标识的准确数据值。
[0018]所述业务处理服务器将所述业务标识以及所述准确数据值存储到所述备用数据库中,之后还包括:
[0019]当主用数据库故障恢复时,所述业务处理服务器将备用数据库中存储的数据值恢复到主用数据库中,并通过主用数据库中存储的数据值提供服务。
[0020]本申请实施例提供一种业务处理服务器,主用数据库中存储的数据值需要在Μ秒之内同步到读数据库中,所述业务处理服务器具体包括:
[0021 ] 获得模块,用于当主用数据库发生故障时,确定Μ秒之内的业务请求,并对所述业务请求进行业务处理,以得到对应的业务标识以及数据变动值;
[0022]判断模块,用于判断备用数据库中是否存储有对应于业务标识的数据值;
[0023]确定模块,用于当判断结果为否时,利用所述读数据库中存储的数据值以及所述数据变动值确定对应于所述业务标识的准确数据值;
[0024]存储模块,用于将所述业务标识以及所述准确数据值存储到所述备用数据库中,以通过所述备用数据库中存储的数据值提供服务。
[0025]所述获得模块,具体用于在确定Μ秒之内的业务请求时,通知上游服务器将Μ秒之内发起的业务请求重新发起一次,由上游服务器重新发送Μ秒之内已经发起过的业务请求;接收来自所述上游服务器的业务请求,并确定所述业务请求为所述上游服务器重新发送的Μ秒之内已经发起过的业务请求。
[0026]所述判断模块,进一步用于在判断备用数据库中是否存储有对应于所述业务标识的数据值之前,判断所述读数据库中是否存储有对应于所述业务标识的数据值;如果已经存储有对应于所述业务标识的数据值,则确定对应于所述业务标识的准确数据值已经存储在所述读数据库中,并丢弃当前得到的业务标识以及数据变动值;如果没有存储对应于所述业务标识的数据值,则执行判断备用数据库中是否存储有对应于所述业务标识的数据值的过程。
[0027]所述判断模块,进一步用于在判断所述备用数据库中是否存储有对应于所述业务标识的数据值之后,如果所述备用数据库中已经存储有对应于所述业务标识的数据值,则确定对应于所述业务标识的准确数据值已经存储在所述备用数据库中,并丢弃当前得到的业务标识以及数据变动值。
[0028]所述确定模块,具体用于在利用所述读数据库中存储的数据值以及所述数据变动值确定对应于所述业务标识的准确数据值时,当所述读数据库中没有存储对应于所述业务标识的数据值时,获得所述业务请求在所述读数据库中对应的数据值,并确定所述业务请求在所述读数据库中对应的数据值与所述数据变动值之和为对应于所述业务标识的准确数据值;或者,当所述读数据库中已经存储有对应于所述业务标识的数据值时,确定所述读数据库中存储的对应于所述业务标识的数据值为对应于所述业务标识的准确数据值。
[0029]所述存储模块,还用于在将所述业务标识以及所述准确数据值存储到所述备用数据库之后,当主用数据库故障恢复时,将备用数据库中存储的数据值恢复到主用数据库中,并通过主用数据库中存储的数据值提供服务。
[0030]与现有技术相比,本申请实施例至少具有以下优点:本申请实施例中,当主用数据库发生故障时,业务处理服务器能够通过读数据库中存储的数据值确定准确数据值,并将准确数据值存储到备用数据库中,从而在主用数据库发生故障且等待主用数据库恢复的过程中,能够通过备用数据库中存储的数据值提供
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1