CN110928945B - 一种针对数据库的数据处理方法及装置,数据处理系统 - Google Patents

一种针对数据库的数据处理方法及装置,数据处理系统 Download PDF

Info

Publication number
CN110928945B
CN110928945B CN201811024924.XA CN201811024924A CN110928945B CN 110928945 B CN110928945 B CN 110928945B CN 201811024924 A CN201811024924 A CN 201811024924A CN 110928945 B CN110928945 B CN 110928945B
Authority
CN
China
Prior art keywords
database
main
standby
request
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811024924.XA
Other languages
English (en)
Other versions
CN110928945A (zh
Inventor
李应斌
黄海宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201811024924.XA priority Critical patent/CN110928945B/zh
Publication of CN110928945A publication Critical patent/CN110928945A/zh
Application granted granted Critical
Publication of CN110928945B publication Critical patent/CN110928945B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23116Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving data replication, e.g. over plural servers

Abstract

本申请公开一种针对数据库的数据处理方法及装置,视频直播的数据处理系统,所述方法包括:接收对数据库的操作请求,数据库至少包括主数据库和备数据库,其中,主数据库与备数据库相对应;根据标记表中的数据库可操作状态,确定针对操作请求可进行操作的当前操作数据库;其中,当前操作数据库包括:主数据库或备数据库;根据在当前操作数据库中针对操作请求的操作结果,执行与当前操作数据库对应的数据库的数据更新操作,或者,切换至与当前操作数据库对应的数据库进行针对操作请求的操作;避免主数据库和备数据库之间由于切换时间过长,影响视频直播用户观看效果,保证视频直播系统的正常运行,以及数据库数据处理的快速进行。

Description

一种针对数据库的数据处理方法及装置,数据处理系统
技术领域
本申请涉及计算机技术领域,具体涉及一种针对数据库的数据处理方法及装置,本申请同时涉及一种视频直播的数据处理系统。
背景技术
在传统分布式系统中,通常采用数据库本身的容灾方案,即:通过一主多备的方式部署,主数据库通过实时同步的方式,自动将修改的数据同步到备数据库,当主数据库发生问题时,可以自动切换到备数据库。
然而,现有技术中主数据库和备数据库进行切换时,主要是通过心跳探测的方式,判断主数据库是否存在异常。比如5s一次心跳探测,如果5次均没返回,则判断该主数据库异常,则切换到备数据库,探测的心跳次数和频率根据每个系统的实现会有所不同,但每个系统设定探测时间均不能太短,否则会出现误报,进而导致错误的切换,因此,现有技术中探测超时时间一般都会设置在至少10s以上,更稳妥的会设置在1min左右。该种切换方式对于视频直播系统而言是无法接受的,因为,视频直播系统需要将播放过程中的每个数据记录在数据库中,是一个对实时性、稳定性要求非常高的系统,任何一个小的错误都有可能导致当前的直播内容丢失,造成无法挽回的故障,尤其是主数据库与备数据库之间进行切换的时间过长,进一步加大了内容丢失的可能性,导致视频直播系统实时性和稳定性较差。
另外,现有技术中的主备数据库之间的切换,无法解决网络、管控平台、误操作、索引使用不当引起的故障。
发明内容
本申请提供一种针对数据库的数据处理方法,以解决现有技术中主备数据库之间切换时间较长的问题。
本申请提供一种针对数据库的数据处理方法,包括:
接收对数据库的操作请求,所述数据库至少包括主数据库和备数据库,其中,所述主数据库与所述备数据库相对应;
根据标记表中的所述数据库可操作状态,确定针对所述操作请求可进行操作的当前操作数据库;其中,所述当前操作数据库包括:所述主数据库或所述备数据库;
根据在所述当前操作数据库中针对所述操作请求的操作结果,执行与所述当前操作数据库对应的数据库的数据更新操作,或者,切换至与所述当前操作数据库对应的数据库进行针对所述操作请求的操作。
在一些实施例中,还包括:
在所述备数据库中创建所述标记表,或者,在第三数据库中创建所述标记表;其中,所述标记表中记载主数据库可操作状态和备数据库可操作状态。
在一些实施例中,所述根据在所述当前操作数据库中针对所述操作请求的操作结果,执行与所述当前操作数据库对应的数据库中的数据更新操作,或者,切换至与所述当前数据库对应的数据库进行针对所述操作请求的操作,包括:
当所述当前操作数据库为所述主数据库时,如果在所述主数据库中针对所述操作请求的第一操作失败,则在所述备数据库中针对所述操作请求进行第二操作;如果在所述主数据库中针对所述操作请求的第一操作成功,则在所述备数据库中进行所述第一操作。
在一些实施例中,还包括:
如果在所述备数据库中针对所述操作请求进行的第二操作成功,则将所述标记表中的当前操作数据库更改为所述备数据库;若失败,则返回失败信息。
在一些实施例中,所述将所述当前操作数据库更改为所述备数据库,包括:
将所述标记表中的数据库可操作状态由所述主数据库的可操作状态修改为所述备数据的可操作状态。
在一些实施例中,所述将所述当前操作数据库更改为所述备数据库,包括:
判断将所述当前操作数据库更改为所述备数据库是否更改成功,若成功,则将在所述备数据库针对所述操作请求进行的第二操作相关的内容回写至所述主数据库中;若失败,则返回失败信息。
在一些实施例中,所述将在所述备数据库针对所述操作请求进行的第二操作相关的内容回写至所述主数据库中,包括:
记录所述备数据库中的键值;
根据所述键值对所述主数据库进行回写。
在一些实施例中,所述在所述备数据库中进行所述第一操作,包括:
判断在所述备数据库进行所述第一操作是否成功,若成功,返回成功信息;若失败,则记录所述备数据库中的键值,根据所述键值对所述备数据库再次进行所述第一操作。
在一些实施例中,所述根据在所述当前操作数据库中针对所述操作请求的操作结果,执行与所述当前操作数据库对应的数据库中的数据更新操作,或者,切换至与所述当前数据库对应的数据库进行针对所述操作请求的操作,包括:
所述当前操作数据库为所述备数据库时,如果所述备数据库针对所述操作请求的第一操作失败,则在所述主数据库中针对所述操作请求进行第二操作;如果在所述备数据库中针对所述操作请求的第一操作成功,则在所述主数据库进行所述第一操作。
在一些实施例中,还包括:
如果在所述主数据库中针对所述操作请求进行的所述第二操作成功,则将所述当前操作数据库更改为所述主数据库;若失败,则返回失败信息。
在一些实施例中,所述将所述当前操作数据库更改为所述主数据库,包括:
将所述标记表中的数据库可操作状态由所述备数据库的可操作状态修改为所述主数据的可操作状态。
在一些实施例中,所述将所述当前操作数据库更改为所述主数据库,包括:
判断将所述当前操作数据库更改为所述主数据库是否更改成功,若成功,则将在所述主数据库针对所述操作请求进行的第二操作相关的内容回写至所述备数据库中;若失败,则返回失败信息。
在一些实施例中,所述在所述主数据库针对所述操作请求进行的第二操作相关的内容回写至所述备数据库中,包括:
记录所述主数据库中的键值;
根据所述键值对所述备数据库进行回写。
在一些实施例中,所述在所述主数据库中进行第一操作,包括:
判断在所述主数据库进行所述第一操作是否成功,若成功,返回成功信息;若失败,则记录所述主数据库的键值,根据所述键值对所述主数据库再次进行所述第一操作。
在一些实施例中,所述主数据库和所述备数据库均为关系型数据库或非关系型数据库;或者,所述主数据库为关系型数据库,所述备数据库为非关系型数据库;或者,所述主数据库为非关系型数据库,所述备数据库库为关系型数据库。
在一些实施例中,当所述备数据库为非关系型数据库时,采用表格存储形式记录数据。
本申请还提供一种针对数据库的数据处理装置,包括:
接收单元,用于接收对数据库的操作请求,所述数据库至少包括主数据库和备数据库;
确定单元,用于根据标记表中的所述数据库可操作状态,确定针对所述操作请求可进行操作的当前操作数据库;其中,所述当前操作数据库包括:所述主数据库或所述备数据库;
执行单元,用于根据在所述当前操作数据库中针对所述操作请求的操作结果,执行与所述当前操作数据库对应的数据库的数据更新操作,或者,切换至与所述当前操作数据库对应的数据库进行针对所述操作请求的操作。
本申请还提供一种视频直播的数据处理系统,包括:
客户端,用于向视频直播服务器发送操作请求;
所述视频直播服务器,用于向所述客户端提供视频直播服务内容,并接收所述客户端的操作请求;
主数据库,用于根据所述客户端的操作请求,记载关于所述视频直播服务内容的数据信息;
备数据库,用于根据所述客户端的操作请求,记载与所述主数据库中数据信息相同的数据信息,以及记录所述主数据库和所述备数据库的可操作状态,确定针对所述操作请求可进行操作的当前操作数据库,其中,所述当前操作数据库为所述主数据库或与所述主数据库对应的所述备数据库。
与现有技术相比,本申请具有以下优点:
本申请提供的一种针对数据库的数据处理方法,接收对数据库的操作请求,根据标记表中的所述数据库可操作状态,确定针对所述操作请求可进行操作的当前操作数据库为主数据库还是备数据库,在确定当前操作数据库后,针对操作请求的操作结果,执行对应操作结果的步骤,即:如果当前操作数据库执行结果为成功,则执行与所述当前操作数据库对应的数据库的数据更新操作;如果当前操作数据库执行结果为失败,则切换至与所述当前操作数据库对应的数据库进行针对所述操作请求的操作;进而不需要依赖主数据库对数据操作时的探测,只要操作不成功即可切换,避免因为网络、管控平台、误操作、索引使用不当引起的故障时需要依赖主数据库探测而导致切换时间过长,影响视频直播用户观看效果,保证视频直播系统的正常运行,以及数据库数据处理的快速进行。
附图说明
图1是本申请提供的一种针对数据库的数据处理方法实施例的流程图;
图2是本申请提供的一种针对数据库的数据处理方法中当前操作数据库为主数据库时和当前操作数据库为备数据库时的流程图;
图3是本申请提供的一种针对数据库的数据处理装置实施例的结构示意图;
图4是本申请提供的一种视频直播的数据处理系统实施例的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请中使用的术语是仅仅出于对特定实施例描述的目的,而非旨在限制本申请。在本申请中和所附权利要求书中所使用的描述方式例如:“一种、“第一”、和“第二”等,并非对数量上的限定或先后顺序上的限定,而是用来将同一类型的信息彼此区分。
本申请提供一种针对数据库的数据处理方法,该方法能够使得主数据库与备数据库之间的能够自动切换,不需要依赖任何一个数据库自身的情况,即便在某一个数据库自身出现问题的状况下仍然能够进行自动切换,且切换的时间较短。
请参考图1和图2所示,图1是本申请提供的一种针对数据库的数据处理方法实施例的流程图;图2是本申请提供的一种针对数据库的数据处理方法中当前操作数据库为主数据库时和当前操作数据库为备数据库时的流程图。
所述方法包括:
步骤S101:接收对数据库的操作请求,所述数据库至少包括主数据库和备数据库,其中,所述主数据库与所述备数据库相对应。
在所述步骤S101中,对所述数据库的操作请求可以包括:对数据库的增删改查等操作,即:增加、删除、更改和查询等操作,例如:增加一行数据,删除一行数据,更改一行数据,查询一行数据。
通常情况下,数据库可以包括主数据库和备数据库,所述备数据库可以为多个,主数据库可以为一个。本实施例中,采用一个主数据库和一个备数据库进行说明,其中,备数据库中存储的数据与主数据库存储的数据相同,即,备数据库中的数据是对主数据库内数据的备份。
所述主数据库可以采用关系型数据库或者非关系型数据库NoSQL,所述备数据库可以采用关系型数据库或非关系型数据库。关系型数据库可以是mysql、Oracle等,也可以是表格存储(TableStore)。在本实施例中,备数据库采用的为表格存储(TableStore),主数据库可以采用表格存储(TableStore)或者关系型数据库。表格存储以实例和表的形式组织数据,包括表、行、主键和属性。其中,表是行的集合,行由主键和属性组成。
步骤S102:根据标记表中的所述数据库可操作状态,确定针对所述操作请求可进行操作的当前操作数据库;其中,所述当前操作数据库包括:所述主数据库或所述备数据库。
所述步骤S102中的标记表可以预先创建,也可以在接收到操作请求时创建,或者在接收到操作请求后进行创建,在本实施例中是在备数据库中预先创建,即:FlagTable_A。实际上,所述标记表可以在第三数据库中创建,即除了主数据库和备数据库之外的数据库中创建,也可以理解为,单独创建一个具有标记主数据库和备数据库操作状态的第三数据库,该第三数据库也可以称之为标记表。在本实施例中,主要通过在备数据库中创建标记表FlagTable_A进行说明。
标记表的具体创建的过程可以是,在所述备数据库(TableStore)中新建一个表,该表为标记表FlagTable_A,标记表的主键与主数据库中存储数据的表A的唯一键一致,列名为status,包括:master和backup两个值,其中,master:表示操作请求针对的此数据可以访问主数据库,即:可以对主数据库进行操作;backup:表示操作请求针对的此数据可以访问备数据库,即:可以对备数据库进行操作。
实际上,所述备数据库中存在至少两个表,一个是标记表FlagTable_A,用来标记主数据库和备数据库的操作状态,另一个表是存储与所述主数据库存储数据相同的表Table_A,该Table_A的主键为主数据库中表A唯一键,唯一键是指可以唯一表明主数据库表A中的某一行数据。唯一键可以由多个字段组成,例如:在视频直播环境下,主键可以包括:user_id,room_id,timestamp,其中,user_id:用户ID,可以是字符串也可以是数字,唯一标识一个用户。room_id:房间ID,每个直播房间我们可以认为有一个唯一的标识,可以是字符串也可以是数字。Timestamp:时间戳,表示某一个时刻,单位可以是秒或者毫秒,用来表示用户产生操作的时间戳,记录了操作的时间戳,用来分析用户操作频率,或者和直播内容进行关联分析。该些主键可以唯一确定某一个用户在某一个时间点在某一个房间的操作数据。
根据接收的操作请求,查询标记表FlagTable_A,获取status字段,如果是master,则当前操作数据库为主数据库,如果是backup,则当前操作数据库为备数据库。在本实施例中,在首次接收到对数据库的数据进行操作的操作请求时,标记表中的状态值为master,即主数据库为当前操作数据库,在主数据库中该对待操作的数据进行针对操作请求的操作。因此,针对操作请求,当前操作数据库可以是主数据库或者是备数据库。
步骤S103:根据在所述当前操作数据库中针对所述操作请求的操作结果,执行与所述当前操作数据库对应的数据库的数据更新操作,或者,切换至与所述当前操作数据库对应的数据库进行针对所述操作请求的操作。
在本实施例中,当当前操作操作数据库为主数据库时,与当前操作数据库对应的数据库则为备数据库,当当前操作数据库为备数据库时,与当前操作数据库对应的数据库为主数据库。
所述步骤103中所述当前操作数据库针对所述操作请求的操作结果可以包括两种:一种为操作成功,另一种为操作失败。针对两种操作结果当前操作数据库具有不同的处理方式,具体如下:
如图2所示,步骤S1031-1:当所述当前操作数据库为所述主数据库时,如果在所述主数据库中针对所述操作请求的第一操作失败,则执行步骤S1031-2:切换至与所述当前数据库对应的数据库进行针对所述操作请求的操作,具体可以是切换到所述备数据库对所述操作请求进行操作,即:在所述备数据库中针对所述操作请求进行第二操作,所述第二操作与所述第一操作为相同的操作,二者仅为名称上的区别。
所述步骤S1031-1中当所述当前操作数据库为所述主数据库时,如果在所述主数据库中针对所述操作请求的第一操作成功,执行步骤S1031-7:执行与所述当前操作数据库对应的数据库的数据更新操作,具体可以是在所述备数据库中进行所述第一操作,目的在于保证主数据库与备数据库中数据同步。
基于上述,当所述主数据库中针对所述操作请求的第一操作失败,切换到备数据库中进行第二操作,还包括:
在所述备数据库中针对所述操作请求进行第二操作需要对操作结果也进行判断,如果在所述备数据库中针对所述操作请求进行的第二操作成功,则进入步骤S1031-3:将所述标记表中数据库可操作状态,由当前操作数据库更改为备数据库(由master更改为backup),即将主数据库的可操作状态更改为备数据库的可操作状态,表示当前可操作的数据库为备数据库,主数据库不可操作。如果在所述被数据库中针对所述操作请求进行的第二操作失败,则进入步骤S1031-4返回失败信息,说明目前主数据库和备数据库均异常。
当所述当前操作数据库更改为所述备数据库,说明针对所述操作请求,备数据库是可操作状态,需要判断更改是否成功,即:判断将所述当前操作数据库更改为所述备数据库是否更改成功,若成功,则进入步骤S1031-5:将在所述备数据库针对所述操作请求进行的第二操作相关的内容回写至所述主数据库中;若失败,则进入所述步骤S1031-4:返回失败信息。在回写成功后,进入步骤S1031-6:返回回写成功的信息。
其中,所述将在所述备数据库针对所述操作请求进行的第二操作相关的内容回写至所述主数据库中,目的是为了保证主数据库和备数据库中的数据一致性,对备数据库的操作,需要对主数据库进行相同的操作,使得二者数据能够保持同步,如果将所述备数据库中针对所述操作请求进行的第二操作相关的内容回写至所述主数据库中,回写可以在备数据库完成操作之后立即对备数据库进行回写,也可以先记录所述备数据库中的键值,在主数据库恢复后或者回写失败后,根据所述键值对所述主数据库进行回写,因为备数据库中Table_A的主键为主数据库表A唯一键,因此,记录键值后可以对主数据库直接进行回写。
需要说明的是,本实施例中,当回写失败的情况下,或者避免数据处理正常进行,可以将键值添加到恢复队列中,等到主数据库恢复后,再把针对操作请求的数据回写到主数据库中,从而保证主数据库和备数据库中的数据一致。
以上是当前操作数据库为主数据库时,主数据库针对所述操作请求的第一操作失败后进行的相关数据处理过程,下面对当前操作数据库为主数据库时,主数据库针对所述操作请求的第一操作成功后进行的相关数据处理过程的描述。
如果在所述主数据库中针对所述操作请求的第一操作成功,则进入步骤S1031-7:在所述备数据库中进行所述第一操作,进而保证主数据库中的数据与备数据库中的数据一致,在备数据库中进行所述第一操作,包括:
判断在所述备数据库进行所述第一操作是否成功,若成功,则进入步骤S1031-9:返回成功信息;若失败,则进入步骤S1031-8:记录所述备数据库中的键值,根据所述键值对所述备数据库再次进行所述第一操作。
需要说明的是,本实施例中,当回写失败的情况下,或者避免数据处理正常进行,可以将键值添加到恢复队列中,等到备数据库恢复后,再把针对操作请求的数据回写到备数据库中,从而保证主数据库和备数据库中的数据一致。
可以理解的是,上述判断成功的情况下也可以不返回成功信息。
以上是针对所述当前操作数据库为所述主数据库的情况下进行的数据处理过程的描述,下面针对当所述当前操作数据库为所述备数据库时,进行数据处理过程的描述,具体如下:
所述当前操作数据库为所述备数据库时,即:查询标记表,标记表中标注的可操作数据库为backup,则说明当前可操作的数据库为备数据库。当确定当前操作数据库为备数据库后,在所述备数据库中执行针对所述操作请求的操作,操作结果同样也包括两种:一种是失败,一种是成功。步骤S1032-2:判断备数据库针对所述操作请求的第一操作是否成功。如果所述备数据库针对所述操作请求的第一操作失败,则进入步骤S1032-2在所述主数据库中针对所述操作请求进行第二操作;如果在所述备数据库中针对所述操作请求的第一操作成功,则进入步骤S1032-7:在所述主数据库进行所述第一操作。
如果所述备数据库针对所述操作请求的第一操作失败,则进入步骤S1032-2在所述主数据库中针对所述操作请求进行第二操作,还包括:对所述第二操作是否成功进行判断,具体如下:
如果在所述主数据库中针对所述操作请求进行的所述第二操作成功,则进入步骤S1032-3:将所述当前操作数据库更改为所述主数据库;若失败,则进入步骤S1032-4:返回失败信息。
需要说明的是,所述第一操作和第二操作为相同的操作,二者区别仅为在不同的数据库中进行。
在本实施例中,如果在所述主数据库中针对所述操作请求进行的所述第二操作成功,所述步骤S1032-3:将所述当前操作数据库更改为所述主数据库,具体可以是,将所述标记表中的数据库可操作状态由所述备数据库的可操作状态修改为所述主数据的可操作状态,即:将最初的backup状态置为master状态。
在本实施例中,如果在所述主数据库中针对所述操作请求进行的所述第二操作失败,返回失败信息也说明目前主数据库和备数据库库均存在异常。返回的失败信息可以包括失败的原因,或者包括失败后的操作引导信息等。
为保证对主数据库进行第二操作后,所述备数据库中的数据与主数据库的数据一致,因此,在将所述当前操作数据库更改为所述主数据库,包括:
判断将所述当前操作数据库更改为所述主数据库是否更改成功,若成功,则进入步骤S1032-5:将在所述主数据库针对所述操作请求进行的第二操作相关的内容回写至所述备数据库中;若失败,则进入所述步骤S1032-4:返回失败信息。在回写成功后进入步骤S1032-6:返回成功信息。
所述将在所述主数据库针对所述操作请求进行的第二操作相关的内容回写至所述备数据库中,可以在对所述主数据库完成第二操作后立即对备数据库进行回写,也可以在备数据库恢复后进行回写或回写失败后再次进行回写,该种情况下回写时具体可以包括:
记录所述主数据库中的键值;
根据所述键值对所述备数据库进行回写。
根据所述键值对所述备数据库进行回写,因为备数据库中Table_A的主键为主数据库表A唯一键,因此,记录键值后可以对备数据库直接进行回写。
需要说明的是,本实施例中,当回写失败的情况下,或者避免数据处理正常进行,可以将键值添加到恢复队列中,等到备数据库恢复后,再把针对操作请求的数据回写到备数据库中,从而保证主数据库和备数据库中的数据一致。
以上是当当前操作数据库为备数据库时,备数据库针对所述操作请求的第一操作失败后,在所述主数据库中针对所述操作请求进行第二操作的相关数据处理过程,下面对当前操作数据库为备数据库时,备数据库针对所述操作请求的第一操作成功后,则进入所述步骤S1032-7:在所述主数据库中进行第一操作,具体处理过程如下:
在本实施例中,当对备数据库进行第一操作成功后,需要保证主数据库中的数据与备数据库中的数据一致,因此,在所述主数据库中也要进行第一操作,在所述主数据库中进行第一操作,可以包括:
判断在所述主数据库进行所述第一操作是否成功,若成功,则进入步骤S1032-9:返回成功信息;若失败,则进入步骤S1032-8:记录所述主数据库的键值,根据所述键值对所述主数据库再次进行所述第一操作。
需要说明的是,本实施例中,当回写失败的情况下,或者避免数据处理正常进行,可以将键值添加到恢复队列中,等到主数据库恢复后,再把针对操作请求的数据回写到主数据库中,从而保证主数据库和备数据库中的数据一致。
可以理解的是,上述判断成功的情况下也可以不返回成功信息。
下面结合具体直播视频应用场景进行说明。
用户user进入直播视频A,直播服务器接收到用户user进入直播视频A,直播服务器将发起数据库进行增加用户操作,即增加一行关于用户user的操作。首先,在备数据库(TableStore)中的标记表中查询当前可操作的数据库状态为主数据库master为当前操作数据库还是备数据库backup为当前操作数据库,通常情况下,设置为主数据库master为当前操作数据库,然后对主数据库进行操作,如果此时,主数据库针对增加用户user的操作失败,则立即切换到备数据库进行针对增加用户user的操作,如果备数据库针对增加用户user的操作成功,则说明备数据库为当前操作数据库,需要对标记表中的可操作数据库状态进行更改,将当前操作数据库由原来的主数据库更改为备数据库;更改之后还需要将对备数据库进行增加user的操作信息,回写到主数据库中,以使主数据库和备数据库中的数据一致。如果备数据库针对增加用户user的操作失败,则说明主数据库和备数据库均存在异常,可以稍后在进行操作,或者返回失败原因。
需要说明的是,标记表的更改和对主数据库的回写部分前后顺序,可以先更改在回写,也可以先回写在更改,还可以回写与更改同时进行。
如果主数据库针对增加用户user的操作成功,则需要到备数据库中进行针对增加user的操作,以使主数据库和备数据库中的数据一致,在对备数据库进行相同操作成功之后返回操作成功的信息,如果对备数据库中进行增加user的操作未成功,可以记录备数据库的键值,根据所述键值再次对备数据库进行增加user的操作。为了不阻塞当前直播视频的流程,可以将键值添加到恢复队列中,等备数据库恢复后,再把增加user的数据写回到备数据库中。
以上是对本申请提供的一种针对数据库的数据处理方法实施例的说明。与前述提供针对数据库的数据处理方法实施例相对应,本申请还公开了一种针对数据库的数据处理装置实施例,请参看图2,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
如图3所示,图3是本申请提供的一种针对数据库的数据处理装置实施例的结构示意图。该装置包括:
接收单元301,用于接收对数据库的操作请求,所述数据库至少包括主数据库和备数据库,其中,所述主数据库与所述备数据库相对应。
所述接收单元301中对所述数据库的操作请求可以包括:对数据库的增删改查等操作,即:增加、删除、更改和查询等操作,例如:增加一行数据,删除一行数据,更改一行数据,查询一行数据。
通常情况下,数据库可以包括主数据库和备数据库,所述备数据库可以为多个,主数据库可以为一个。本实施例中,采用一个主数据库和一个备数据库进行说明,其中,备数据库中存储的数据与主数据库存储的数据相同,即,备数据库中的数据是对主数据库内数据的备份。
所述主数据库可以采用关系型数据库或者非关系型数据库NoSQL,所述备数据库可以采用关系型数据库或非关系型数据库。关系型数据库可以是mysql、Oracle等,也可以是表格存储(TableStore)。在本实施例中,备数据库采用的为表格存储(TableStore),主数据库可以采用表格存储(TableStore)或者关系型数据库。表格存储以实例和表的形式组织数据,包括表、行、主键和属性。其中,表是行的集合,行由主键和属性组成。
确定单元302,用于根据标记表中的所述数据库可操作状态,确定针对所述操作请求可进行操作的当前操作数据库;其中,所述当前操作数据库包括:所述主数据库或所述备数据库。
所述确定单元302中的标记表可以预先创建,也可以在接收到操作请求时创建,或者在接收到操作请求后进行创建,在本实施例中是在备数据库中预先创建,即:FlagTable_A。实际上,所述标记表可以在第三数据库中创建,即除了主数据库和备数据库之外的数据库中创建,也可以理解为,单独创建一个具有标记主数据库和备数据库操作状态的第三数据库,该第三数据库也可以称之为标记表。在本实施例中,主要通过在备数据库中创建标记表FlagTable_A进行说明。
标记表的具体创建的过程可以是,在所述备数据库(TableStore)中新建一个表,该表为标记表FlagTable_A,标记表的主键与主数据库中存储数据的表A的唯一键一致,列名为status,包括:master和backup两个值,其中,master:表示操作请求针对的此数据可以访问主数据库,即:可以对主数据库进行操作;backup:表示操作请求针对的此数据可以访问备数据库,即:可以对备数据库进行操作。
实际上,所述备数据库中存在至少两个表,一个是标记表FlagTable_A,用来标记主数据库和备数据库的操作状态,另一个表是存储与所述主数据库存储数据相同的表Table_A,该Table_A的主键为主数据库中表A唯一键,唯一键是指可以唯一表明主数据库表A中的某一行数据。唯一键可以由多个字段组成,例如:在视频直播环境下,主键可以包括:user_id,room_id,timestamp,其中,user_id:用户ID,可以是字符串也可以是数字,唯一标识一个用户。room_id:房间ID,每个直播房间我们可以认为有一个唯一的标识,可以是字符串也可以是数字。Timestamp:时间戳,表示某一个时刻,单位可以是秒或者毫秒,用来表示用户产生操作的时间戳,记录了操作的时间戳,用来分析用户操作频率,或者和直播内容进行关联分析。该些主键可以唯一确定某一个用户在某一个时间点在某一个房间的操作数据。
根据接收的操作请求,查询标记表FlagTable_A,获取status字段,如果是master,则当前操作数据库为主数据库,如果是backup,则当前操作数据库为备数据库。在本实施例中,在首次接收到对数据库的数据进行操作的操作请求时,标记表中的状态值为master,即主数据库为当前操作数据库,在主数据库中该对待操作的数据进行针对操作请求的操作。因此,针对操作请求,当前操作数据库可以是主数据库或者是备数据库。
执行单元303,用于根据在所述当前操作数据库中针对所述操作请求的操作结果,执行与所述当前操作数据库对应的数据库的数据更新操作,或者,切换至与所述当前操作数据库对应的数据库进行针对所述操作请求的操作。
所述执行单元303中主要包括两种执行子单元,一种是更新操作子单元,一种是切换操作子单元。
在本实施例中,当根据确定单元302确定的当前操作操作数据库为主数据库时,与当前操作数据库对应的数据库则为备数据库,当当前操作数据库为备数据库时,与当前操作数据库对应的数据库为主数据库。
当所述当前操作数据库为所述主数据库时,如果在所述主数据库中针对所述操作请求的第一操作失败,所述切换至与所述当前数据库对应的数据库进行针对所述操作请求的操作,具体可以是切换到所述备数据库对所述操作请求进行操作,即:在所述备数据库中针对所述操作请求进行第二操作,所述第二操作与所述第一操作为相同的操作,二者仅为名称上的区别。
当所述当前操作数据库为所述主数据库时,如果在所述主数据库中针对所述操作请求的第一操作成功,所述执行与所述当前操作数据库对应的数据库的数据更新操作,具体可以是在所述备数据库中进行所述第一操作,目的在于保证主数据库与备数据库中数据同步。
基于上述,当所述主数据库中针对所述操作请求的第一操作失败,切换到备数据库中进行第二操作,还包括:
在所述备数据库中针对所述操作请求进行第二操作需要对操作结果也进行判断,如果在所述备数据库中针对所述操作请求进行的第二操作成功,则将所述标记表中数据库可操作状态,由当前操作数据库更改为备数据库(由master更改为backup),即将主数据库的可操作状态更改为备数据库的可操作状态,表示当前可操作的数据库为备数据库,主数据库不可操作。如果在所述被数据库中针对所述操作请求进行的第二操作失败,则返回失败信息,说明目前主数据库和备数据库均异常。
当所述当前操作数据库更改为所述备数据库,说明针对所述操作请求,备数据库是可操作状态,需要判断更改是否成功,即:判断将所述当前操作数据库更改为所述备数据库是否更改成功,若成功,则将在所述备数据库针对所述操作请求进行的第二操作相关的内容回写至所述主数据库中;若失败,则返回失败信息。
其中,所述将在所述备数据库针对所述操作请求进行的第二操作相关的内容回写至所述主数据库中,目的是为了保证主数据库和备数据库中的数据一致性,对备数据库的操作,需要对主数据库进行相同的操作,使得二者数据能够保持同步,如果将所述备数据库中针对所述操作请求进行的第二操作相关的内容回写至所述主数据库中,回写可以在备数据库完成操作之后立即对备数据库进行回写,也可以先记录所述备数据库中的键值,在主数据库恢复后或者回写失败后,根据所述键值对所述主数据库进行回写,因为备数据库中Table_A的主键为主数据库表A唯一键,因此,记录键值后可以对主数据库直接进行回写。
需要说明的是,本实施例中,当回写失败的情况下,或者避免数据处理正常进行,可以将键值添加到恢复队列中,等到主数据库恢复后,再把针对操作请求的数据回写到主数据库中,从而保证主数据库和备数据库中的数据一致。
以上是当当前操作数据库为主数据库时,主数据库针对所述操作请求的第一操作失败后进行的相关数据处理过程,下面对当前操作数据库为主数据库时,主数据库针对所述操作请求的第一操作成功后进行的相关数据处理过程的描述。
如果在所述主数据库中针对所述操作请求的第一操作成功,则在所述备数据库中进行所述第一操作,进而保证主数据库中的数据与备数据库中的数据一致,在备数据库中进行所述第一操作,包括:
判断在所述备数据库进行所述第一操作是否成功,若成功,返回成功信息;若失败,则记录所述备数据库中的键值,根据所述键值对所述备数据库再次进行所述第一操作。
需要说明的是,本实施例中,当回写失败的情况下,或者避免数据处理正常进行,可以将键值添加到恢复队列中,等到备数据库恢复后,再把针对操作请求的数据回写到备数据库中,从而保证主数据库和备数据库中的数据一致。
可以理解的是,上述判断成功的情况下也可以不返回成功信息。
以上是针对根据确定单元302确定的所述当前操作数据库为所述主数据库的情况下进行的数据处理过程的描述,下面针对根据确定单元302确定的所述当前操作数据库为所述备数据库时,进行数据处理过程的描述,具体如下:
所述当前操作数据库为所述备数据库时,即:查询标记表,标记表中标注的可操作数据库为backup,则说明当前可操作的数据库为备数据库。当确定当前操作数据库为备数据库后,在所述备数据库中执行针对所述操作请求的操作,操作结果同样也包括两种:一种是失败,一种是成功。如果所述备数据库针对所述操作请求的第一操作失败,则在所述主数据库中针对所述操作请求进行第二操作;如果在所述备数据库中针对所述操作请求的第一操作成功,则在所述主数据库进行所述第一操作。
如果所述备数据库针对所述操作请求的第一操作失败,则在所述主数据库中针对所述操作请求进行第二操作,还包括:对所述第二操作是否成功进行判断,具体如下:
如果在所述主数据库中针对所述操作请求进行的所述第二操作成功,则将所述当前操作数据库更改为所述主数据库;若失败,则返回失败信息。
需要说明的是,所述第一操作和第二操作为相同的操作,二者区别仅为在不同的数据库中进行。
在本实施例中,如果在所述主数据库中针对所述操作请求进行的所述第二操作成功,将所述当前操作数据库更改为所述主数据库,具体可以是,将所述标记表中的数据库可操作状态由所述备数据库的可操作状态修改为所述主数据的可操作状态,即:将最初的backup状态置为master状态。
在本实施例中,如果在所述主数据库中针对所述操作请求进行的所述第二操作失败,返回失败信息也说明目前主数据库和备数据库库均存在异常。返回的失败信息可以包括失败的原因,或者包括失败后的操作引导信息等。
为保证对主数据库进行第二操作后,所述备数据库中的数据与主数据库的数据一致,因此,在将所述当前操作数据库更改为所述主数据库,包括:
判断将所述当前操作数据库更改为所述主数据库是否更改成功,若成功,则将在所述主数据库针对所述操作请求进行的第二操作相关的内容回写至所述备数据库中;若失败,则返回失败信息。
所述将在所述主数据库针对所述操作请求进行的第二操作相关的内容回写至所述备数据库中,可以在对所述主数据库完成第二操作后立即对备数据库进行回写,也可以在备数据库恢复后进行回写或回写失败后再次进行回写,该种情况下回写时具体可以包括:
记录所述主数据库中的键值;
根据所述键值对所述备数据库进行回写。
根据所述键值对所述备数据库进行回写,因为备数据库中Table_A的主键为主数据库表A唯一键,因此,记录键值后可以对备数据库直接进行回写。
需要说明的是,本实施例中,当回写失败的情况下,或者避免数据处理正常进行,可以将键值添加到恢复队列中,等到备数据库恢复后,再把针对操作请求的数据回写到备数据库中,从而保证主数据库和备数据库中的数据一致。
以上是当当前操作数据库为备数据库时,备数据库针对所述操作请求的第一操作失败后,在所述主数据库中针对所述操作请求进行第二操作的相关数据处理过程,下面对当前操作数据库为备数据库时,备数据库针对所述操作请求的第一操作成功后进行的相关数据处理过程的描述。
在本实施例中,当对备数据库进行第一操作成功后,需要保证主数据库中的数据与备数据库中的数据一致,因此,在所述主数据库中也要进行第一操作,在所述主数据库中进行第一操作,可以包括:
判断在所述主数据库进行所述第一操作是否成功,若成功,返回成功信息;若失败,则记录所述主数据库的键值,根据所述键值对所述主数据库再次进行所述第一操作。
需要说明的是,本实施例中,当回写失败的情况下,或者避免数据处理正常进行,可以将键值添加到恢复队列中,等到主数据库恢复后,再把针对操作请求的数据回写到主数据库中,从而保证主数据库和备数据库中的数据一致。
可以理解的是,上述判断成功的情况下也可以不返回成功信息。
基于上述内容,请参考图4所示,图4是本申请提供的一种视频直播的数据处理系统,该系统,包括:
客户端,用于向视频直播服务器发送操作请求;
所述视频直播服务器,用于向所述客户端提供视频直播服务内容,并接收所述客户端的操作请求;
主数据库,用于根据所述客户端的操作请求,记载关于所述视频直播服务内容的数据信息;
备数据库,用于根据所述客户端的操作请求,记载与所述主数据库中数据信息相同的数据信息,以及记录所述主数据库和所述备数据库的可操作状态,确定针对所述操作请求可进行操作的当前操作数据库,其中,所述当前操作数据库为所述主数据库或与所述主数据库对应的所述备数据库。
所述备数据库在本实施中采用的表格存储数据库,在表格存储数据库中创建两个表,一个是标记表FlagTable_A,另一个是存储于主数据库相同内容的表Table_A。所述标记表FlagTable_A用来标记主数据库和备数据库的操作状态,标记表的主键与主数据库中存储数据的表A的唯一键一致,列名为status,包括:master和backup两个值,其中,master:表示操作请求针对的此数据可以访问主数据库,即:可以对主数据库进行操作;backup:表示操作请求针对的此数据可以访问备数据库,即:可以对备数据库进行操作。
主数据库和备数据库中可以记载关于视频直播服务内容的数据信息可以是用户进入房间的信息,用户在房间内的操作信息,用于离开房间的信息等等,用户可以通过客户端(终端设备)对访问视频直播,视频直播服务器则根据访问请求提供相应的视频直播服务内容,并在主数据库中记录针对用户发送访问请求的内容,当主数据库无法记录可以切换到备数据库中进行记录。
可以理解的是访问请求可以包括操作请求,即对当前视频直播内容进行的增删改查等操作,因为,访问可以是进入视频直播,退出视频直播,或者是在视频直播进行当中,对该视频直播的点赞、增送、询问等等操作。
基于上述,本申请还提供一种电子设备,包括:
处理器;
存储器,用于存储对网络平台产生数据进行处理的程序,所述程序在被所述处理器读取执行时,执行如下操作:
接收对数据库的操作请求,所述数据库至少包括主数据库和备数据库,其中,所述主数据库与所述备数据库相对应;
根据标记表中的所述数据库可操作状态,确定针对所述操作请求可进行操作的当前操作数据库;其中,所述当前操作数据库包括:所述主数据库或所述备数据库;
根据在所述当前操作数据库中针对所述操作请求的操作结果,执行与所述当前操作数据库对应的数据库的数据更新操作,或者,切换至与所述当前操作数据库对应的数据库进行针对所述操作请求的操作。
基于上述,本申请还提供一种存储设备,存储网络平台产生数据,以及对应所述网络平台产生数据进行处理的程序;
所述程序在被所述处理器读取执行时,执行如下操作:
接收对数据库的操作请求,所述数据库至少包括主数据库和备数据库,其中,所述主数据库与所述备数据库相对应;
根据标记表中的所述数据库可操作状态,确定针对所述操作请求可进行操作的当前操作数据库;其中,所述当前操作数据库包括:所述主数据库或所述备数据库;
根据在所述当前操作数据库中针对所述操作请求的操作结果,执行与所述当前操作数据库对应的数据库的数据更新操作,或者,切换至与所述当前操作数据库对应的数据库进行针对所述操作请求的操作。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。

Claims (18)

1.一种针对数据库的数据处理方法,其特征在于,包括:
接收对数据库的操作请求,所述数据库至少包括主数据库和备数据库,其中,所述主数据库与所述备数据库相对应;
根据标记表中的所述数据库可操作状态,确定针对所述操作请求可进行操作的当前操作数据库;其中,所述当前操作数据库包括:所述主数据库或所述备数据库;
根据在所述当前操作数据库中针对所述操作请求中第一操作的操作结果为成功时,则在与所述当前操作数据库对应的数据库中执行所述第一操作,或者,所述第一操作的操作结果为失败时,则切换至与所述当前操作数据库对应的数据库进行针对所述操作请求的第二操作;其中,所述第一操作和所述第二操作为相同的操作。
2.根据权利要求1所述的针对数据库的数据处理方法,其特征在于,还包括:
在所述备数据库中创建所述标记表,或者,在第三数据库中创建所述标记表;其中,所述标记表中记载主数据库可操作状态和备数据库可操作状态。
3.根据权利要求1所述的针对数据库的数据处理方法,其特征在于,包括:
当所述当前操作数据库为所述主数据库时,如果在所述主数据库中针对所述操作请求的第一操作失败,则在所述备数据库中针对所述操作请求进行第二操作;如果在所述主数据库中针对所述操作请求的第一操作成功,则在所述备数据库中进行所述第一操作。
4.根据权利要求3所述的针对数据库的数据处理方法,其特征在于,还包括:
如果在所述备数据库中针对所述操作请求进行的第二操作成功,则将所述标记表中的当前操作数据库更改为所述备数据库;若失败,则返回失败信息。
5.根据权利要求4所述的针对数据库的数据处理方法,其特征在于,所述将所述当前操作数据库更改为所述备数据库,包括:
将所述标记表中的数据库可操作状态由所述主数据库的可操作状态修改为所述备数据的可操作状态。
6.根据权利要求4所述的针对数据库的数据处理方法,其特征在于,所述将所述当前操作数据库更改为所述备数据库,包括:
判断将所述当前操作数据库更改为所述备数据库是否更改成功,若成功,则将在所述备数据库针对所述操作请求进行的第二操作相关的内容回写至所述主数据库中;若失败,则返回失败信息。
7.根据权利要求6所述的针对数据库的数据处理方法,其特征在于,所述将在所述备数据库针对所述操作请求进行的第二操作相关的内容回写至所述主数据库中,包括:
记录所述备数据库中的键值;
根据所述键值对所述主数据库进行回写。
8.根据权利要求3所述的针对数据库的数据处理方法,其特征在于,所述在所述备数据库中进行所述第一操作,包括:
判断在所述备数据库进行所述第一操作是否成功,若成功,返回成功信息;若失败,则记录所述备数据库中的键值,根据所述键值对所述备数据库再次进行所述第一操作。
9.根据权利要求1所述的针对数据库的数据处理方法,其特征在于,包括:
所述当前操作数据库为所述备数据库时,如果所述备数据库针对所述操作请求的第一操作失败,则在所述主数据库中针对所述操作请求进行第二操作;如果在所述备数据库中针对所述操作请求的第一操作成功,则在所述主数据库进行所述第一操作。
10.根据权利要求9所述的针对数据库的数据处理方法,其特征在于,还包括:
如果在所述主数据库中针对所述操作请求进行的所述第二操作成功,则将所述当前操作数据库更改为所述主数据库;若失败,则返回失败信息。
11.根据权利要求10所述的针对数据库的数据处理方法,其特征在于,所述将所述当前操作数据库更改为所述主数据库,包括:
将所述标记表中的数据库可操作状态由所述备数据库的可操作状态修改为所述主数据的可操作状态。
12.根据权利要求10所述的针对数据库的数据处理方法,其特征在于,所述将所述当前操作数据库更改为所述主数据库,包括:
判断将所述当前操作数据库更改为所述主数据库是否更改成功,若成功,则将在所述主数据库针对所述操作请求进行的第二操作相关的内容回写至所述备数据库中;若失败,则返回失败信息。
13.根据权利要求12所述的针对数据库库的数据处理方法,其特征在于,所述在所述主数据库针对所述操作请求进行的第二操作相关的内容回写至所述备数据库中,包括:
记录所述主数据库中的键值;
根据所述键值对所述备数据库进行回写。
14.根据权利要求10所述的针对数据库的数据处理方法,其特征在于,所述在所述主数据库中进行第一操作,包括:
判断在所述主数据库进行所述第一操作是否成功,若成功,返回成功信息;若失败,则记录所述主数据库的键值,根据所述键值对所述主数据库再次进行所述第一操作。
15.根据权利要求1所述的针对数据库的数据处理方法,其特征在于,所述主数据库和所述备数据库均为关系型数据库或非关系型数据库;或者,所述主数据库为关系型数据库,所述备数据库为非关系型数据库;或者,所述主数据库为非关系型数据库,所述备数据库库为关系型数据库。
16.根据权利要求1所述的针对数据库的数据处理方法,其特征在于,当所述备数据库为非关系型数据库时,采用表格存储形式记录数据。
17.一种针对数据库的数据处理装置,其特征在于,包括:
接收单元,用于接收对数据库的操作请求,所述数据库至少包括主数据库和备数据库,其中,所述主数据库与所述备数据库相对应;
确定单元,用于根据标记表中的所述数据库可操作状态,确定针对所述操作请求可进行操作的当前操作数据库;其中,所述当前操作数据库包括:所述主数据库或所述备数据库;
执行单元,用于根据在所述当前操作数据库中针对所述操作请求中第一操作的操作结果为成功时,则在与所述当前操作数据库对应的数据库中执行所述第一操作,或者,所述第一操作的操作结果为失败时,则切换至与所述当前操作数据库对应的数据库进行针对所述操作请求的第二操作;其中,所述第一操作和所述第二操作为相同的操作。
18.一种视频直播的数据处理系统,其特征在于,包括:
客户端,用于向视频直播服务器发送操作请求;
所述视频直播服务器,用于向所述客户端提供视频直播服务内容,并接收所述客户端的操作请求;
主数据库,用于根据所述客户端的操作请求,记载关于所述视频直播服务内容的数据信息;
备数据库,用于根据所述客户端的操作请求,记载与所述主数据库中数据信息相同的数据信息,以及记录所述主数据库和所述备数据库的可操作状态,确定针对所述操作请求可进行操作的当前操作数据库,其中,所述当前操作数据库为所述主数据库或与所述主数据库对应的所述备数据库;
当所述当前操作数据库为所述主数据库时,针对所述操作请求中第一操作的操作结果为成功时,则在与所述当前操作数据库对应的所述备数据库中执行所述第一操作,或者,所述第一操作的操作结果为失败时,则切换至与所述当前操作数据库对应的所述备数据库进行针对所述操作请求的第二操作;
当所述当前操作数据库为所述备数据库时,针对所述操作请求中第一操作的操作结果为成功时,则在与所述当前操作数据库对应的所述主数据库中执行所述第一操作,或者,所述第一操作的操作结果为失败时,则切换至与所述当前操作数据库对应的所述主数据库进行针对所述操作请求的第二操作;其中,所述第一操作和所述第二操作为相同的操作。
CN201811024924.XA 2018-09-04 2018-09-04 一种针对数据库的数据处理方法及装置,数据处理系统 Active CN110928945B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811024924.XA CN110928945B (zh) 2018-09-04 2018-09-04 一种针对数据库的数据处理方法及装置,数据处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811024924.XA CN110928945B (zh) 2018-09-04 2018-09-04 一种针对数据库的数据处理方法及装置,数据处理系统

Publications (2)

Publication Number Publication Date
CN110928945A CN110928945A (zh) 2020-03-27
CN110928945B true CN110928945B (zh) 2023-06-20

Family

ID=69855006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811024924.XA Active CN110928945B (zh) 2018-09-04 2018-09-04 一种针对数据库的数据处理方法及装置,数据处理系统

Country Status (1)

Country Link
CN (1) CN110928945B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111522850A (zh) * 2020-04-23 2020-08-11 京东数字科技控股有限公司 一种数据对象的存储和查询方法、装置、设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066354A (zh) * 2017-04-18 2017-08-18 中国银联股份有限公司 一种数据库的切换方法、主服务器以及从服务器
CN107391758A (zh) * 2017-08-24 2017-11-24 阿里巴巴集团控股有限公司 数据库切换方法、装置及设备
CN108009239A (zh) * 2017-11-29 2018-05-08 杭州有赞科技有限公司 数据库访问方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106202441A (zh) * 2016-07-13 2016-12-07 腾讯科技(深圳)有限公司 基于关系型数据库的数据处理方法、装置和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107066354A (zh) * 2017-04-18 2017-08-18 中国银联股份有限公司 一种数据库的切换方法、主服务器以及从服务器
CN107391758A (zh) * 2017-08-24 2017-11-24 阿里巴巴集团控股有限公司 数据库切换方法、装置及设备
CN108009239A (zh) * 2017-11-29 2018-05-08 杭州有赞科技有限公司 数据库访问方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Ali Muhammad Rushdi,and etc.Switching-algebraic algorithmic derivation of candidate keys in relational databases.《2016 International Conference on Emerging Trends in Communication Technologies (ETCT)》.2017,第1-5页. *
肖航 ; .数据库服务器实时备份与故障自动切换系统的构建.东南传播.2009,(04),第151-153页. *

Also Published As

Publication number Publication date
CN110928945A (zh) 2020-03-27

Similar Documents

Publication Publication Date Title
US11416344B2 (en) Partial database restoration
CN111177165B (zh) 数据一致性检测的方法、装置及设备
US20150213100A1 (en) Data synchronization method and system
CN107426265A (zh) 数据一致性同步的方法及设备
CN106933843B (zh) 数据库心跳检测方法以及装置
US20120109919A1 (en) High availability database management system and database management method using same
CN106899654B (zh) 一种序列值生成方法、装置及系统
US9514176B2 (en) Database update notification method
US20180121531A1 (en) Data Updating Method, Device, and Related System
CN108509296B (zh) 一种处理设备故障的方法和系统
CN110928945B (zh) 一种针对数据库的数据处理方法及装置,数据处理系统
CN111930788B (zh) 操作请求的处理方法、装置、设备、可读存储介质及系统
CN111404737B (zh) 一种容灾处理方法以及相关装置
CN107528703B (zh) 一种用于管理分布式系统中节点设备的方法与设备
CN112650629A (zh) 区块链索引数据恢复方法、装置、设备和计算机存储介质
US11930292B2 (en) Device state monitoring method and apparatus
CN109918439B (zh) 数据同步方法及其应用的环路检测方法和相关装置
CN108959548B (zh) 业务请求的处理方法及装置
CN111694724A (zh) 分布式表格系统的测试方法、装置、电子设备及存储介质
CN116185706A (zh) 数据备份方法、装置、计算及存储介质及电子设备
CN112632211A (zh) 用于移动机器人的语义信息处理方法与设备
CN106375354B (zh) 数据处理方法及装置
CN112148725B (zh) 一种实现全局唯一索引的方法及装置
CN111666035B (zh) 一种分布式存储系统的管理方法及装置
CN110516439B (zh) 一种检测方法、装置、服务器及计算机可读介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant