掌桥专利:专业的专利平台
掌桥专利
首页

为数据库服务器分配交换机的方法、装置、设备及介质

文献发布时间:2024-04-18 19:58:30


为数据库服务器分配交换机的方法、装置、设备及介质

技术领域

本公开涉及数据库技术领域,具体而言,涉及一种为数据库服务器分配交换机的方法、装置、设备及可读存储介质。

背景技术

金融行业采用的分库类架构的数据库中一套数据库通常包含主数据库(以下称为主库)和从数据库(或备数据库,以下称为从库),主、从库的建立通常基于以下考虑:容灾、负载均衡和数据集中和分发等等。在每个机房可布置大量的数据库服务器。主库和从库可部署有踢库程序,踢库程序的工作原理是互相探测对方数据库的预定端口(例如关系型数据库管理系统MySQL的数据库是3306端口)的存活状态,例如每秒探测1次,连续探测3次不通后会进行踢库操作,自动隔离业务,例如主库停止处理新业务,通过访问从库进行清分对账等业务处理;又例如可在主库、从库上部署高可用性(High Availability,HA)软件,进行主、从库存活状态的判断,并负责虚拟互联网协议(Virtual Internet Protocol,VIP)地址的切换,若主库故障,VIP会漂移到从库;若从库故障,HA负责主库的半同步状态修改为异步复制,确保主库可写入数据。

相关技术中根据业务需求将数据库服务器批量上架进行系统部署和网络部署,仅按照IP规划进行配置后,进行数据库部署和业务上线,未对为数据库分配交换机的方案进行规划。如对于包括多套数据库的分库类的数据库架构,按照IP规划将同一个业务的多套数据库分配在同一个交换机下,如果交换机故障,踢库程序探测到数据库失去联系,可将各套数据库进行业务隔离,这种情况下,会将该业务所有的数据库进行隔离,从而导致业务中断。

如上所述,如何为数据库分配交换机以提高数据库系统的业务连续性成为亟待解决的问题。

在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

本公开的目的在于提供一种为数据库服务器分配交换机的方法、装置、设备及可读存储介质,至少在一定程度上提高数据库系统的业务连续性。

本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。

根据本公开的一方面,提供一种为数据库服务器分配交换机的方法,包括:对于分库类架构的数据库服务器,根据数据库服务器的业务标识确定多组数据库服务器;对于所述多组数据库服务器中的一组数据库服务器,根据数据库服务器的分库标识确定该组数据库服务器的套数,一套数据库服务器包括多个具有关联关系的数据库服务器;若该组数据库服务器的套数大于预设资源限制值,则获取踢库套数阈值;根据所述踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,使得对于所述多台交换机中的任一台交换机,该组数据库服务器中分配到该交换机的数据库服务器的总数量不大于所述踢库套数阈值。

根据本公开的一实施例,所述多个具有关联关系的数据库服务器包括主数据库服务器及其对应的从数据库服务器;根据所述踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,包括:为主数据库服务器与其对应的从数据库服务器分配所述多台交换机中不同的交换机。

根据本公开的一实施例,所述多台交换机包括第一交换机;根据所述踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,包括:将该组数据库服务器中的预定数量个目标数据库服务器分配到所述第一交换机,并将该组数据库服务器中除所述预定数量个目标数据库服务器之外的各个数据库服务器分配所述多台交换机中除所述第一交换机之外的、不同的交换机,所述预定数量为所述踢库套数阈值,所述目标数据库服务器为主数据库服务器或从数据库服务器,任意两个目标数据库服务器不属于同一套数据库服务器。

根据本公开的一实施例,若该组数据库服务器的套数大于预设资源限制值,则获取踢库套数阈值,包括:获取该组数据库服务器中各套数据库服务器的额定处理效率;获取该组数据库服务器中已上线的数据库服务器的当前处理效率;根据所述额定处理效率、所述当前处理效率和该组数据库服务器的套数获得所述踢库套数阈值。

根据本公开的一实施例,根据所述额定处理效率、所述当前处理效率和该组数据库服务器的套数获得所述踢库套数阈值,包括:将所述额定处理效率与所述当前处理效率相减,获得额定处理效率与当前处理效率之差;将所述额定处理效率与当前处理效率之差与该组数据库服务器的套数相乘,获得剩余处理效率;根据所述剩余处理效率与所述额定处理效率的比值获得所述踢库套数阈值。

根据本公开的一实施例,所述方法还包括:获取一数据库服务器的架构类别标识;根据所述架构类别标识确定该数据库服务器处于分库类架构中或处于非分库类架构中;对于非分库类架构的多个数据库服务器,获取各个数据库服务器的业务标识;为业务标识相同的数据库服务器分配不同的交换机。

根据本公开的一实施例,所述方法还包括:获取所述多台交换机中各台交换机的空闲接口的数量;根据所述踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,包括:根据所述踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,使得对于所述多台交换机中的任一台交换机,该组数据库服务器中分配到该交换机的数据库服务器的总数量既不大于所述踢库套数阈值、又不大于该交换机的空闲接口的数量。

根据本公开的再一方面,提供一种为数据库服务器分配交换机的装置,包括:服务器分组模块,用于对于分库类架构的数据库服务器,根据数据库服务器的业务标识确定多组数据库服务器;套数确定模块,用于对于所述多组数据库服务器中的一组数据库服务器,根据数据库服务器的分库标识确定该组数据库服务器的套数,一套数据库服务器包括多个具有关联关系的数据库服务器;踢库阈值获取模块,用于若该组数据库服务器的套数大于预设资源限制值,则获取踢库套数阈值;交换机分配模块,用于根据所述踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,使得对于所述多台交换机中的任一台交换机,该组数据库服务器中分配到该交换机的数据库服务器的总数量不大于所述踢库套数阈值。

根据本公开的一实施例,所述多个具有关联关系的数据库服务器包括主数据库服务器及其对应的从数据库服务器;所述交换机分配模块还用于根据所述踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,使得对于所述多台交换机中的任一台交换机,该组数据库服务器中分配到该交换机的数据库服务器的总数量不大于所述踢库套数阈值,并且为主数据库服务器与其对应的从数据库服务器分配所述多台交换机中不同的交换机。

根据本公开的一实施例,所述多台交换机包括第一交换机;所述交换机分配模块还用于将该组数据库服务器中的预定数量个目标数据库服务器分配到所述第一交换机,并将该组数据库服务器中除所述预定数量个目标数据库服务器之外的各个数据库服务器分配所述多台交换机中除所述第一交换机之外的不同的交换机,所述预定数量为所述踢库套数阈值,所述目标数据库服务器为主数据库服务器或从数据库服务器,任意两个目标数据库服务器不属于同一套数据库服务器。

根据本公开的一实施例,所述踢库阈值获取模块包括:处理效率获取模块,用于获取该组数据库服务器中各套数据库服务器的额定处理效率;获取该组数据库服务器中已上线的数据库服务器的当前处理效率;;踢库阈值计算模块,用于根据所述额定处理效率、所述当前处理效率和该组数据库服务器的套数获得所述踢库套数阈值。

根据本公开的一实施例,所述踢库阈值计算模块,还用于将所述额定处理效率与所述当前处理效率相减,获得额定处理效率与当前处理效率之差;将所述额定处理效率与当前处理效率之差与该组数据库服务器的套数相乘,获得剩余处理效率;根据所述剩余处理效率与所述额定处理效率的比值获得所述踢库套数阈值。

根据本公开的一实施例,所述装置还包括:架构类别标识获取模块,用于获取一数据库服务器的架构类别标识;架构确定模块,用于根据所述架构类别标识确定该数据库服务器处于分库类架构中或处于非分库类架构中;所述交换机分配模块还用于对于非分库类架构的多个数据库服务器,获取各个数据库服务器的业务标识,为业务标识相同的数据库服务器分配不同的交换机。

根据本公开的一实施例,所述交换机分配模块包括:交换机接口数量获取模块,用于获取所述多台交换机中各台交换机的空闲接口的数量;所述交换机分配模块还用于根据所述踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,使得对于所述多台交换机中的任一台交换机,该组数据库服务器中分配到该交换机的数据库服务器的总数量既不大于所述踢库套数阈值、又不大于该交换机的空闲接口的数量。

根据本公开的再一方面,提供一种设备,包括:存储器、处理器及存储在所述存储器中并可在所述处理器中运行的可执行指令,所述处理器执行所述可执行指令时实现如上述任一种方法。

根据本公开的再一方面,提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述可执行指令被处理器执行时实现如上述任一种方法。

本公开的实施例提供为数据库服务器分配交换机的方法,对于分库类架构的数据库服务器,根据数据库服务器的业务标识确定多组数据库服务器,然后对于多组数据库服务器中的一组数据库服务器,根据数据库服务器的分库标识确定该组数据库服务器的套数,若该组数据库服务器的套数大于预设资源限制值,则根据踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,使得对于多台交换机中的任一台交换机,该组数据库服务器中分配到该交换机的数据库服务器的总数量不大于踢库套数阈值,从而在任一台交换机故障而其上连接的小于踢库套数阈值数量套数的数据库服务器被踢掉的情况下,剩余可用的套数的数据库服务器可满足该组数据库服务器的业务需求,可实现一定程度上提高数据库系统的业务连续性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。

图1示出本公开实施例中一种系统结构的示意图。

图2A示出本公开实施例中一种为数据库服务器分配交换机的方法的流程图。

图2B示出本公开实施例中一种数据库与交换机的连接方式示意图。

图3示出本公开实施例中一种踢库套数阈值获取方法的流程图。

图4示出本公开实施例中另一种为数据库服务器分配交换机的方法的流程图。

图5是根据一示例性实施例示出的一种为数据库服务器分配交换机的流程示意图。

图6示出本公开实施例中一种为数据库服务器分配交换机的装置的框图。

图7示出本公开实施例中另一种为数据库服务器分配交换机的装置的框图。

图8示出本公开实施例中一种电子设备的结构示意图。

具体实施方式

现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施例使得本公开将更加全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。

此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。符号“/”一般表示前后关联对象是一种“或”的关系。

在本公开中,除非另有明确的规定和限定,“连接”等术语应做广义理解,例如,可以是电连接或可以互相通讯;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本公开中的具体含义。

相关技术中根据业务需求将数据库服务器批量上架进行系统部署和网络部署,如按照IP规划进行配置后,进行数据库部署和业务上线,在服务器上安装数据库并交付业务使用时,若未对数据库架构进行规划,可能会导致在交换机故障时同一套数据库的主库和从库都不能访问,从而导致业务中断。例如,非分库类数据库架构可以为同一业务部署一主库两从库,此时若上线服务器没有根据数据库架构进行根据不同的交换机在服务器级别进行松散处理,可导致同一业务数据库的主库、从库被连接在一台交换机下,当这台网络交换机出现故障时,导致该业务的主、从库都不可访问,造成业务中断。

在分库类的数据库架构中可包括多套数据库,可设置每套数据库包括一台主库和一台从库,例如在一个机房中布置少则3套,而业务量大的数据库可布置多达30-50套库。此时若上线服务器没有根据数据库架构进行根据不同的交换机在服务器级别进行松散处理,将同一个业务的多套数据库的主库/从库分配在同一个交换机下,如果交换机故障,踢库程序探测到主库/从库数据库失去联系,可将各套数据库进行业务隔离,这种情况下,会将该业务所有的数据库进行隔离,导致业务中断。

如上所述,如何为数据库服务器分配交换机以提高数据库系统的业务连续性成为亟待解决的问题。因此,本公开提供了一种为数据库服务器分配交换机的方法,对于分库类架构的数据库服务器,根据数据库服务器的业务标识确定多组数据库服务器,然后对于多组数据库服务器中的一组数据库服务器,根据数据库服务器的分库标识确定该组数据库服务器的套数,若该组数据库服务器的套数大于预设资源限制值,则根据踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,使得对于多台交换机中的任一台交换机,该组数据库服务器中分配到该交换机的数据库服务器的总数量不大于踢库套数阈值,从而在任一台交换机故障而其上连接的小于踢库套数阈值数量套数的数据库服务器被踢掉的情况下,剩余可用的套数的数据库服务器可满足该组数据库服务器的业务需求,可实现一定程度上提高数据库系统的业务连续性。

图1示出了可以应用本公开的数据库服务器交换机分配方法或装置的示例性系统架构10。

如图1所示,系统架构10可以包括终端设备102、网络104、服务器106和数据库108。终端设备102可以是具有显示屏并且支持输入、输出的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机、可穿戴设备、虚拟现实设备、智能家居等等。网络104用以在终端设备102和服务器106之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。服务器106可以是提供各种服务的服务器或服务器集群等。数据库108可以为置于服务器上的大型数据库软件,也可以为安装在计算机上的小型数据库软件,用于存储数据。

用户可以使用终端设备102通过网络104与服务器106和数据库108交互,以接收或发送数据等。例如用户在用终端设备102上查看其通过网络104从服务器106上接收数据库108的业务标识、分库标识等等信息。在服务器106也可通过网络104从数据库108接收数据或向数据库108发送数据等。例如服务器106可为后台处理服务器,用于通过网络104从数据库108获取其每秒传输的事物处理个数(Transactions PerSecond,TPS)后,计算数据库108的踢库套数阈值以用于交换机分配。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

图2A是根据一示例性实施例示出的一种为数据库服务器分配交换机的方法的流程图。如图2A所示的方法例如可以应用于上述系统的服务器端,也可以应用于上述系统的终端设备。

参考图2A,本公开实施例提供的方法20可以包括以下步骤。

在步骤S202中,对于分库类架构的数据库服务器,根据数据库服务器的业务标识确定多组数据库服务器。

在一些实施例中,可先获取一数据库服务器的架构类别标识,然后根据架构类别标识确定该数据库服务器处于分库类架构中或处于非分库类架构中,然后分别按照分库类架构和非分库类架构进行分配,具体实施方式可参照图4和图5。

例如,可通过数据库的预松散模块,在数据库系统上线前,将数据库服务器的相关信息导入到该预松散模块中,以便对数据库架构进行规划。数据库服务器相关信息可包括数据库服务器IP、业务标识、架构类别标识、分库标识、数据库的角色等等,其中架构类别标识可用于判断是否为分库类架构,例如一数据库服务器的“是否分库类架构”一项为“是”,则可判断该数据库服务器处于分库类架构中;一数据库服务器的“是否分库类架构”一项为“否”,则可判断该数据库服务器处于非分库类架构中。

在一些实施例中,可按照数据库服务器相关信息中的业务标识为数据库服务器分组,不同的业务标识表示不同组的数据库服务器,从而可根据同一业务配置的数据库服务器的实际情况(如下述的预设资源限制值、踢库套数阈值等)来分配交换机。

在步骤S204中,对于多组数据库服务器中的一组数据库服务器,根据数据库服务器的分库标识确定该组数据库服务器的套数,一套数据库服务器包括多个具有关联关系的数据库服务器。

在一些实施例中,在业务采用分库类架构时,可以配置多套数据库服务器,一套数据库服务器的多个具有关联关系的数据库服务器可以为主数据库服务器及其对应的从数据库服务器,例如可以是一个主数据库服务器及其对应的一个从数据库服务器,也可以为一个主数据库服务器及其对应的两个从数据库服务器等等。上述数据库的角色可以为主数据库或从数据库。踢库程序自动隔离其中一套或几套库的业务后,新的交易会进入到其它分库而不影响业务进行。

在一些实施例中,数据库服务器相关信息中的分库标识可用于确定一组数据库服务器中的套数,例如,业务标识为1的数据库服务器共有30个,则若按照设定的一主库一从库为一套,共有15套数据库服务器,这15套数据库服务器的分库标识为1到15,其中各个分库标识包括一个主库和从库。相同分库标识的数据库可处理多种业务,此时可先根据业务标识获得同一业务标识的多套(一套表示同一个分库标识,有主库和从库)数据库服务器的套数,以对处理同一业务的数据库服务器进行打散。

在步骤S206中,若该组数据库服务器的套数大于预设资源限制值,则获取踢库套数阈值。

在一些实施例中,预设资源限制值可以根据可用(有空闲接口)交换机的数量获得,例如,对于一套库包括一主库一从库的情况,预设资源限制值可以为可以交换机数量的一半,例如有10台可用交换机时,预设资源限制值为5,若多套数据库服务器的套数为4,则将所有套数据库服务器完全进行打散,为8台数据库服务器各分配一台不同的交换机。

在一些实施例中,在数据库服务器的套数较多,大于预设资源限制值时,即交换机数量不足以将所有套数据库服务器进行打散时,可先获取踢库套数阈值,根据踢库套数阈值将一定数量的数据库连接在同一台交换机下。踢库套数阈值用于表示最多可踢掉(使其坏掉或掉线)的数据库服务器的套数,使连接在同一台交换机下的数据库服务器的套数小于踢库套数阈值,可保证在该交换机故障时,该交换机下的数据库被踢掉后,剩余的同一业务的数据库数量可满足业务处理需求。

在一些实施例中,可根据数据库服务器的额定处理效率和实际处理效率计算踢库套数阈值,具体实施方式可参照图3,此处不予详述。

在步骤S208中,根据踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,使得对于多台交换机中的任一台交换机,该组数据库服务器中分配到该交换机的数据库服务器的总数量不大于踢库套数阈值。

在一些实施例中,可使得对于多台交换机中的任一台交换机,该组数据库服务器中分配到该交换机的数据库服务器的总数量等于踢库套数阈值,可实现在该交换机故障而其上连接的数据库服务器被踢掉时,剩余可用的套数的数据库服务器可满足该组数据库服务器的业务需求而保证数据库系统的业务连续性的同时,尽可能节省交换机的数量。

在一些实施例中,可使得对于多台交换机中的任一台交换机,该组数据库服务器中分配到该交换机的数据库服务器的总数量不大于踢库套数阈值的同时,为主数据库服务器与其对应的从数据库服务器分配多台交换机中不同的交换机。例如,若处理同一业务的数据库为10套各包括一个主库和一个从库的数据库,踢库套数阈值为5套,即最多可以同时损失5套库,那在松散的过程中,可用按照同一套主、从不能在一台交换机,以及最多5套的数据库的主库或从库在同一台交换机下,图2B示出了此种情况下连接到同一台交换机的数据库示例。如图2B所示,在交换机2002下连接了处理同一业务的5台数据库服务器,包括00库(主库)2004、01库(从库)2006、02库(从库)2008、03库(从库)2010、04库(从库)2012,另外5套(05库至09库)的主库或从库都可连接在不同的交换机上,这样若交换机2002故障,00库从库、01库主库、02库主库、03库主库、04库主库分别探测不通对应主/从库3306端口时,踢库程序可隔离00库-04库5套库的业务,通过另外的05库至09库处理全部的业务。此时共需要配置11台交换机,与将所有10套库都连接在不同的交换机的20台相比,即节省了网络资源,又保证了在其中一台交换机宕机时,仍可正常处理业务,保障了业务的连续性。

在另一些实施例中,例如,连接在同一台交换机上的数据库的数量也可少于踢库套数阈值,例如在图2B中交换机2002可连接00库-03库的主库或从库,另外的6套数据库中连接在同一台交换机上的数据库的个数也不超过5个。

根据本公开实施例提供为数据库服务器分配交换机的方法,对于分库类架构的数据库服务器,根据数据库服务器的业务标识确定多组数据库服务器,然后对于多组数据库服务器中的一组数据库服务器,根据数据库服务器的分库标识确定该组数据库服务器的套数,若该组数据库服务器的套数大于预设资源限制值,则根据踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,使得对于多台交换机中的任一台交换机,该组数据库服务器中分配到该交换机的数据库服务器的总数量不大于踢库套数阈值,从而在任一台交换机故障而其上连接的小于踢库套数阈值数量套数的数据库服务器被踢掉的情况下,剩余可用的套数的数据库服务器可满足该组数据库服务器的业务需求,可实现一定程度上提高数据库系统的业务连续性。

图3是根据一示例性实施例示出的一种踢库套数阈值获取方法的流程图。如图3所示的方法例如可以应用于上述系统的服务器端,也可以应用于上述系统的终端设备。

参考图3,本公开实施例提供的方法30可以包括以下步骤。

在步骤S302中,获取该组数据库服务器中各套数据库服务器的额定处理效率。

在步骤S304中,获取该组数据库服务器中已上线的数据库服务器的当前处理效率。

在步骤S306中,根据额定处理效率、当前处理效率和该组数据库服务器的套数获得踢库套数阈值。

在步骤S3062中,将额定处理效率与当前处理效率相减后,获得额定处理效率与当前处理效率之差;

在步骤S3064中,将额定处理效率与当前处理效率之差与该组数据库服务器的套数相乘,获得剩余处理效率。

在步骤S3066中,根据剩余处理效率与额定处理效率的比值获得踢库套数阈值。

在一些实施例中,例如,数据库的处理效率可通过数据库的每秒传输的事物处理个数即TPS来衡量。可在元数据库管理系统(Configuration Management Database,CMDB)中配置踢库套数阈值计算功能,可在CMDB中设置各套数据库服务器可以支持的TPS,即额定处理效率,然后采集对于同一种业务上线的各套数据库服务器的当前TPS,再根据业务标识获得的该业务的数据库的套数,计算最多可以坏掉的数据库服务器套数,即踢库套数阈值。例如,设置每套数据库最多可以支持1000TPS,采集到业务A的10套库当前每套数据库为500TPS,则可计算得到最多坏(1000-500)*10/1000=5套库,而在坏5套库时,剩余的5套库的实际TPS会达到最大值1000。CMDB可在显示界面中显示该业务最多可坏5套库,例如显示界面可显示数据库的如下信息:业务标识、分库套数、每套库最高支持TPS、最多可坏套数等等。

根据本公开实施例提供的方法,通过根据数据库服务器的额定处理效率、当前处理效率和多套数据库服务器的套数获得踢库套数阈值,以使在分库类架构中的数据库套数较多时,根据踢库套数阈值将适当数量的服务器连接在同一台交换机上,既节省了网络资源,又保证了在其中一台交换机宕机时,仍可正常处理业务,提高了数据库服务器系统的可靠性。

图4是根据一示例性实施例示出的一种数据库服务器交换机分配方法的流程图。如图4所示的方法例如可以应用于上述系统的服务器端,也可以应用于上述系统的终端设备。

参考图4,本公开实施例提供的方法40可以包括以下步骤。

在步骤S402中,获取一数据库服务器的架构类别标识。

在一些实施例中,架构类别标识可以包括“是”或者“否”,架构类别标识为“是”表示数据库服务器处于分库类架构中,架构类别标识为“否”表示数据库服务器处于非分库类架构中。对于分库类架构,各套数据库服务器可以包括一个主库服务器和一个从库服务器,处理同一业务的数据库服务器包括多套数据库服务器;对于非分库类架构,处理同一业务的数据库服务器包括一套数据库服务器,其中可以包括一个主库服务器和两个从库服务器。

在步骤S404中,根据架构类别标识确定该数据库服务器处于分库类架构中或处于非分库类架构中。

在一些实施例中,架构类别标识在数据库服务器相关信息中也可以“是否分库类架构”项的形式体现,一数据库服务器的“是否分库类架构”一项为“是”,则可判断该数据库服务器处于分库类架构中;一数据库服务器的“是否分库类架构”一项为“否”,则可判断该数据库服务器处于非分库类架构中。

在步骤S4062中,对于非分库类架构的多个数据库服务器,获取各个数据库服务器的业务标识。

在步骤S4064中,为业务标识相同的数据库服务器分配不同的交换机。

在一些实施例中,程序判断如果为非分库类架构,则按照数据库业务标识进行分类,如果业务标识一致说明为一套库,其中的一主库两从库共3台数据库的服务器分布在不同的有空闲接口的交换机下,CMDB可输出分配的交换机名称。

在步骤S4082中,对于分库类架构的数据库服务器,根据数据库服务器的业务标识确定多组数据库服务器,然后对于多组数据库服务器中的各组数据库服务器,根据数据库服务器的分库标识确定该组数据库服务器的套数。具体实施方式可参照步骤S202和步骤S204,此处不再赘述。

在步骤S410中,判断该组数据库服务器的套数是否大于预设资源限制值。若分库类数据库系统中数据库的套数较多,如果全部打散(即所有数据库都分配不同的交换机),需要的交换机特别多,网络资源不一定能够满足需求,因此可通过预设资源限制值将适当数量的数据库服务器连接到同一台交换机。

在步骤S4122中,若该组数据库服务器的套数不大于预设资源限制值,则为该组数据库服务器中的各个数据库服务器分配不同的交换机,各个数据库服务器可以为主数据库服务器或从数据库服务器。例如若预设资源限制值为5,当分库类架构中包括小于5套库如4套库时,可将其中各套数据库的主库和从库共8个库根据数据库服务器的IP将其分配到8台不同的交换机上,即将其全部打散。

在步骤S4142中,若该组数据库服务器的套数大于预设资源限制值时,则获取踢库套数阈值。具体实施方式可参照步骤S206,此处不再赘述。

在步骤S4144中,将该组数据库服务器中的预定数量个目标数据库服务器分配到多台交换机中的第一交换机,并将该组数据库服务器中除预定数量个目标数据库服务器之外的各个数据库服务器分配多台交换机中除第一交换机之外的不同的交换机,预定数量为踢库套数阈值,目标数据库服务器为主数据库服务器或从数据库服务器任意两个目标数据库服务器不属于同一套数据库服务器。

在一些实施例中,将该组数据库服务器中踢库套数阈值个数据库服务器分配到第一交换机之后,可将剩余的数据库服务器全部打散,即将剩余的数据库服务器分别分配到除第一交换机之外的交换机。

根据本公开实施例提供的方法,通过根据不同的数据库架构、数量进行分级松散,在交换机故障时踢库程序自动隔离业务,主库或从库停止处理业务,对应的从库或主库可以进行关单处理,有效解决一套主库、从库都无法访问的情况;可避免分库类架构系统中在交换机故障时一个业务的全部分库全部被业务隔离,当分库较多而交换机故障时,只影响部分数据库,正常业务可以进行,有效规避运行风险。

图5是根据一示例性实施例示出的一种为数据库服务器分配交换机流程示意图。如图5所示,首先获取是否为分库类架构信息(S501);当判定为非分库类架构时,获取同一业务的数据库(S5062),为同一业务的一主库、两从库分配三台不同的交换机(S5064);当判定为分库类架构时,判断其中数据库的套数是否多于预设资源限制值(如5套库)(S5042),若不多于预设资源限制值,则将其中所有的主库以及从库都分配到不同的交换机上(S5082);若多于预设资源限制值,则获取踢库套数阈值(S5010)后,匹配现有信息查找空闲交换机(S5012),将不多于踢库套数阈值套数据库的主库或从库分配到同一台交换机,并将剩余套数据库的主库和从库都分配到不同的交换机上。

在一些实施例中,可以先获取多台交换机中各台交换机的空闲接口的数量,然后在根据踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,使得对于多台交换机中的任一台交换机,该组数据库服务器中分配到该交换机的数据库服务器的总数量既不大于所述踢库套数阈值、又不大于该交换机的空闲接口的数量。

在一些实施例中,CMDB中的开发模块可采集交换机上的信息,获取交换机名称和连接的所有服务器的IP地址,并在CMDB中更新交换机名称以确保线上的服务器与交换机的连接情况比较准确地反馈在CMDB中。CMDB中可包括预松散模块,在数据库系统上线前,将数据库服务器的IP、业务标识、是否分库类架构等信息导入其中,根据上述步骤进行“松散建议”,即根据业务标识和线上实际的交换机空闲的接口进行分析,为多套数据库服务器分配交换机。系统管理员可根据业务标识,根据松散建议的分析在服务器上架时进行松散。

对于系统管理员根据规则进行服务器松散的结果是否满足需求,可根据CMDB中的信息来进行确认。在CMDB中已经上线的服务器可包含如下信息:数据库IP、数据库业务标识、分库标识、是否分库类架构、数据库的角色(主或者从)、交换机地址等,可通过交换机统计功能采集到部署的交换机地址。可对已经上架的数据库根据上述信息验证其是否满足松散需求,即再进行“松散分析”,通过使用上述的步骤进行重新计算,确认数据库服务器的配置满足交换机的松散,在验证不满足时可发送提示信息,再次运行‘松散建议’进行识别和分析,即可通过CMDB系统进行分析松散情况,确保数据库服务器的交换机分配情况可统计、可追踪。

图6是根据一示例性实施例示出的一种为数据库服务器分配交换机的装置的框图。如图6所示的装置例如可以应用于上述系统的服务器端,也可以应用于上述系统的终端设备。

参考图6,本公开实施例提供的装置60可以包括服务器分组模块602、套数确定模块604、踢库阈值获取模块606和交换机分配模块608。

服务器分组模块602可用于对于分库类架构的数据库服务器,根据数据库服务器的业务标识确定多组数据库服务器。

套数确定模块604可用于对于多组数据库服务器中的一组数据库服务器,根据数据库服务器的分库标识确定该组数据库服务器的套数,一套数据库服务器包括多个具有关联关系的数据库服务器。

踢库阈值获取模块606可用于若该组数据库服务器的套数大于预设资源限制值,则获取踢库套数阈值。

交换机分配模块608可用于根据踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,使得对于多台交换机中的任一台交换机,该组数据库服务器中分配到该交换机的数据库服务器的总数量不大于踢库套数阈值。

图7是根据一示例性实施例示出的另一种为数据库服务器分配交换机的装置的框图。如图7所示的装置例如可以应用于上述系统的服务器端,也可以应用于上述系统的终端设备。

参考图7,本公开实施例提供的装置70可以包括架构类别标识获取模块701、服务器分组模块702、架构确定模块703、套数确定模块704、踢库阈值获取模块706和交换机分配模块708,其中,踢库阈值获取模块706可以包括处理效率获取模块7062和踢库阈值计算模块7064,交换机分配模块708可以包括交换机接口数量获取模块7082。

架构类别标识获取模块701可用于获取一数据库服务器的架构类别标识。

服务器分组模块702可用于对于分库类架构的数据库服务器,根据数据库服务器的业务标识确定多组数据库服务器。

架构确定模块703可用于根据架构类别标识确定该数据库服务器处于分库类架构中或处于非分库类架构中。

套数确定模块704可用于对于多组数据库服务器中的一组数据库服务器,根据数据库服务器的分库标识确定该组数据库服务器的套数,一套数据库服务器包括多个具有关联关系的数据库服务器。

多个具有关联关系的数据库服务器可以包括主数据库服务器及其对应的从数据库服务器。

踢库阈值获取模块706可用于若该组数据库服务器的套数大于预设资源限制值,则获取踢库套数阈值。

处理效率获取模块7062可用于获取该组数据库服务器中各套数据库服务器的额定处理效率;获取该组数据库服务器中已上线的数据库服务器的当前处理效率。

踢库阈值计算模块7064可用于根据额定处理效率、当前处理效率和该组数据库服务器的套数获得踢库套数阈值。

踢库阈值计算模块7064还可用于将额定处理效率与当前处理效率相减,获得额定处理效率与当前处理效率之差;将额定处理效率与当前处理效率之差与该组数据库服务器的套数相乘,获得剩余处理效率;根据剩余处理效率与额定处理效率的比值获得踢库套数阈值。

交换机分配模块708可用于根据踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,使得对于多台交换机中的任一台交换机,该组数据库服务器中分配到该交换机的数据库服务器的总数量不大于踢库套数阈值。

多台交换机可以包括第一交换机。

交换机分配模块708还可用于根据踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,使得对于多台交换机中的任一台交换机,该组数据库服务器中分配到该交换机的数据库服务器的总数量不大于踢库套数阈值,并且为主数据库服务器与其对应的从数据库服务器分配多台交换机中不同的交换机。

交换机分配模块708还可用于将该组数据库服务器中的预定数量个目标数据库服务器分配到第一交换机,并将该组数据库服务器中除预定数量个目标数据库服务器之外的各个数据库服务器分配多台交换机中除第一交换机之外的不同的交换机,预定数量为踢库套数阈值,目标数据库服务器为主数据库服务器或从数据库服务器,任意两个目标数据库服务器不属于同一套数据库服务器。

交换机分配模块708还可用于对于非分库类架构的多个数据库服务器,获取各个数据库服务器的业务标识,为业务标识相同的数据库服务器分配不同的交换机。

交换机分配模块708还可用于根据踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,使得对于多台交换机中的任一台交换机,该组数据库服务器中分配到该交换机的数据库服务器的总数量既不大于踢库套数阈值、又不大于该交换机的空闲接口的数量。

交换机接口数量获取模块7082可用于获取多台交换机中各台交换机的空闲接口的数量。

图8示出本公开实施例中一种电子设备的结构示意图。需要说明的是,图8示出的设备仅以计算机系统为示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图8所示,设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM803中,还存储有设备800操作所需的各种程序和数据。CPU801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。

以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本公开的系统中限定的上述功能。

需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括服务器分组模块、套数确定模块、踢库阈值获取模块和交换机分配模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,服务器分组模块还可以被描述为“根据所连接的预松散模块获取的数据库服务器信息对分库类架构数据库服务器进行分组的模块”。

作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:对于分库类架构的数据库服务器,根据数据库服务器的业务标识确定多组数据库服务器;对于多组数据库服务器中的一组数据库服务器,根据数据库服务器的分库标识确定该组数据库服务器的套数,一套数据库服务器包括多个具有关联关系的数据库服务器;若该组数据库服务器的套数大于预设资源限制值,则获取踢库套数阈值;根据踢库套数阈值从多台交换机中为该组数据库服务器分配交换机,使得对于多台交换机中的任一台交换机,该组数据库服务器中分配到该交换机的数据库服务器的总数量不大于踢库套数阈值。

以上具体地示出和描述了本公开的示例性实施例。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

相关技术
  • 硬件交换机控制流向的方法、装置、终端设备及存储介质
  • 一种工时分配方法、装置、设备及存储介质
  • 处方审核分配方法、装置、电子设备及存储介质
  • 资源分配方法、装置、计算机设备及计算机可读存储介质
  • 显存分配的方法、装置、计算设备及计算机存储介质
  • 数据库服务器的测试方法、装置、电子设备和存储介质
  • 数据库服务器异常成因检测方法、装置、设备和存储介质
技术分类

06120116499939