跨机房多活分布式数据库管理系统和方法转让专利

申请号 : CN201610709385.8

文献号 : CN106341454B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 成思敏李恒春潘浩赵子颖

申请人 : 世纪龙信息网络有限责任公司

摘要 :

本发明涉及一种跨机房多活分布式数据库管理系统和方法,系统包括数据库中间件会话代理集群、数据库存储实例集群和中间件双向数据同步控制组件集群,数据库中间件会话代理集群分布于不同机房中,数据库存储实例集群包括设置于对应机房的地区集群,各地区集群均连接数据库中间件会话代理集群和中间件双向数据同步控制组件集群。通过中间件双向数据同步控制组件集群对不同机房的地区集群进行数据信息同步,确保各地区集群的数据一致性。数据库中间件会话代理集群接收用户输入的业务会话数据之后,若检测到业务会话数据所对应机房的地区集群发生宕机故障,切换至其他机房的地区集群进行对业务会话数据的读写操作,不会因地区集群出现故障而影响业务会话数据的正常读写,提高了数据读写操作可靠性。

权利要求 :

1.一种跨机房多活分布式数据库管理系统,其特征在于,包括数据库中间件会话代理集群、数据库存储实例集群和中间件双向数据同步控制组件集群,所述数据库中间件会话代理集群分布于不同机房中,所述数据库存储实例集群包括设置于对应机房的地区集群,各所述地区集群均连接所述数据库中间件会话代理集群和所述中间件双向数据同步控制组件集群,所述中间件双向数据同步控制组件集群用于对不同机房的地区集群进行数据信息同步;所述数据库中间件会话代理集群用于接收业务会话数据并检测所述业务会话数据所对应机房的地区集群是否发生宕机故障,若是,则切换至其他机房的地区集群进行对所述业务会话数据的读写操作;若否,则通过所述业务会话数据所对应机房的地区集群,进行对所述业务会话数据的读写操作;所述数据库中间件会话代理集群负责协调各地区集群的负载均衡,在发生故障时及时转移,将所述负载转移至未发生宕机故障的地区集群,并且在故障消除后对所述负载进行恢复,按照地区集群正常工作时的模式进行所述业务会话数据读取操作。

2.根据权利要求1所述的跨机房多活分布式数据库管理系统,其特征在于,所述地区集群为主从机结构的地区集群;所述数据库中间件会话代理集群在所述地区集群的主机服务器发生宕机故障时,控制从机服务器进行对业务会话数据的读写操作,以及在所述地区集群的主机服务器和从机服务器均发生宕机故障时,切换至其他机房的地区集群进行对所述业务会话数据的读写操作;

所述中间件双向数据同步控制组件集群还用于对同一地区集群的主机服务器和从机服务器进行数据信息同步。

3.根据权利要求1所述的跨机房多活分布式数据库管理系统,其特征在于,所述地区集群为双主机结构的地区集群;所述数据库中间件会话代理集群还用于检测所述地区集群的主机负载,并当所述主机负载超过预设阀值时控制双主机服务器分别进行对业务会话数据的读和写操作,以及在所述地区集群的双主机服务器均发生宕机故障时,切换至其他机房的地区集群进行对所述业务会话数据的读写操作;

所述中间件双向数据同步控制组件集群还用于对同一地区集群的双主机服务器进行数据信息同步。

4.根据权利要求1所述的跨机房多活分布式数据库管理系统,其特征在于,所述中间件双向数据同步控制组件集群采用全双工传输模式,通过多线程复制对不同机房的地区集群进行数据信息同步。

5.根据权利要求1所述的跨机房多活分布式数据库管理系统,其特征在于,所述数据库中间件会话代理集群包括主机级监控设备、复制级监控设备、网络级监控设备、事务级监控设备和应用服务监控设备中的至少一种,所述主机级监控设备连接所述地区集群,用于监控所述地区集群中主机服务器运行参数并输出;

所述复制级监控设备连接所述地区集群,用于监控所述地区集群的数据同步状态并输出;

所述网络级监控设备连接所述地区集群,用于监控所述地区集群中主机服务器网络状态并输出;

所述事务级监控设备连接所述地区集群,用于对所述地区集群进行故障监控和识别;

所述应用服务监控设备连接所述地区集群,用于对所述地区集群进行读写测试,得到测试结果并输出。

6.根据权利要求1所述的跨机房多活分布式数据库管理系统,其特征在于,所述数据库中间件会话代理集群包括进程级监控设备、数据一致性监控设备和数据延迟监控设备中的至少一种,所述进程级监控设备连接所述中间件双向数据同步控制组件集群,用于监控所述中间件双向数据同步控制组件集群的进程运行状况并输出;

所述数据一致性监控设备连接所述中间件双向数据同步控制组件集群,用于监控双向数据同步数据并输出;

所述数据延迟监控设备连接所述中间件双向数据同步控制组件集群,用于采集数据传输时长并输出。

7.根据权利要求1所述的跨机房多活分布式数据库管理系统,其特征在于,还包括中间件服务管理平台,所述中间件服务管理平台连接所述数据库中间件会话代理集群、所述地区集群和所述中间件双向数据同步控制组件集群,用于对所述数据库中间件会话代理集群、所述地区集群和所述中间件双向数据同步控制组件集群进行节点信息管理。

8.一种跨机房多活分布式数据库管理方法,其特征在于,包括以下步骤:

中间件双向数据同步控制组件集群对不同机房的地区集群进行数据信息同步;

数据库中间件会话代理集群接收业务会话数据,并检测所述业务会话数据所对应机房的地区集群是否发生宕机故障;

若是,则数据库中间件会话代理集群切换至其他机房的地区集群进行对所述业务会话数据的读写操作;

若否,则数据库中间件会话代理集群通过所述业务会话数据所对应机房的地区集群,进行对所述业务会话数据的读写操作;

所述数据库中间件会话代理集群协调各地区集群的负载均衡,在发生故障时及时转移,将所述负载转移至未发生宕机故障的地区集群,并且在故障消除后对所述负载进行恢复,按照地区集群正常工作时的模式进行所述业务会话数据读取操作。

9.根据权利要求8所述的跨机房多活分布式数据库管理方法,其特征在于,所述中间件双向数据同步控制组件集群对不同机房的地区集群进行数据信息同步,包括:所述中间件双向数据同步控制组件集群用全双工传输模式,通过多线程复制对不同机房的地区集群进行数据信息同步。

10.根据权利要求8所述的跨机房多活分布式数据库管理方法,其特征在于,还包括以下步骤:中间件服务管理平台对所述数据库中间件会话代理集群、所述地区集群和所述中间件双向数据同步控制组件集群进行节点信息管理。

说明书 :

跨机房多活分布式数据库管理系统和方法

技术领域

[0001] 本发明涉及分布式数据库技术领域,特别是涉及一种跨机房多活分布式数据库管理系统和方法。

背景技术

[0002] 在大数据背景下,分布式数据库成为解决大数据瓶颈的重要手段,而如何实现分布式数据库的高可用性对于分布式数据库的应用性至关重要。随着“互联网+”时代的到来,互联网行业所需处理的数据量与日俱增,用户并发访问量也在快速增长,服务提供商为了保障线上服务,会优先考虑在异地机房部署同一套系统,当大量用户并发访问时起到分流作用。
[0003] 传统的跨机房分布式数据库系统是在不同的区域建立机房,设置独立的数据库服务器集群,只对对应区域内的用户数据进行存储和访问管理。当某一机房内的数据库服务器集群出现故障时需要断电维修,在排除故障后才能继续提供数据存储和访问服务,传统的跨机房分布式数据库系统存在数据读写操作可靠性低的缺点。

发明内容

[0004] 基于此,有必要针对上述问题,提供一种可提高数据读写操作可靠性的跨机房多活分布式数据库管理系统和方法。
[0005] 一种跨机房多活分布式数据库管理系统,包括数据库中间件会话代理集群、数据库存储实例集群和中间件双向数据同步控制组件集群,所述数据库中间件会话代理集群分布于不同机房中,所述数据库存储实例集群包括设置于对应机房的地区集群,各所述地区集群均连接所述数据库中间件会话代理集群和所述中间件双向数据同步控制组件集群,[0006] 所述中间件双向数据同步控制组件集群用于对不同机房的地区集群进行数据信息同步;所述数据库中间件会话代理集群用于接收业务会话数据并检测所述业务会话数据所对应机房的地区集群是否发生宕机故障,若是,则切换至其他机房的地区集群进行对所述业务会话数据的读写操作;若否,则通过所述业务会话数据所对应机房的地区集群,进行对所述业务会话数据的读写操作。
[0007] 一种跨机房多活分布式数据库管理方法,包括以下步骤:
[0008] 中间件双向数据同步控制组件集群对不同机房的地区集群进行数据信息同步;
[0009] 数据库中间件会话代理集群接收业务会话数据,并检测所述业务会话数据所对应机房的地区集群是否发生宕机故障;
[0010] 若是,则数据库中间件会话代理集群切换至其他机房的地区集群进行对所述业务会话数据的读写操作;
[0011] 若否,则数据库中间件会话代理集群通过所述业务会话数据所对应机房的地区集群,进行对所述业务会话数据的读写操作。
[0012] 上述跨机房多活分布式数据库管理系统和方法,中间件双向数据同步控制组件集群对不同机房的地区集群进行数据信息同步。数据库中间件会话代理集群接收业务会话数据并检测业务会话数据所对应机房的地区集群是否发生宕机故障,若是,则切换至其他机房的地区集群进行对业务会话数据的读写操作;若否,则通过业务会话数据所对应机房的地区集群,进行对业务会话数据的读写操作。通过中间件双向数据同步控制组件集群对不同机房的地区集群进行数据信息同步,确保各地区集群的数据一致性。数据库中间件会话代理集群接收用户输入的业务会话数据之后,若检测到业务会话数据所对应机房的地区集群发生宕机故障,切换至其他机房的地区集群进行对业务会话数据的读写操作,不会因地区集群出现故障而影响业务会话数据的正常读写,提高了数据读写操作可靠性。

附图说明

[0013] 图1为一实施例中跨机房多活分布式数据库管理系统的结构图;
[0014] 图2为另一实施例中跨机房多活分布式数据库管理系统的结构图。
[0015] 图3为一实施例中跨机房多活分布式数据库管理方法的流程图。

具体实施方式

[0016] 在一个实施例中,一种跨机房多活分布式数据库管理系统,如图1所示,包括数据库中间件会话代理集群120、数据库存储实例集群140和中间件双向数据同步控制组件集群160,数据库中间件会话代理集群120分布于不同机房中,数据库存储实例集群140包括设置于对应机房的地区集群142,各地区集群142均连接数据库中间件会话代理集群120和中间件双向数据同步控制组件集群160。
[0017] 具体如图2所示,可通过Web业务服务集群200接收用户端输入的业务会话数据,并经应用层中间件高可用负载集群300发送至数据库中间件会话代理集群120。Web业务服务集群200属于应用层集群部署,按照配置的数据源信息,经应用层中间件高可用负载集群300将核心数据存取交由数据库中间件会话代理集群120进行路由分发到指定实例库执行。
[0018] 中间件双向数据同步控制组件集群160用于对不同机房的地区集群142进行数据信息同步。数据库中间件会话代理集群120用于接收业务会话数据并检测业务会话数据所对应机房的地区集群142是否发生宕机故障,若是,则切换至其他机房的地区集群142进行对业务会话数据的读写操作;若否,则通过业务会话数据所对应机房的地区集群142,进行对业务会话数据的读写操作。
[0019] 业务会话数据具体可包括存储数据和访问数据两种类型,不同机房的地区集群142负责对应地理区域的数据读写管理。在各机房的地区集群142正常工作时,数据库中间件会话代理集群120接收到客户端发送的业务会话数据之后根据具体的数据来源和数据类型进行读写操作。比如,在接收到存储数据后,将存储数据存入对应机房的地区集群142中,在接收到访问数据后,从对应机房的地区集群142中提取对应的查询结果并返回至客户端。
[0020] 具体地,可将数据库中间件会话代理集群120、地区集群142和中间件双向数据同步控制组件集群160中的每台服务器机器作为一个节点。数据库中间件会话代理集群120对Web业务服务集群200的数据请求处理,实现服务端分片数据合并、排序、分组功能,解决阻塞与假死问题,实现基于数据库实例连接池的共享与管理。在收到客户端发送的SQL(Structured Query Language,结构化查询语言)请求时,先对SQL进行语法分析与检查,分析的结果发送至SQL路由。SQL路由策略支持传统的基于表格的分片字段方式进行分片,也支持独有的基于数据库E-R关系的分片策略,对于路由到多个数据节点的SQL,则会对收到的数据集进行“归并”然后把结果集输出到客户端。其中,分片节点映射后端的实际物理数据库实例,并配置多个备用引用实例,在对地区集群142的主机服务器进行心跳检测发生宕机时及时切换以实现高可用。
[0021] 数据库中间件会话代理集群120负责协调各地区集群142负载均衡,在发生故障时及时转移,将负载转移至未发生宕机故障的地区集群142。具体地,可对于每个组件同步服务节点,利用zookeeper缓存存活列表,当节点失效时,zookeeper watcher机制将刷新每个节点机器的内存,然后针对每次负载均衡选择时只针对当前存活的节点,确保调度的可靠性。其中,zookeeper属于分布式应用程序的协调服务,能够为分布式集群提供一致性协调功能。此外,数据库中间件会话代理集群120还可在故障消除后对负载进行恢复,按照地区集群142正常工作时的模式进行数据读取操作。
[0022] 本实施例中,数据库存储实例集群140为支持水平切分与扩容的分布式数据库集群,支持中间件双向数据同步控制组件集群160的路由分发请求与数据同步,并做冗余灾备,防止意外发生。采用水平分片的模式对数据库进行垂直分片,每个数据库表的结构是一致的,但是每个库中的数据表的数据是不一样的,将不同的数据分布到不同的数据库以解决单库单片支持的数据量有限,并发量受限的问题。
[0023] 中间件双向数据同步控制组件集群160负责不同机房的地区集群142之间的数据传输,实现异地间的数据信息同步服务。具体可根据数据更新日志获取数据库变更数据,完成数据的序列化同步传输服务,确保各地区集群的数据一致性。数据一致性是指在两地修改的数据已经保存到本地数据库,通过中间件双向数据同步控制组件集群160同步之后,保证两地数据的一致性,其原理在于A、B两地发生数据变更,首先将B地数据按时间戳的更改记录同步至A地,再将A地的变更记录按增量同步至B地,通过此单向回路同步算法从而保证两地数据的最终一致性。
[0024] 在数据库中间件会话代理集群120进行负载转移之后,若检测到切换后与原始数据有个别数据一致性问题,则中间件双向数据同步控制组件集群160还根据同步的进度记录点与事务处理记录,校验所有相关节点的数据库,或从保存于磁盘中的记录数据发生或者潜在发生变更的SQL语句二进制文件中,按照时间对应顺序同步补录各个节点的数据,完成数据的复制同步。
[0025] 在地区集群142出现宕机故障之后,数据库中间件会话代理集群120还检测地区集群142内的故障机器在限定时间内重启之后监测正常,则作为备机使用,否则按照下线流程处理。此外,在保证业务不受主机服务器或网络故障影响的前提之下,当集群节点中缺少一台或者多台机器,可以根据故障机的后续处理情况,进行人为的补充添加相应双主节点,若分布式集群架构中发生了异地切换,如单节点切换、多节点切换或者全部切换,都需要在保障业务运营不受干扰的时间段内,进行人工确认,评估并审核确认后触发恢复原架构的体系。
[0026] 在一个实施例中,中间件双向数据同步控制组件集群160采用全双工传输模式,通过多线程复制对不同机房的地区集群142进行数据信息同步,提高数据同步效率。
[0027] 具体地,中间件双向数据同步控制组件集群160借助数据库的数据更新日志,串行获取批量的解析数据,在每一个批次获取到的数据中加入全局标识,并在数据传输层进行并行处理,数据传递到目标库中保存前,按照每批次数据对应的全局标识将数据进行串行加载。期间借助内存控制构建传输缓存的滑动窗口,加速传输效率。
[0028] 上述跨机房多活分布式数据库管理系统,通过中间件双向数据同步控制组件集群160对不同机房的地区集群142进行数据信息同步,确保各地区集群142的数据一致性。数据库中间件会话代理集群120接收用户输入的业务会话数据之后,若检测到业务会话数据所对应机房的地区集群142发生宕机故障,切换至其他机房的地区集群142进行对业务会话数据的读写操作,不会因地区集群142出现故障而影响业务会话数据的正常读写,提高了数据读写操作可靠性。
[0029] 在一个实施例中,地区集群142为主从机结构的地区集群。数据库中间件会话代理集群120在地区集群142的主机服务器发生宕机故障时,控制从机服务器进行对业务会话数据的读写操作,以及在地区集群142的主机服务器和从机服务器均发生宕机故障时,切换至其他机房的地区集群142进行对业务会话数据的读写操作。中间件双向数据同步控制组件集群160还用于对同一地区集群的主机服务器和从机服务器进行数据信息同步。
[0030] 地区集群142采用主从机结构模式,在正常工作时数据库中间件会话代理集群120控制地区集群142中的主机服务器进行数据读写操作,从机服务器作为备机。当主机服务器出现宕机故障时,将备机提升为主机模式,支撑读写业务,提高数据读写操作可靠性。当地区集群142的主机服务器和从机服务器均发生宕机故障时,则认为地区集群142发生了宕机故障,切换至其他机房的地区集群142进行对业务会话数据的读写操作。
[0031] 中间件双向数据同步控制组件集群160负责本地主机服务器和从机服务器的数据同步,同样可采用全双工传输模式,通过多线程复制负责本地主从机服务器的数据信息同步服务。
[0032] 在一个实施例中,地区集群142为双主机结构的地区集群。数据库中间件会话代理集群120还用于检测地区集群142的主机负载,并当主机负载超过预设阀值时控制双主机服务器分别进行对业务会话数据的读和写操作。中间件双向数据同步控制组件集群160还用于对同一地区集群的双主机服务器进行数据信息同步。
[0033] 地区集群142采用双主机结构模式,在正常工作时数据库中间件会话代理集群120控制地区集群142中的一个主机服务器进行数据读写操作,实时对主机服务器的负载进行检测,当主机负载超过预设阀值时控制地区集群142启动双主机工作模式,分别通过不同的主机服务器进行读和写操作,实现读写分离,起到高并发负载均衡的作用。若双主机服务器均发生宕机故障,切换至其他机房的地区集群142进行对业务会话数据的读写操作。
[0034] 中间件双向数据同步控制组件集群160负责本地双主机服务器之间的数据同步,同样可采用全双工传输模式,通过多线程复制负责本地主从机服务器的数据信息同步服务。
[0035] 在一个实施例中,继续参照图2,地区集群142为双主机、双从机结构的地区集群,即地区集群142包括两个主机服务器和两个从机服务器,各从机服务器对应一主机服务器。在正常工作时通过一个主机服务器进行读写(R/W)操作,当主机服务器的负载超过预设阀值时启动双主机工作模式,利用两个主机服务器实现读写分离。若主机服务器出现宕机故障,则将对应的从机服务器提升为主机模式。当地区集群142的所有主机服务器和从机服务器均发生宕机故障,则认为地区集群142出现宕机故障,数据库中间件会话代理集群120切换至其他机房的地区集群142进行读写操作。
[0036] 本实施例中,数据库存储实例集群140包括本地的双主读写分离实例以及跨机房多主集群实例,本地主库(即主机服务器)发生宕机时,将备机提升为主机模式支撑读写业务,中间件双向数据同步控制组件集群160负责本地或异地间的数据信息同步服务,在多管道双向同步的前提下保障数据的最终一致性。
[0037] 在主库发生宕机时,数据库中间件会话代理集群120将选择满足条件的可写后台进行连接,尝试本地的双主切换或者直接切换到另外一个主库上去读写操作保证服务的不间断。此外,数据库中间件会话代理集群120对后端数据库的状态进行判断,根据后端数据库对其状态进行标记,在每一次选择后端数据库时,会选择哪些连接可用的数据库进行连接,当发现主机不可用时,通过数据中间件代理层切换尝试将备机变成主机,支撑读写业务。
[0038] 在一个实施例中,数据库中间件会话代理集群120包括主机级监控设备、复制级监控设备、网络级监控设备、事务级监控设备和应用服务监控设备中的至少一种。本实施例中数据库中间件会话代理集群120提供了主机级监控、复制级监控、网络级监控、事务级监控和应用服务监控。
[0039] 主机级监控设备连接地区集群142,用于监控地区集群142中主机服务器运行参数并输出。具体可监控主机负载、CPU(Central Processing Unit,中央处理器)、MEMORY(存储器)、IO(输入输出)、SWAP(交换分区)、DISK(磁盘)等实时主机服务器运行参数并输出。
[0040] 复制级监控设备连接地区集群142,用于监控地区集群142的数据同步状态并输出。复制级监控设备主要监控数据的同步,包括本地双主复制与异地同步复制。其中,按照多主的数据同步规格,主要采集数据通道运行状态,如等待、寻址、停止与正常工作状态,根据分布式中间件通道组件记录的各个方向数据同步状态,确定每个通道的双向数据同步是否正常。
[0041] 网络级监控设备连接地区集群142,用于监控地区集群142中主机服务器网络状态并输出。具体地,网络级监控设备通过ping目标主机统计成功率,并根据预设阀值与网络的I/O流量判断网络状态,结合进程监控区分系统故障与网络故障。
[0042] 事务级监控设备连接地区集群142,用于对地区集群142进行故障监控和识别。因分布式数据库系统应用部分有分布式事务且根据分布式事务的特性,采用一套层次监控方法,在事务提交之前进行故障监控和识别,减少因为故障失效造成的事务提交,避免由于网络延迟及节点故障引起的事务阻塞,并对此故障做有效识别并且做出响应及处理,从而有效防止数据一致性问题的发生。
[0043] 应用服务监控设备连接地区集群142,用于对地区集群142进行读写测试,得到测试结果并输出。应用服务监控设备主要按照业务层服务提供角度,穿透于各地集群数据库实例中进行读写测试,通过访问不同节点数据,可监控数据的同步延时、数据拥塞、网络环境等变量因素,及时发现并处理影响业务的故障。
[0044] 在一个实施例中,数据库中间件会话代理集群120包括进程级监控设备、数据一致性监控设备和数据延迟监控设备中的至少一种。本实施例中数据库中间件会话代理集群120提供了进程级监控、数据一致性监控和数据延迟监控。
[0045] 进程级监控设备连接中间件双向数据同步控制组件集群160,用于监控中间件双向数据同步控制组件集群160的进程运行状况并输出。进程级监控主要包括中间件双向数据同步控制组件集群160的分布式组件模块进程运行状况,如中间件组件进程、同步服务进程等,本实施例中通过telnet监控服务端口实现进程级监控。
[0046] 数据一致性监控设备连接中间件双向数据同步控制组件集群160,用于监控双向数据同步数据并输出。数据一致性监控包括各个通道的双向的数据同步量和同步进度。统计各维度数据,监控角度设置为:单位时间内成功地传送数据的数量,用于数据记录统计,即insert/update/delete的变更总和。数据的同步进度可根据数据库日志的同步标记点信息,针对每个同步批次的唯一标识,查看批次的运行时间,方便定位性能瓶颈。同步的数据映射关系定义同步的源和目标的表信息,按照表字段纬度进行数据统计。
[0047] 数据延迟监控设备连接中间件双向数据同步控制组件集群160,用于采集数据传输时长并输出。通过采集增量数据从源库至目标库的时间差,即数据库同步到目标库成功时间减去数据库源库产生变更时间(单位为:秒),按指定阀值预设监控的策略。
[0048] 此外,数据库中间件会话代理集群120还可提供自我监控,具体包含监控系统本身服务监控,从系统级监控至进程、网络级监控维度进行分布式集群节点监控。
[0049] 上述主机级监控、复制级监控、网络级监控、进程级监控、事务级监控、数据一致性监控、数据延迟监控、应用服务监控以及自我监控,可通过脚本形式运行于后台服务器的定时任务中,实现跨机房多活分布式数据库的层级监控,并将以短信与邮件方式搜集告警数据并发送给指定负责人。
[0050] 在一个实施例中,跨机房多活分布式数据库管理系统还包括中间件服务管理平台,中间件服务管理平台连接数据库中间件会话代理集群120、地区集群142和中间件双向数据同步控制组件集群160,用于对数据库中间件会话代理集群120、地区集群142和中间件双向数据同步控制组件集群160进行节点信息管理。
[0051] 中间件服务管理平台依照负载切换的变更情况,更新实时的集群架构部署节点信息及拓扑架构信息,便于对跨机房多活分布式数据库的管理。本实施例中,中间件服务管理平台为基于GUI(Graphical User Interface,图形用户界面)的中间件服务管理平台,可提高操作便利性。具体地,中间件服务管理平台包括节点信息管理、中间件数据同步管理、监控管理和异常处理与日志管理。
[0052] 其中,节点信息管理包含数据库中间件会话代理集群120、数据库存储实例集群140和中间件双向数据同步控制组件集群160的各个节点信息工作状态,当发生节点失效时,按照中间件双向数据同步控制组件集群160的故障切换与恢复机制,实时更新节点部署信息,并支持人工的主机服务器信息审核。
[0053] 中间件数据同步管理主要对数据同步服务工作状态进行管理。数据同步服务工作状态主要包括等待、寻址、或者正常工作中状态。具体可借助监控采集的分布式协调组件双向数据同步服务状态,展示并判断数据通道的正常与否。
[0054] 中间件数据同步管理还支持创建用户的授权管理,操作权限包括同步配置管理与同步状态查询,同步配置管理包含数据源创建、解析配置、添加数据表以及同步任务的相关阀值控制;同步状态查询包括异常详尽信息及统计。首先确定源数据库IP与目标数据库IP,并确保源数据库的数据变更日志已经开启,数据同步需要精确到具体表与字段,在实际部署完成节点服务后,通过后台管理平台,进行数据传输通道与节点的关联挂载,定义数据源表的映射关系,每个节点在启动完成之后,都会在zookeeper中创建一个映射节点,当节点发生宕机时,根据zookeeper建立的会话机制,在主机服务器失去心跳响应超过一定时间后,将删除此异常节点。期间,中间件服务管理平台将监听整个中间件双向数据同步控制组件集群160,针对数据库存储实例集群140的异常子节点在固定的保护时间周期内,若重启成功,则不作任何处理,否则判定异常,并通过异常信息定位配置点,找到使用了该节点的所有同步任务,对每个同步任务发起重启指令,让所有的同步任务重新做一次负载均衡选择,避免通道的数据同步任务终止于异常节点上,陷入等待死循环中。在发生负载切换时推送配置到其余所有子节点,各个客户端在收到双主切换消息之后,可更改自身的数据库链接,完成数据库的切换配套工作。
[0055] 监控管理进行各项阀值管理,如主机心跳检测阀值,节点切换判定阀值以及短信、邮件通知名单等。实现各个监控指标的开关控制并归集脚本部署管理。
[0056] 异常处理与日志管理是在基于脚本监控的形式运行于后台服务器的定时任务中,定时执行监控脚本,并通过短信与邮件的方式进行告警。此外,基于业务服务层级监控则专门部署一套穿透测试系统,用于业务请求的测试访问,及时定位排查影响业务往来的故障。当监控到异地同步数据状态异常时,除告警外还尝试触发自动恢复流程,确定异常类型并重启同步。重启同步结束后,搜集相关的异常日志信息,整理处理报表供后期人工优化分析。在系统与进程级的监控上,支持监控指标的阀值设置,并对不同主机不同区域的服务进行差异化监控,并支持GUI的脚本自动化部署,将相关的监控脚本放在专用的监控服务器上,进行自动化配置部署。
[0057] 在一个实施例中,一种跨机房多活分布式数据库管理方法,基于上述跨机房多活分布式数据库管理系统实现,如图3所示,该方法包括以下步骤:
[0058] 步骤S120:中间件双向数据同步控制组件集群对不同机房的地区集群进行数据信息同步。
[0059] 中间件双向数据同步控制组件集群负责不同机房的地区集群之间的数据传输,实现异地间的数据信息同步服务。具体可根据数据更新日志获取数据库变更数据,完成数据的序列化同步传输服务,确保各地区集群的数据一致性。
[0060] 本实施例中,步骤S120包括:中间件双向数据同步控制组件集群采用全双工传输模式,通过多线程复制对不同机房的地区集群进行数据信息同步,提高数据同步效率。
[0061] 步骤S140:数据库中间件会话代理集群接收业务会话数据,并检测业务会话数据所对应机房的地区集群是否发生宕机故障。
[0062] 业务会话数据具体可包括存储数据和访问数据两种类型,可将数据库中间件会话代理集群、地区集群和中间件双向数据同步控制组件集群中的每台服务器机器作为一个节点。数据库中间件会话代理集群对Web业务服务集群的数据请求处理,实现服务端分片数据合并、排序、分组功能,解决阻塞与假死问题,实现基于数据库实例连接池的共享与管理。在接收到业务会话数据后,检测业务会话数据所对应机房的地区集群是否发生宕机故障,若是,则进行步骤S160;若否,则进行步骤S180。
[0063] 步骤S160:数据库中间件会话代理集群切换至其他机房的地区集群进行对业务会话数据的读写操作。
[0064] 数据库中间件会话代理集群负责协调各地区集群负载均衡,在发生故障时及时转移,可将负载转移至未发生宕机故障的地区集群。此外,在数据库中间件会话代理集群进行负载转移之后,还可包括数据库中间件会话代理集群检测到切换后与原始数据有个别数据一致性问题时,按照时间对应顺序同步补录数据的步骤。
[0065] 中间件双向数据同步控制组件集群具体可根据同步的进度记录点与事务处理记录,校验所有相关节点的数据库,或从保存于磁盘中的记录数据发生或者潜在发生变更的SQL语句二进制文件中,按照时间对应顺序同步补录各个节点的数据,完成数据的复制同步。
[0066] 步骤S180:数据库中间件会话代理集群通过业务会话数据所对应机房的地区集群,进行对业务会话数据的读写操作。
[0067] 若业务会话数据所对应机房的地区集群没有发生宕机故障,则直接进行对应的读写操作。
[0068] 上述跨机房多活分布式数据库管理方法,通过中间件双向数据同步控制组件集群对不同机房的地区集群进行数据信息同步,确保各地区集群的数据一致性。数据库中间件会话代理集群接收用户输入的业务会话数据之后,若检测到业务会话数据所对应机房的地区集群发生宕机故障,切换至其他机房的地区集群进行对业务会话数据的读写操作,不会因地区集群出现故障而影响业务会话数据的正常读写,提高了数据读写操作可靠性。
[0069] 在一个实施例中,地区集群为主从机结构的地区集群。步骤S140中检测业务会话数据所对应机房的地区集群是否发生宕机故障,包括:检测地区集群中的主机服务器和从机服务器是否均发生宕机故障,若是,则地区集群发生宕机故障。跨机房多活分布式数据库管理方法还包括中间件双向数据同步控制组件集群对同一地区集群的主机服务器和从机服务器进行数据信息同步的步骤。
[0070] 具体地,数据库中间件会话代理集群在地区集群的主机服务器发生宕机故障时,控制从机服务器进行对业务会话数据的读写操作,以及在地区集群的主机服务器和从机服务器均发生宕机故障时,切换至其他机房的地区集群进行对业务会话数据的读写操作。中间件双向数据同步控制组件集群负责本地主机服务器和从机服务器的数据同步,同样可采用全双工传输模式,通过多线程复制负责本地主从机服务器的数据信息同步服务。
[0071] 在一个实施例中,地区集群为双主机结构的地区集群。步骤S140中检测业务会话数据所对应机房的地区集群是否发生宕机故障,包括:检测地区集群中的双主机服务器是否均发生宕机故障,若是,则地区集群发生宕机故障。此外,跨机房多活分布式数据库管理方法还包括步骤:
[0072] 数据库中间件会话代理集群检测地区集群的主机负载,并当主机负载超过预设阀值时控制双主机服务器分别进行对业务会话数据的读和写操作。
[0073] 中间件双向数据同步控制组件集群对同一地区集群的双主机服务器进行数据信息同步。
[0074] 具体地,在正常工作时数据库中间件会话代理集群控制地区集群中的一个主机服务器进行数据读写操作,实时对主机服务器的负载进行检测,当主机负载超过预设阀值时控制地区集群启动双主机工作模式,分别通过不同的主机服务器进行读和写操作,实现读写分离,起到高并发负载均衡的作用。若双主机服务器均发生宕机故障,切换至其他机房的地区集群进行对业务会话数据的读写操作。
[0075] 中间件双向数据同步控制组件集群负责本地双主机服务器之间的数据同步,同样可采用全双工传输模式,通过多线程复制负责本地主从机服务器的数据信息同步服务。
[0076] 在一个实施例中,地区集群为双主机、双从机结构的地区集群。步骤S140中检测业务会话数据所对应机房的地区集群是否发生宕机故障,包括:检测地区集群中的双主机服务器和双从机服务器是否均发生宕机故障,若是,则地区集群发生宕机故障。跨机房多活分布式数据库管理方法还包括步骤:
[0077] 数据库中间件会话代理集群检测地区集群的主机负载,并当主机负载超过预设阀值时控制双主机服务器分别进行对业务会话数据的读和写操作。
[0078] 中间件双向数据同步控制组件集群对同一地区集群的双主机服务器和双从机服务器进行数据信息同步。
[0079] 在正常工作时通过一个主机服务器进行读写(R/W)操作,当主机服务器的负载超过预设阀值时启动双主机工作模式,利用两个主机服务器实现读写分离。若主机服务器出现宕机故障,则将对应的从机服务器提升为主机模式。当地区集群的所有主机服务器和从机服务器均发生宕机故障,则认为地区集群出现宕机故障,数据库中间件会话代理集群切换至其他机房的地区集群进行读写操作。
[0080] 在一个实施例中,步骤S140之间,跨机房多活分布式数据库管理方法还包括数据库中间件会话代理集群进行主机级监控、复制级监控、网络级监控、事务级监控、应用服务监控进程级监控、数据一致性监控和数据延迟监控的步骤。
[0081] 主机级监控指监控地区集群中主机服务器运行参数并输出。具体可监控主机负载、CPU、MEMORY、IO、SWAP、DISK等实时主机服务器运行参数并输出。
[0082] 复制级监控指监控地区集群的数据同步状态并输出。包括本地双主复制与异地同步复制。其中,按照多主的数据同步规格,主要采集数据通道运行状态,如等待、寻址、停止与正常工作状态,根据分布式中间件通道组件记录的各个方向数据同步状态,确定每个通道的双向数据同步是否正常。
[0083] 网络级监控指监控地区集群中主机服务器网络状态并输出。通过ping目标主机统计成功率,并根据预设阀值与网络的I/O流量判断网络状态,结合进程监控区分系统故障与网络故障。
[0084] 事务级监控指对地区集群进行故障监控和识别。因分布式数据库系统应用部分有分布式事务且根据分布式事务的特性,采用一套层次监控方法,在事务提交之前进行故障监控和识别,减少因为故障失效造成的事务提交,避免由于网络延迟及节点故障引起的事务阻塞,并对此故障做有效识别并且做出响应及处理,从而有效防止数据一致性问题的发生。
[0085] 应用服务监控指对地区集群进行读写测试,得到测试结果并输出。应用服务监控设备主要按照业务层服务提供角度,穿透于各地集群数据库实例中进行读写测试,通过访问不同节点数据,可监控数据的同步延时、数据拥塞、网络环境等变量因素,及时发现并处理影响业务的故障。
[0086] 进程级监控指监控中间件双向数据同步控制组件集群的进程运行状况并输出。进程级监控主要包括中间件双向数据同步控制组件集群的分布式组件模块进程运行状况,如中间件组件进程、同步服务进程等,本实施例中通过telnet监控服务端口实现进程级监控。
[0087] 数据一致性监控指监控双向数据同步数据并输出。数据一致性监控包括各个通道的双向的数据同步量和同步进度。统计各维度数据,监控角度设置为:单位时间内成功地传送数据的数量,用于数据记录统计,即insert/update/delete的变更总和。数据的同步进度可根据数据库日志的同步标记点信息,针对每个同步批次的唯一标识,查看批次的运行时间,方便定位性能瓶颈。同步的数据映射关系定义同步的源和目标的表信息,按照表字段纬度进行数据统计。
[0088] 数据延迟监控指采集数据传输时长并输出。通过采集增量数据从源库至目标库的时间差,即数据库同步到目标库成功时间减去数据库源库产生变更时间(单位为:秒),按指定阀值预设监控的策略。
[0089] 在一个实施例中,跨机房多活分布式数据库管理方法还包括以下步骤:
[0090] 中间件服务管理平台对数据库中间件会话代理集群、地区集群和中间件双向数据同步控制组件集群进行节点信息管理。
[0091] 中间件服务管理平台依照负载切换的变更情况,更新实时的集群架构部署节点信息及拓扑架构信息,便于对跨机房多活分布式数据库的管理。本实施例中,中间件服务管理平台为基于GUI的中间件服务管理平台,可提高操作便利性。具体地,中间件服务管理平台包括节点信息管理、中间件数据同步管理、监控管理和异常处理与日志管理。
[0092] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0093] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。