一种合服的方法和装置的制造方法_2

文档序号:9217206阅读:来源:国知局
三数据库也可以与第一数据库在同一台服务器上,第二数据库在另一台服务器上。
[0026]本实施例中的合服工具安装于第一数据库所在的服务器上,合服工具包含一个进程,该进程独立于服务器中的其他进程例如游戏进程。合服工具通过该进程可以连接第一数据库、第二数据库以及第三数据库,进行记录的读取与写入操作。
[0027]步骤S104:在第一数据库与第二数据库运行过程中,服务器通过合服工具按照预先设定的提取规则,逐条将第一数据库与第二数据库中的记录进行加锁、提取并写入第三数据库中;直至第一数据库与第二数据库中的记录全部写入第三数据库中。
[0028]本实施例中对记录的写入顺序可以由本领域技术人员根据实际需求进行设定。例如,可以设定为服务器通过合服工具先逐条将第一数据库中的记录进行加锁、提取并写入第三数据库中,待第一数据库中的全部记录写入第三数据库中后,再逐条将第二数据库中的记录进行加锁、提取并写入第三数据库中;再例如,还可以设定为服务器通过合服工具交叉着、逐条从第一数据库与第二数据库中对记录进行加锁、提取并写入第三数据库中。当然,其它的可以满足需求的设定方式也同样适用,在此不再一一列举。
[0029]本领域技术人员不但可以根据实际需求设定记录的写入顺序,还可以根据实际需求设定提取规则,例如:本领域技术人员可以设定在某一时间段内进行记录的提取,而在某一时间段内不对记录进行提取;更加详细的本领域技术人员还可以对提取每条记录时的时间间隔进行设定,如设定时间间隔为每隔I秒钟提取一条记录。再例如:本领域技术人员还可以将提取规则设定为一直连续地提取记录,在本实施例中对提取规则不作具体的限制。
[0030]步骤S106:当停服时,服务器通过合服工具仅对第三数据库中满足替换规则的记录进行替换。
[0031]其中,满足替换规则的记录为在设定时间周期内在第一数据库与第二数据库中有过修改的记录。
[0032]因为在向第三数据库中写入记录的过程中,第一数据库与第二数据库是正在运行的,而此时在第一数据库与第二数据库中存储的,已经写入第三数据库中的部分记录可能会有修改,那么为了保证合服后的第三数据库中的记录是最新的,就需要停服对第三数据库中的这部分记录进行替换,将其替换为最新的记录。
[0033]为使描述更加简明清楚,下面以举例的形式对第三数据库中的记录替换进行一下描述:
[0034]例如:有三个数据库分别为源服数据库、目标服数据库以及最终数据库,在源服数据库即第一数据库中存储有活跃的网络游戏玩家对应的数据A和B,不活跃的玩家对应的数据C和D ;在目标服数据库即第二数据库中存储有活跃的网络游戏玩家对应的数据E和F,不活跃的网络游戏玩家对应的数据G和H,上述数据库中的每个数据都是由多条记录组成。那么对两个数据库进行合服时:
[0035]首先,第一阶段数据库在运行过程中,源服务器通过合服工具逐条将两个数据库中存储的数据A、B、C、D、E、F、G和H写入最终数据库即第三数据库中。假设整个写入过程用了 7天,在写入完之后就进行了停服。在这7天内由于源服数据库与目标服数据库在运行,那么活跃的网络游戏玩家就会在此期间进行登录,其对应的数据A、B、E和F也就有可能在被写入最终数据库之后又被修改过,而活跃的网络游戏玩家对应的数据在最终数据库中的还是原始的数据。
[0036]因此就需要进入合服的下一阶段即第二阶段,该阶段是在停服时进行的;在该阶段中源服务器直接通过合服工具将最终数据库中的原始数据A、B、E、F均对应替换成修改后的数据,而由于不活跃的网络游戏玩家在此期间没有进行登录,那么就无需替换最终数据库中的不活跃的网络游戏玩家的原始数据C、D、G、H。
[0037]再如:在第一数据库中存储有一条标识为a用于指示用户枪支个数为10的记录,服务器将这条记录写入到了第三数据库中;而在合服还未完成前,第一数据库中的这条记录有了修改,修改为指示用户枪支个数为11,那么在停服时,服务器就会将第三数据库中存储的标识为a的记录替换成指示用户枪支个数为11的记录。
[0038]在描述完记录的替换后,再对设定的时间周期进行一下简单介绍。本实施例中对于时间周期的设定不作具体的限制,设定的时间周期可以为五天、一周或者是其他时间周期;在设定周期时,只要能够保证替换后的第三数据库中的记录都是最新的记录即可。
[0039]通过本实施例提供的合服方法,服务器在第一数据库与第二数据库运行的过程中,通过合服工具逐条将两个数据库中的记录全部写入第三数据库中;仅需要停服对第三数据库中存储的在设定周期内有过修改的记录进行替换,从而保证第三数据库中的记录都是最新的。通过本发明提供的合服方法,由于合服过程中向第三数据库写入记录的操作是在线进行的,仅有对第三数据库中的部分数据进行替换是停服进行的,因此相比现有的合服方法整个合服操作都要停服进行,缩短了停服的时间;而缩短了停服的时间也就相当于缩短了游戏玩家不能进行游戏操作的时间,因而降低了对网络游戏的收益的影响,进而降低了网络游戏的运营成本。
[0040]实施例二
[0041]参照图2,示出了根据本发明实施例二的一种合服的方法的步骤流程图。
[0042]本实施例以网络游戏服务器为例对本申请的合服的方法进行详细的描述,本实施例的合服的方法的具体步骤包括:
[0043]步骤S202:服务器通过合服工具连接第一数据库、第二数据库以及第三数据库。
[0044]第一数据库与第二数据库中均存储有多个网络游戏玩家的在线信息。通过这些在线信息可以获得各数据库在任意时刻的在线网络游戏玩家数量。
[0045]步骤S204:在第一数据库与第二数据库运行过程中,服务器通过合服工具按照预先设定的提取规则,逐条将第一数据库与第二数据库中的记录进行加锁、提取并写入第三数据库中;直至第一数据库与第二数据库中的记录全部写入第三数据库中。
[0046]需要说明的是,提取规则可以由本领域技术人员根据实际情况进行设定。在设定提取规则时,可以通过对时间段进行划分,设定在不同的时间段按照不同的提取频率提取记录;也可以根据数据库中在线的网络游戏玩家的数量情况设定提取频率,本申请中对提取规则的设定不作具体限制。下面列举几个比较具有实用性的提取规则:
[0047]第一种提取规则:设定一个阈值,当第一数据库与第二数据库中的网络游戏玩家在线信息指示在线的网络游戏玩家的数量小于设定阈值时,通过合服工具连续地、逐条将第一数据库与第二数据库中的记录进行加锁、提取并写入第三数据库中;当第一数据库与第二数据库中的网络游戏玩家在线信息指示在线的网络游戏玩家的数量大于或等于设定阈值时,按照设定的时间间隔逐条将第一数据库与第二数据库中的记录进行加锁、提取并写入第三数据库中。
[0048]其中,阈值的设定可以根据实际情况进行设定,设定阈值的目的是为了区分游戏高峰时期与非高峰时期。当两个数据库中的在线游戏玩家数量大于或等于设定阈值时,则说明此时正处于游戏高峰时期,那么为了不影响游戏玩家进行游戏操作,在不增加数据库的负载的情况下设定一个时间间隔,按照这个时间间隔来逐条提取数据库中的记录。
[0049]第二种提取规则:依然是设定一个阈值,当第一数据库与第二数据库中的网络游戏玩家在线信息指示在线的网络游戏玩家的数量小于设定阈值时,通过合服工具连续地、逐条将第一数据库与第二数据库中的记录进行加锁、提取并写入第三数据库中;而当第一数据库与第二数据库中的网络游戏玩家在线信息指示在线的网络游戏玩家的数量大于或等于设定阈值时,则停止逐条将第一数据库与第二数据库中的记录进行加锁、提取并写入第三数据库中的操作。
[0050]第三种提取规则:不设定阈值,只设定提取每条记录的时间间隔,一直按照设定的时间间隔逐条将第一数据库与第二数据库中的记录进行加锁、提取并写入第三数据库中。
[0051]第四种提取规则:依据经验设定游戏高峰时间段,在游戏高峰时间段内,按照设定的时间间隔逐条提取记录。例如:游戏高峰时间段可以设为晚上八点至九点,时间间隔可以设定为I秒。
[0052]上面仅是列举了几种提取规则,但本领域技术人员应该明确提取规则并不局限于此。
[0053]本实施例中就是采用上述第一种提取规则逐条将第一数据库与第二数据库中的记录进行加锁、提取并写入第三数据库中的。采用本实施例中的提取规则在不增加数据库负载的同时,又能够保证采用较短时间完成记录的提取与写入。
[0054]本实施例中采用上述提取规则逐条将第一数据库与第二数据库中的记录
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1