CN115878587A - 实例创建方法、装置、电子设备及可读存储介质 - Google Patents

实例创建方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN115878587A
CN115878587A CN202111126989.7A CN202111126989A CN115878587A CN 115878587 A CN115878587 A CN 115878587A CN 202111126989 A CN202111126989 A CN 202111126989A CN 115878587 A CN115878587 A CN 115878587A
Authority
CN
China
Prior art keywords
instance
database
group
slave
master
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.)
Pending
Application number
CN202111126989.7A
Other languages
English (en)
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.)
China United Network Communications Group Co Ltd
Unicom Cloud Data Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Unicom Cloud Data Co 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 China United Network Communications Group Co Ltd, Unicom Cloud Data Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN202111126989.7A priority Critical patent/CN115878587A/zh
Publication of CN115878587A publication Critical patent/CN115878587A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种实例创建方法、装置、电子设备及可读存储介质,所述方法包括:获取实例创建请求,并根据所述实例创建请求生成实例组信息;其中,所述实例创建请求包括目标实例数量;创建数量为所述目标实例数量的主数据库实例;从创建的主数据库实例中选取一个主数据库实例作为目标主数据库实例,并将剩余的主数据库实例作为从数据库实例;根据所述目标主数据库实例和所述从数据库实例对所述实例组信息进行更新,提高数据库实例的创建效率。

Description

实例创建方法、装置、电子设备及可读存储介质
技术领域
本发明涉及数据库技术领域,尤其涉及一种实例创建方法、装置、电子设备及可读存储介质。
背景技术
为了保证业务的正常运行,需要创建主从数据库实例,以在主数据库实例出现异常时,可以利用从数据库实例,从而保证业务可以正常运行。
目前,在创建主从数据库实例时,需要分别进行创建,即先创建主数据库实例,在主数据库实例创建完成后,再为主数据库实例逐个追加,即创建从数据库实例。
然而,由于需要分别创建主从数据库实例,且需要逐个创建从数据库实例,当需创建的从数据库实例的数量较多时,从数据库实例创建所需时间较长,从而导致数据库实例创建效率低。
发明内容
本发明提供一种实例创建方法、装置、电子设备及可读存储介质,以解决现有技术中数据库实例创建效率低的技术问题。
第一方面,本发明提供一种实例创建方法,所述方法包括:
获取实例创建请求,并根据所述实例创建请求生成实例组信息;其中,所述实例创建请求包括目标实例数量;
创建数量为所述目标实例数量的主数据库实例;
从创建的主数据库实例中选取一个主数据库实例作为目标主数据库实例,并将剩余的主数据库实例作为从数据库实例;
根据所述目标主数据库实例和所述从数据库实例对所述实例组信息进行更新。
在一种可能的设计中,所述根据所述目标主数据库实例和所述从数据库实例对所述实例组信息进行更新,包括:
获取所述目标主数据库实例的标识和所述从数据库实例的标识,并将其添加至所述实例组信息中。
在一种可能的设计中,所述实例组信息包括待创建实例组标识;
所述根据所述实例创建请求生成实例组信息,包括:
响应所述实例创建请求,随机生成实例组标识,并将其作为所述待创建实例组标识。
在一种可能的设计中,所述方法还包括:
获取用户输入的实例组删除请求,其中所述实例组删除请求包括待删除实例组标识和用户标识;
获取实例组信息表,并确定所述实例组信息表中是否存在所述待删除实例组标识;
若存在所述待删除实例组标识,则获取所述用户标识对应的操作权限;
在确定所述用户标识对应的操作权限中存在删除权限时,对与所述待删除实例组标识对应的主数据库实例和从数据库实例进行删除。
在一种可能的设计中,所述对与所述待删除实例组标识对应的主数据库实例和从数据库实例进行删除,包括:
解除与所述待删除实例组标识对应的主数据库实例和从数据库实例之间的主从关系;
删除所述待删除实例组标识对应的主数据库实例,并删除所述待删除实例组标识对应的所有从数据库实例。
在一种可能的设计中,所述方法还包括:
获取用户输入的安全组绑定请求以及待处理安全组;其中,所述安全组绑定请求包括第一实例组标识;
获取与所述第一实例组标识对应的主数据库实例和从数据库实例;
将所述待处理安全组分别与所述第一实例组标识对应的主数据库实例和从数据库实例进行绑定。
在一种可能的设计中,所述方法还包括:
获取用户输入的实例变更请求,其中,所述实例变更请求包括第二实例组标识;
获取与所述第二实例组标识对应的主数据库实例和从数据库实例;
对所述第二实例组标识对应的主数据库实例和从数据库实例进行实例变更操作;其中,所述实例变更操作包括规格变更操作、数据盘大小变更操作和重启操作中的一个或多个。
第二方面,本发明提供一种实例创建装置,包括:
信息获取模块,用于获取实例创建请求,并根据所述实例创建请求生成实例组信息;其中,所述实例创建请求包括目标实例数量;
处理模块,用于创建数量为所述目标实例数量的主数据库实例;
所述处理模块,还用于从创建的主数据库实例中选取一个主数据库实例作为目标主数据库实例,并将剩余的主数据库实例作为从数据库实例;
所述处理模块,还用于根据所述目标主数据库实例和所述从数据库实例对所述实例组信息进行更新。
在一种可能的设计中,所述处理模块还用于:
获取所述目标主数据库实例的标识和所述从数据库实例的标识,并将其添加至所述实例组信息中。
在一种可能的设计中,所述实例组信息包括待创建实例组标识;
所述处理模块还用于:
响应所述实例创建请求,随机生成实例组标识,并将其作为所述待创建实例组标识。
在一种可能的设计中,所述处理模块还用于:
获取用户输入的实例组删除请求,其中所述实例组删除请求包括待删除实例组标识和用户标识;
获取实例组信息表,并确定所述实例组信息表中是否存在所述待删除实例组标识;
若存在所述待删除实例组标识,则获取所述用户标识对应的操作权限;
在确定所述用户标识对应的操作权限中存在删除权限时,对与所述待删除实例组标识对应的主数据库实例和从数据库实例进行删除。
在一种可能的设计中,所述处理模块还用于:
解除与所述待删除实例组标识对应的主数据库实例和从数据库实例之间的主从关系;
删除所述待删除实例组标识对应的主数据库实例,并删除所述待删除实例组标识对应的所有从数据库实例。
在一种可能的设计中,所述处理模块还用于:
获取用户输入的安全组绑定请求以及待处理安全组;其中,所述安全组绑定请求包括第一实例组标识;
获取与所述第一实例组标识对应的主数据库实例和从数据库实例;
将所述待处理安全组分别与所述第一实例组标识对应的主数据库实例和从数据库实例进行绑定。
在一种可能的设计中,所述处理模块还用于:
获取用户输入的实例变更请求,其中,所述实例变更请求包括第二实例组标识;
获取与所述第二实例组标识对应的主数据库实例和从数据库实例;
对所述第二实例组标识对应的主数据库实例和从数据库实例进行实例变更操作;其中,所述实例变更操作包括规格变更操作、数据盘大小变更操作和重启操作中的一个或多个。
第三方面,本发明提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的实例创建方法。
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的实例创建方法。
第五方面,本发明提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上第一方面以及第一方面各种可能的设计所述的实例创建方法。
本发明提供一种实例创建方法、装置、电子设备及可读存储介质,通过在获取到实例创建请求时,表明需创建主从数据库实例,即需创建数量为实例创建请求中的目标实例数量的数据库实例,则响应该实例创建请求,生成需创建的主从数据库实例所对应的实例组信息,并创建数量为目标实例数量的主数库实例。在创建完成时,从创建的主数据库实例中选择一个主数据库实例作为目标主数据库实例,并将剩余的主数据库实例作为从数据库实例,实现主从数据库实例的并行创建,无需逐个创建从数据库实例,减少从数据库实例创建所需的时间,提高数据库实例的创建效率。同时,可以利用创建的主从数据库实例对主从数据库实例进行批量操作,提高数据库实例操作的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的实例创建方法的场景示意图;
图2为本发明实施例提供的实例创建方法的流程示意图一;
图3为本发明实施例提供的实例创建过程的示意图;
图4为本发明实施例提供的实例创建方法的流程示意图二;
图5为本发明实施例提供的实例删除过程的示意图;
图6为本发明实施例提供的安全组变更过程的示意图;
图7为本发明实施例提供的实例变更过程的示意图一;
图8为本发明实施例提供的实例操作过程的示意图;
图9为本发明实施例提供的密码修改过程的示意图;
图10为本发明实施例提供的实例变更过程的示意图二;
图11为本发明实施例提供的实例创建装置的结构示意图;
图12为本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于对本申请的理解,下面先对本申请所涉及到的部分名词进行解释:
Openstack Trove组件将MySQL、Redis等数据库管理器放在Openstack云主机中,对外提供按需启停的弹性云数据库服务。Trove可以调用Openstack的Nova、Neutron、Cinder、Swift等组件,对数据库实例及数据备份进行整个生命周期的管理,其包括数据库实例的创建、删除、查询、规格变更、重启,数据备份的创建、删除、查询,以及恢复备份等。Trove可以为已有实例创建从实例(slave、replica),也可以从零开始创建多个相同类型、相同版本数据库实例组成集群(cluster),以提供更高可靠性的数据库服务。
Trove主要分为四个组件:
trove-api负责对外提供RESTful API接口,接受用户请求,验证请求的合理性,同步处理一些简单的请求,并将较为复杂的请求通过消息队列转发给trove-taskmanager异步处理,将涉及实例内部状态的请求转发给trove-guestagent同步或异步处理。
trove-taskmanager监听消息队列,并按需调用Nova、Neutron、Cinder等组件的接口,完成云主机的创建、删除、变配、迁移、重启,云硬盘的创建、删除、挂载/卸载、扩容/缩容,数据库实例安全组的创建、删除、规则编辑等操作。另外,trove-taskmanager操作过程中有部分步骤会转发给trove-guestagent进行处理。trove-taskmanager对上述操作进行编排,实现对数据库实例生命周期的管理。
trove-guestagent监听消息队列,处理trove-api及trove-taskmanager发来的、与云主机或者数据库管理器直接相关的请求,例如挂载/卸载文件系统、启动/停止数据库服务、创建/删除/查询数据库/用户、调用XtraBackup等工具创建数据库备份并上传到Swift等。另外,trove-guestagent还定期通过消息队列向trove-conductor发送消息,汇报数据库状态。
trove-conductor负责处理云主机内部发起的、对控制节点数据库进行的操作请求。trove-conductor监听消息队列,根据收到的消息内容对数据库进行更新操作。
现有技术,目前,在创建主从数据库实例时,需要依次进行创建,即先创建主数据库实例,在主数据库实例创建完成后,再为主数据库实例逐个创建从数据库实例,即在一个从数据库实例创建完成后,才继续创建下一个数据库实例。且在需要对数据库实例进行操作时,仅能对单个数据库实例进行操作,即仅能对主数据库实例或单个从数据库实例进行操作(例如,删除操作)。但由于需要逐个创建从数据库实例,当需创建的从数据库实例的数量较多时,从数据库实例创建所需时间较长,从而导致数据库实例创建效率低,且由于仅能对单个数据库实例进行操作,导致数据库实例操作效率低。
因此,针对上述问题,本发明的技术构思是在需创建主从数据库实例时,生成与该主从数据库实例对应的统一的实例组标识,即Group ID,以供利用该Group ID对创建的主从数据库实例进行统一操作,提高操作的效率。在Group ID生成后,创建多个主数据库实例,并将第一个主数据库实例作为所需的主数据库实例,将剩余的主数据库实例作为从数据库实例,实现从数据库实例的批量生成,即创建,降低从数据库实例创建所需的时间,进而可以有效提高数据库实例的创建效率。
下面以具体地示例对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的示例可以相互结合,对于相同或相似的概念或过程可能在某些示例中不再赘述。下面将结合附图,对本公开的示例进行描述。
图1为本发明实施例提供的实例创建方法的场景示意图。如图1所示,电子设备101在获取到用户输入的实例创建请求后,表明需要创建相应的主从数据库实例,则创建一个主数据库实例以及至少一个从数据库实例,并在创建完成后,输出相应的提示信息以告知用户数据库实例已经创建完成。
可选的,电子设备101包括服务器、电脑(例如,台式电脑、笔记本电脑)等设备。
图2为本发明实施例提供的实例创建方法的流程示意图一,本实施例的执行主体可以为电子设备。如图2所示,该方法包括:
S201、获取实例创建请求,并根据实例创建请求生成实例组信息。其中,实例创建请求包括目标实例数量。
在本实施例中,当用户需创建主从数据库实例,即主实例和从实例时,根据自身的需求,即需创建的主从实例的数量输入相应的实例创建请求,以供电子设备根据该实例创建请求创建相应的数据库实例。
其中,实例创建请求包括目标实例数量,其表示需创建的主数据库实例和从数据库实例的数量之和,一般地,主数据库实例为一个,目标实例数量与1的差值为需创建的从数据库实例的数量。
电子设备在接收到实例创建请求后,响应该实例创建请求,生成需创建的数据库实例组,即主从数据库实例对应的实例组信息,以供利用该实例组信息批量对该主从数据库实例进行批量操作。
可选的,实例组信息包括待创建实例组标识,即Group ID。
另外,可选的,在接收到实例创建请求后,验证实例创建请求的合法性,在验证成功后,响应该实例创建请求。
另外,可选的,在生成实例组信息后,在预设实例组信息表,即groups数据表中添加该实例组信息。
其中,在Openstack控制节点的Trove数据库中新增一张groups数据表,其主要包括实例组标识、名称、主实例标识、从实例标识、实例组类型、实例组状态等字段。
图3为本发明实施例提供的实例创建过程的示意图。具体的,如图3所示,在trove-api中新增一个接口,用于一次性创建具有主从关系的实例。通过该接口接收到用户发来的实例创建请求后,首先验证实例创建请求的合法性,在验证成功后,在groups数据表中为新的主从实例创建group条目,其中包含一个随机生成的Group ID,然后trove-api通过消息队列异步调用trove-taskmanager,进行后续的创建操作。trove-api将Group ID作为请求响应的一部分,对创建请求进行快速响应。
S202、创建数量为目标实例数量的主数据库实例。
S203、从创建的主数据库实例中选取一个主数据库实例作为目标主数据库实例,并将剩余的主数据库实例作为从数据库实例。
S204、根据目标主数据库实例和从数据库实例对实例组信息进行更新。
在本实施例中,按照预设实例创建规则,按照实例创建请求中的目标实例数量,创建多个主数据库,即创建数量为目标实例数量的主数据库实例。在多个主数据库实例创建完成后,从多个主数据库实例中随机选取一个主数库实例,并将选取的主数据库实例作为最终所需的主数据库实例,即目标主数据库实例,且将多个主数据库实例中剩余的主数据库实例作为从数据库实例。
在生成主从数据库实例后,即在确定目标主数据库实例以及从数据库实例后,将主从数据库实例的相关信息添加至相应的实例组信息中,以实现实例组信息的更新。
具体的,在将主从数据库实例的相关信息添加至相应的实例组信息中时,将其添加至实例表中的该实例组信息中,即相应的group条目的字段中。
可选的,获取目标主数据库实例的标识和从数据库实例的标识,并将其添加至实例组信息中。即主从数据库实例的相关信息可以为主数据库实例标识(例如,主数据库实例ID、名称等)和从数据库实例标识(例如,从数据库实例)
可选的,根据实例创建请求确定的主从数据库实例为一个实例组,该实例组中的主从数据库对应的实例组标识相同,即均为响应该实例创建请求生成的实例组标识。
另外,可选的,在将剩余的主数据库实例作为从数据库实例时,还需建立从数据库实例与目标主数据库实例之间的主从关系,使得这一组主从数据库实例中的主数据库实例只有一个,其余为从数据库实例。
具体的,trove-taskmanager在接收到trove-api发来的实例创建请求后,按照用户指定的实例总数,即目标实例数量,多次调用trove代码中原有的Instance.create流程,创建多个主实例,并将第一个实例视为最终的主实例,其余视为从实例。
另外,可选的,在生成主从数据库实例,即在生成实例创建请求对应的实例组后,为该组实例创建安全组,该主从数据库实例可以使用相同的安全组,方便用户维护安全组规则。
具体的,trove-taskmanager调用Neutron接口,为创建的实例组创建一个隐藏的安全组,并写入规则,以允许各个实例访问消息队列,并将该安全组绑定到各个实例的管理网段网卡上,替换原有的用户安全组。
在本实施例中,在接收到实例组创建请求后,根据该实例组创建请求创建多个主数据库实例,将多个主数据库实例中的一个主数据库实例作为最终主数据库实例,并将剩余的主数据库实例作为从数据库实例,实现从数据库实例的批量并行创建,从而实现主从数据库实例的快速创建,提高实例的创建效率。
从上述描述可知,在获取到实例创建请求时,表明需创建主从数据库实例,即需创建数量为实例创建请求中的目标实例数量的数据库实例,则响应该实例创建请求,生成需创建的主从数据库实例所对应的实例组信息,并创建数量为目标实例数量的主数库实例。在创建完成时,从创建的主数据库实例中选择一个主数据库实例作为目标主数据库实例,并将剩余的主数据库实例作为从数据库实例,实现主从数据库实例的并行创建,无需逐个创建从数据库实例,减少从数据库实例创建所需的时间,提高数据库实例的创建效率。同时,可以利用创建的主从数据库实例对主从数据库实例进行批量操作,提高数据库实例操作的效率。
图4为本发明实施例提供的实例创建方法的流程示意图二,本实施例在图2实施例的基础上,在接收到实例创建请求时,响应该实例创建请求,生成需新创建的实例所对应的实例组标识,下面将结合一个具体实施例对此过程进行描述。如图4所示,该方法包括:
S401、获取实例创建请求。其中,实例创建请求包括目标实例数量。
S402、响应实例创建请求,随机生成实例组标识,并将其作为待创建实例组标识。
在本实施例中,在接收到实例创建请求后,表明需创建主从数据库实例,即创建实例组,则生成该实例组对应的实例组标识,并将其作为需创建的主从数据库实例对应的待创建实例组标识,以供利用该待创建实例组标识对该主从数据库实例进行批量操作。
在任意实施例中,可选的,可以利用实例组标识对主从实例进行批量删除操作,其具体过程包括:
获取用户输入的实例组删除请求,其中实例组删除请求包括待删除实例组标识和用户标识。
获取实例组信息表,并确定实例组信息表中是否存在待删除实例组标识。
若存在待删除实例组标识,则获取用户标识对应的操作权限。
在确定用户标识对应的操作权限中存在删除权限时,对与待删除实例组标识对应的主数据库实例和从数据库实例进行删除。
具体的,在接收到用户输入的实例组删除请求后,表明需要删除实例删除请求中的待删除实例标识对应的主从数据库实例,则先验证实例组信息表中是否存在该待删除实例组标识,以确定是否存在该待删除实例组标识对应的主从数据库实例,即主从实例。在确定实例组信息表中存在该待删除实例组标识时,表明存在该待删除实例组标识对应的主从实例,则进一步判断该用户是否具有删除权限,即查找该用户的用户标识对应的所有操作权限,并判断该所有操作权限中是否存在删除权限,若存在,表明该用户具有删除权限,可以删除实例,则删除该待删除实例组标识对应的主从实例。若不存在,表明该用户不具有删除权限,不能删除实例,则不删除该待删除实例组标识对应的主从实例。
进一步的,可选的,在对与待删除实例组标识对应的主数据库实例和从数据库实例进行删除时,解除与待删除实例组标识对应的主数据库实例和从数据库实例之间的主从关系。删除待删除实例组标识对应的主数据库实例,并删除待删除实例组标识对应的所有从数据库实例。
具体的,在需要删除待删除实例组标识对应的主从实例时,先解除该主从实例之间的主从关系,在解除成功后,再删除相应的主从实例。
可选的,在删除主从实例时,还需删除主从实例对应的安全组。
图5为本发明实施例提供的实例删除过程的示意图。具体的,如图5所示,在trove-api中新增删除接口,以用于对主从实例进行批量删除操作。通过该删除接口接收到用户发来的实例组删除请求后,首先,验证请求的合法性,验证指定的待删除实例组标识是否存在于groups数据表中,以及该用户是否有对相应group的操作权限,即是否具有删除实例的权限。在验证通过后,表明待删除实例组标识存在于groups数据表中以及该用户trove-api通过消息队列异步调用trove-taskmanager,进行后续操作。trove-api将待删除实例组标识作为实例组删除请求响应的一部分,对请求进行快速响应。
trove-taskmanager接收到trove-api发来的删除实例组删除请求后,会解除实例之间的主从关系,调用Instance.delete流程删除每个实例,调用Neutron接口删除主从实例对应的隐藏安全组,最终在groups表中标记该group已删除。上述操作全部完成后,trove-taskmanager发送消息通知前端删除完成。
其中,删除数据库实例的过程与现有删除数据库实例的过程类似,即删除相应的云主机和云硬盘。
在任意实施例中,可选的,还可以支持用户传入的安全组,即将用户传入的安全组与指定的实例组进行绑定,其具体过程为:
获取用户输入的安全组绑定请求以及待处理安全组。其中,安全组绑定请求包括第一实例组标识。获取与第一实例组标识对应的主数据库实例和从数据库实例。将待处理安全组分别与第一实例组标识对应的主数据库实例和从数据库实例进行绑定。
具体的,在接收到用户传入的安全组绑定请求后,表明需将用户传入的安全组,即待处理安全组与安全组绑定请求中的第一实例组标识所对应的主从实例进行绑定,则将待处理安全组分别与该第一实例组标识对应的主从实例进行绑定。
进一步的,可选的,在将待处理安全组分别与该第一实例组标识对应的主从实例进行绑定之前,先检测指定位置中是否存在用户传入的安全组,即待处理安全组,若存在,则将待处理安全组分别与该第一实例组标识对应的主从实例进行绑定。
具体的,修改trove-api原有的创建实例接口,允许用户传入0个或多个安全组。通过trove-taskmanager先检测是否存在待处理安全组。若存在,则将该待处理安全组与相应的主从实例进行绑定。
另外,可选的,也可以将用户传入的安全组与需创建的主从实例进行绑定,即在创建数量为所述目标实例数量的主数据库实例之前,若接收到用户输入的安全组绑定请求,表明用户已经传入安全组,无需另创建安全组,则在确定目标主数据库实例和从数据库实例后,将该目标主数据库实例和从数据库实例分别与安全组进行绑定。
具体的,trove-taskmanager为实例创建安全组前,先检测用户传入的安全组是否存在。如果存在,则trove-taskmanager不另外创建安全组,之后在调用Nova接口创建云主机时,将上述用户传入的安全组传给Nova,最终实例上会绑定用户传入的安全组。否则trove-taskmanager会按照原有逻辑创建安全组,并传给Nova,最终实例上会绑定新建的安全组。
另外,可选的,还可以变更实例对应的安全组,即获取用户输入的安全组变更请求,该安全组变更请求包括第三实例组标识,表明需变更与该第三实例组标识对应的实例组对应的安全组,则将该与该第三实例组标识对应的实例组对应的安全组变更为指定安全组。
图6为本发明实施例提供的安全组变更过程的示意图。具体的,如图6所示,在trove-api中新增安全组变更接口,用于为主从实例设置绑定的安全组。通过该安全组变更接口接收到用户发来的请求后,首先验证请求的合法性(例如,用户是否具有操作权限,是否存在相应的主从实例),在验证合法后,trove-api调用Nova接口查询主从实例各自对应的云主机的网络端口ID及所属的网络,过滤掉对用户不可见的Trove管理网络上的端口,其余即为用户指定的业务网络端口。然后trove-api调用Neutron接口,为主从实例的所有业务网络端口设置指定的安全组。上述操作全部完成后,trove-api对请求做出响应,表明设置完成。
在任意实施例中,可选的,还可以变更规格(flavor),数据盘大小以及进行重启,其具体过程为:
获取用户输入的实例变更请求,其中,实例变更请求包括第二实例组标识。
获取与第二实例组标识对应的主数据库实例和从数据库实例。
对第二实例组标识对应的主数据库实例和从数据库实例进行实例变更操作。其中,实例变更操作包括规格变更操作、数据盘大小变更操作和重启操作中的一个或多个。
具体的,在接收到输入的实例变更请求后,表明需要变更该实例变更请求中的第二实例组标识对应的实例组,即主从实例,则对实例组标识对应的主数据库实例和所有从数据库实例进行相应实例变更操作。
另外,可选的,在对第二实例组标识对应的主数据库实例和从数据库实例进行实例变更操作时,可以依次对主数据库实例和从数据库实例进行变更操作,即在对一个数据库实例变更完成后,继续对下一个数据库实例进行变更,以保证数据库服务的正常运行。也可以同时对主数据库实例和从数据库实例进行变更,以提高数据库实例变更的效率。
图7为本发明实施例提供的实例变更过程的示意图一。具体的,如图7所示,在trove-api中新增实例变更接口以用于对主从实例进行变更规格、变更数据盘大小、重启等操作。通过该实例变更接口接收到用户发来的请求后,验证请求的合法性(例如,用户是否具有操作权限,是否存在相应的主从实例),在验证成功后,trove-api通过消息队列异步调用trove-taskmanager,进行后续操作。trove-api将Group ID作为请求响应的一部分,对请求进行快速响应。
trove-taskmanager接收到trove-api发来的主从实例变更规格,变更数据盘大小,重启等实例变更请求后,会调用原有的resize_flavor、resize_volume、restart等流程,对各个实例进行变更规格、变更数据盘大小、重启等操作。由于这些操作会中断相应实例上的数据库服务,因而这里的默认行为是等待前一个实例操作完成后,再开始对下一个实例进行操作,而管理员也可以通过配置,令各个实例的操作并行进行。上述操作全部完成后,trove-taskmanager发送消息通知前端操作完成。
可以理解,对数据库实例进行规格变更操作是指将该数据库实例的规格变更为目标规格;对数据库实例进行数据盘大小变更操作是指将该数据库实例的数据盘的大小变更为目标大小。
可选的,图8为本发明实施例提供的实例操作过程的示意图。如图8所示,在trove-api中新增信息变更接口以用于实现主从实例的创建/删除/查询、创建/删除/查询用户信息、修改用户密码、授予/收回用户权限等功能。该接口接收到用户发来的信息变更请求后,验证请求的合法性(例如该用户是否具有相应的信息修改权限),在验证成功后,trove-api调用Trove原有的相应流程,对主从实例中的主实例进行相应操作。然后按照Trove原有接口的“同步验证,同步查询,异步修改”的原则,将操作结果通过MySQL主从机制同步到从实例,以实现主从实例的同步。
进一步的,可选的,主从实例,即主从数据库实例可以为MySQL(关系型数据库管理系统)主从实例。
可选的,图9为本发明实施例提供的密码修改过程的示意图。如图9所示,还可以在trove-api中新增访问密码修改接口以用于设置Redis(Remote Dictionary Server,远程字典服务)主从实例的访问密码。通过该访问密码修改接口接收到用户发来的访问密码修改请求后,该访问密码修改请求中包括第四实例组标识,表明需变更与该第四实例组标识对应的主从实例的访问密码,则先验证该访问密码修改请求的合法性(例如,验证用户是否具有密码变更权限、是否存在第四实例组标识对应的主从数据库实例)。在验证成功后,trove-api调用Trove原有的相应流程,对主从实例中的主实例进行密码修改操作,以将其修改为主从密码。在对Redis主实例的密码进行修改的过程中,先设置该主实例的requirepass属性,在设置成功后,在该主实例的对应的所有从实例上设置相同的requirepass和masterauth属性,以确保从实例连接到主实例时使用的身份信息仍然有效,使主从关系中断的时间最小化。
可选的,图10为本发明实施例提供的实例变更过程的示意图二。如图10所示,还可以变更主从数据库实例的配置组,其具体过程为:在trove-api中新增配置组变更接口,以用于变更主从实例的配置组。通过该配置组变更接口接收到用户输入的配置组变更请求后,该配置组变更请求中包括第五实例组标识,表明需变更与该第五实例组标识对应的主从实例的配置组,则先验证配置组变更请求的合法性(例如,验证用户是否具有配置组变更权限、是否存在第五实例组标识对应的主从数据库实例)。在验证成功后,trove-api通过消息队列异步调用trove-taskmanager进行后续的变更操作。trove-api将Group ID,即第五实例组标识作为请求响应的一部分,对变更请求进行快速响应。trove-taskmanager接收到trove-api发来的配置组变更请求后,会调用Instance.attach_configuration/detach_configuration流程,依次为第五实例组标识对应的各个实例,即主从数据库实例绑定指定的配置组,或是解绑配置组。绑定/解绑配置组的操作在主从实例上都完成后,trove-taskmanager发送消息通知前端设置完成。
另外,可选的,如图10所示,还可以设置主从数据库实例的数据复制模式操作,其具体过程为:在trove-api中新增模式设置接口以用于设置数据复制模式操作。通过该模式设置接口接收到用户输入的模式设置请求后,该模式设置请求中包括第六实例组标识,表明需设置与该第六实例组标识对应的主从实例的,则先验证配置组变更请求的合法性(例如,验证用户是否具有设置复制模块的权限、是否存在第六实例组标识对应的主从数据库实例)。在验证成功后,trove-api通过消息队列异步调用trove-taskmanager进行后续的复制模块设置操作操作。
其中,模式设置请求包括半同步复制模式设置请求或异步复制模式设置。当trove-taskmanager接收到trove-api发送的的半同步复制模式设置请求后,会根据模板文件生成半同步复制配置文件的具体内容,调用主从实例的trove-guestagent接口将上述内容写入云主机特定目录下的特定名称的文件中,并应用到数据库服务。上述操作全部完成后,trove-taskmanager发送消息通知前端设置完成。当trove-taskmanager接收到trove-api发来的异步复制模式请求后,调用主从实例的trove-guestagent接口,在云主机上根据目录和文件名,查找并删除半同步复制配置文件,并重置数据库服务中的相应设置。上述操作全部完成后,trove-taskmanager发送消息通知前端设置完成。
可以理解,也可以仅对用户指定的数据库实例进行操作,即获取用户输入的指定数据库实例标识,并对该指定数据库实例标识对应的数据库实例进行相应的操作(例如,删除操作)。
S403、创建数量为目标实例数量的主数据库实例。
S404、从创建的主数据库实例中选取一个主数据库实例作为目标主数据库实例,并将剩余的主数据库实例作为从数据库实例。
S405、根据目标主数据库实例和从数据库实例对实例组信息进行更新。
在本实施例中,现有Trove的每个数据库实例均需对应有一个的安全组,二者同时创建、同时删除,切不能使用用户指定的安全组,也不能对同一实例的多个虚拟网卡使用不同的安全组。而本申请允许用户在创建单个数据库实例或实例组时传入指定的安全组,且同一实例组中的主从实例使用相同的安全组,从而便于用户维护安全组规则。
另外,在创建实例组时,主从实例各自监听消息队列的需求通过一个特定虚拟网络(“管理网络”)上的虚拟网卡完成,该虚拟网卡有自身单独的安全组,对用户不可见,用户的安全组只绑定在用户创建主从实例时指定的、主从实例对外提供服务的0个或多个网络(“业务网络”或“VPC网络”)的虚拟网卡上。
在本实施例中,本申请在通过实例组标识进行批量操作的同时可以建立并维持实例之间的主从关系,并将其作为操作编排的一部分。
在本实施例中,利用实例组标识可以对相应的主从实例,即主从数据库实例进行批量操作,减少Trove接口的调用次数,缩短操作所需的时间,可以有效提高操作的效率,避免由于现有通过Trove创建的主从实例仅有各自的实例标识,无需进行同步或者受编排的批量操作。同时减少潜在的数据不一致性造成的影响。
图11为本发明实施例提供的实例创建装置的结构示意图,如图11所示,该实例创建装置1100包括:信息获取模块1101和处理模块1102。
其中,信息获取模块1101,用于获取实例创建请求,并根据实例创建请求生成实例组信息。其中,实例创建请求包括目标实例数量。
处理模块1102,用于创建数量为目标实例数量的主数据库实例。
处理模块1102,还用于从创建的主数据库实例中选取一个主数据库实例作为目标主数据库实例,并将剩余的主数据库实例作为从数据库实例。
处理模块1102,还用于根据目标主数据库实例和从数据库实例对实例组信息进行更新。
在一种可能的设计中,处理模块1102还用于:
获取目标主数据库实例的标识和从数据库实例的标识,并将其添加至实例组信息中。
在一种可能的设计中,实例组信息包括待创建实例组标识。
处理模块1102还用于:
响应实例创建请求,随机生成实例组标识,并将其作为待创建实例组标识。
在一种可能的设计中,处理模块1102还用于:
获取用户输入的实例组删除请求,其中实例组删除请求包括待删除实例组标识和用户标识。
获取实例组信息表,并确定实例组信息表中是否存在待删除实例组标识。
若存在待删除实例组标识,则获取用户标识对应的操作权限。
在确定用户标识对应的操作权限中存在删除权限时,对与待删除实例组标识对应的主数据库实例和从数据库实例进行删除。
在一种可能的设计中,处理模块1102还用于:
解除与待删除实例组标识对应的主数据库实例和从数据库实例之间的主从关系。
删除待删除实例组标识对应的主数据库实例,并删除待删除实例组标识对应的所有从数据库实例。
在一种可能的设计中,处理模块1102还用于:
获取用户输入的安全组绑定请求以及待处理安全组。其中,安全组绑定请求包括第一实例组标识。
获取与第一实例组标识对应的主数据库实例和从数据库实例。
将待处理安全组分别与第一实例组标识对应的主数据库实例和从数据库实例进行绑定。
在一种可能的设计中,处理模块1102还用于:
获取用户输入的实例变更请求,其中,实例变更请求包括第二实例组标识。
获取与第二实例组标识对应的主数据库实例和从数据库实例。
对第二实例组标识对应的主数据库实例和从数据库实例进行实例变更操作。其中,实例变更操作包括规格变更操作、数据盘大小变更操作和重启操作中的一个或多个。
本发明实施例提供的实例创建装置,可以实现上述实施例的实例创建方法,其实现原理和技术效果类似,此处不再赘述。
图12为本发明实施例提供的电子设备的硬件结构示意图。如图12所示,本实施例的电子设备1200包括:处理器1201以及存储器1202;
其中,存储器1202,用于存储计算机执行指令;
处理器1201,用于执行存储器存储的计算机执行指令,以实现上述实施例中接收设备所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。
可选地,存储器1202既可以是独立的,也可以跟处理器1201集成在一起。
当存储器1202独立设置时,该电子设备还包括总线1203,用于连接所述存储器1202和处理器1201。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上所述的实例创建方法。
本发明实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上所述的实例创建方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称:ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种实例创建方法,其特征在于,包括:
获取实例创建请求,并根据所述实例创建请求生成实例组信息;其中,所述实例创建请求包括目标实例数量;
创建数量为所述目标实例数量的主数据库实例;
从创建的主数据库实例中选取一个主数据库实例作为目标主数据库实例,并将剩余的主数据库实例作为从数据库实例;
根据所述目标主数据库实例和所述从数据库实例对所述实例组信息进行更新。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标主数据库实例和所述从数据库实例对所述实例组信息进行更新,包括:
获取所述目标主数据库实例的标识和所述从数据库实例的标识,并将其添加至所述实例组信息中。
3.根据权利要求1所述的方法,其特征在于,所述实例组信息包括待创建实例组标识;
所述根据所述实例创建请求生成实例组信息,包括:
响应所述实例创建请求,随机生成实例组标识,并将其作为所述待创建实例组标识。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取用户输入的实例组删除请求,其中所述实例组删除请求包括待删除实例组标识和用户标识;
获取实例组信息表,并确定所述实例组信息表中是否存在所述待删除实例组标识;
若存在所述待删除实例组标识,则获取所述用户标识对应的操作权限;
在确定所述用户标识对应的操作权限中存在删除权限时,对与所述待删除实例组标识对应的主数据库实例和从数据库实例进行删除。
5.根据权利要求4所述的方法,其特征在于,所述对与所述待删除实例组标识对应的主数据库实例和从数据库实例进行删除,包括:
解除与所述待删除实例组标识对应的主数据库实例和从数据库实例之间的主从关系;
删除所述待删除实例组标识对应的主数据库实例,并删除所述待删除实例组标识对应的所有从数据库实例。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取用户输入的安全组绑定请求以及待处理安全组;其中,所述安全组绑定请求包括第一实例组标识;
获取与所述第一实例组标识对应的主数据库实例和从数据库实例;
将所述待处理安全组分别与所述第一实例组标识对应的主数据库实例和从数据库实例进行绑定。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
获取用户输入的实例变更请求,其中,所述实例变更请求包括第二实例组标识;
获取与所述第二实例组标识对应的主数据库实例和从数据库实例;
对所述第二实例组标识对应的主数据库实例和从数据库实例进行实例变更操作;其中,所述实例变更操作包括规格变更操作、数据盘大小变更操作和重启操作中的一个或多个。
8.一种实例创建装置,其特征在于,包括:
信息获取模块,用于获取实例创建请求,并根据所述实例创建请求生成实例组信息;其中,所述实例创建请求包括目标实例数量;
处理模块,用于创建数量为所述目标实例数量的主数据库实例;
所述处理模块,还用于从创建的主数据库实例中选取一个主数据库实例作为目标主数据库实例,并将剩余的主数据库实例作为从数据库实例;
所述处理模块,还用于根据所述目标主数据库实例和所述从数据库实例对所述实例组信息进行更新。
9.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至7任一项所述的实例创建方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至7任一项所述的实例创建方法。
CN202111126989.7A 2021-09-26 2021-09-26 实例创建方法、装置、电子设备及可读存储介质 Pending CN115878587A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111126989.7A CN115878587A (zh) 2021-09-26 2021-09-26 实例创建方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111126989.7A CN115878587A (zh) 2021-09-26 2021-09-26 实例创建方法、装置、电子设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN115878587A true CN115878587A (zh) 2023-03-31

Family

ID=85762453

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111126989.7A Pending CN115878587A (zh) 2021-09-26 2021-09-26 实例创建方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN115878587A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116644058A (zh) * 2023-06-01 2023-08-25 北京首都在线科技股份有限公司 基于关系型数据库管理系统的数据库的创建方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116644058A (zh) * 2023-06-01 2023-08-25 北京首都在线科技股份有限公司 基于关系型数据库管理系统的数据库的创建方法

Similar Documents

Publication Publication Date Title
US10331625B2 (en) Managing sequential data store
EP3726365A1 (en) Data processing method and device
CN107977396B (zh) 一种KeyValue数据库的数据表的更新方法与表数据更新装置
US10095699B2 (en) Computer-readable recording medium, execution control method, and information processing apparatus
CN109032796B (zh) 一种数据处理方法和装置
JP2010182302A (ja) メタデータグルーピングにより効率的なデータ重複削除を行なう方法と装置
CN110858194A (zh) 一种数据库扩容的方法和装置
JP2021518021A (ja) データ処理方法、装置及びコンピュータ読み取り可能な記憶媒体
CN114443908A (zh) 图数据库构建方法、系统、终端及存储介质
CN115878587A (zh) 实例创建方法、装置、电子设备及可读存储介质
CN108520401B (zh) 用户名单管理方法、装置、平台及存储介质
US20230252025A1 (en) Data Processing System, Blockchain-Based Data Processing Method, and Device
CN114816225A (zh) 存储集群的管理方法、装置、电子设备及存储介质
CN114385657A (zh) 数据存储方法、装置及存储介质
US11409700B2 (en) Method, electronic device and computer program product for snapshot replication
CN113590033A (zh) 一种超融合系统的信息同步方法及装置
CN113610527A (zh) 联盟链的交易方法、装置、系统、终端设备及存储介质
JP2012164166A (ja) 情報処理システム
CN112463887A (zh) 一种数据处理方法、装置、设备及存储介质
CN111061719A (zh) 数据收集方法、装置、设备和存储介质
WO2024109388A1 (zh) 特征同步方法、装置、计算机设备、存储介质和程序产品
US11347406B2 (en) Method, electronic device and computer program product for updating information
CN113138722B (zh) 用于分布式块存储系统的复制快照方法、系统和介质
JP7242744B2 (ja) マイグレーション支援方法及びシステム
WO2024109540A1 (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