数据库操作方法和装置的制造方法_2

文档序号:9708415阅读:来源:国知局
SQL数据库的类型标识,确定当前操作的数据库类型为MySQL数据库。可以基于预设数据库操作中的启动操作的操作标识与被不同类型的数据库最终执行的数据库启动操作的对应关系,确定出MySQL数据库提供的与数据库启动操作对应的调用接口。
[0036]步骤203,对目标数据库执行经确定出的数据库操作。
[0037]在本实施例中,在确定出了被目标数据库执行的数据库操作之后,可以对目标数据库执行经确定出的数据库操作。以目标数据库为MySQL数据库,对MySQL数据库进行启动为例,当基于预设数据库操作中的启动操作的操作标识与被不同类型的数据库最终执行的数据库启动操作的对应关系,确定出MySQL数据库提供的与数据库启动操作对应的调用接口时,可以利用该调用接口调用被My SQL数据库执行的数据库启动操作,对My SQL数据库进行启动。
[0038]在本实施例的一些可选的实现方式中,预设数据库操作为创建操作,以及对目标数据库执行经确定出的数据库操作包括:分别创建目标数据库对应的主数据库与从数据库,以及分别创建主数据库与从数据库对应的主数据库实例与从数据库实例。
[0039]下面以目标数据库为MySQL数据库为例,说明预设数据库操作为创建操作时,对目标数据库的创建过程:可以响应于客户端发送的创建MySQL数据库的数据库操作请求,创建主My SQL数据库以及从My SQL数据库。主My SQL数据库可以将数据的变化同步到从数据库,从MySQL数据库可以处于待命状态。从MySQL数据库可以对主MySQL数据库上的数据进行备份,确保数据不因故障而丢失以及当主MySQL数据库出现故障时,从MySQL数据库可以继续执行由主MySQL数据库执行的数据库操作。在本实施例中,在对主MySQL数据库、从MySQL数据库执行数据库操作时,可以预先创建主MySQL数据库、从MySQL数据库对应的主MySQL数据库实例、从MySQL数据库实例,然后,可以将主MySQL数据库、从MySQL数据库的数据库文件加载到主MySQL数据库实例、从MySQL数据库实例中,在加载完成之后,可以利用主MySQL数据库实例、从My SQL数据库对主My SQL数据库、从My SQL数据库执行数据库操作。
[0040]在本实施例的一些可选的实现方式中,预设数据库操作为除创建操作之外的预设数据库操作,以及对目标数据库执行经确定出的数据库操作包括:利用主数据库实例和/或从数据库实例对主数据库和/或从数据库执行除创建操作对应的经确定出的数据库操作之外的经确定出的数据库操作。
[0041]在本实施例中,在通过创建操作创建目标数据库之后,可以利用主数据库实例和/或从数据库实例经由预设数据库操作接口对主数据库和/或从数据库执行监控操作、修复操作、删除操作、升级操作、扩容操作、主从切换操作等类型的数据库操作。
[0042]请参考图3,其示出了对多个类型的数据库进行统一操作的原理图。在图3中,示出了客户端、数据库操作端、MySQL数据库和SQLServer数据库。MySQL数据库和SQLServer数据库分别对应MySQL数据库实例和SQLServer数据库实例。可以采用VM/Docker对MySQL数据库实例和SQLServer数据库实例进行部署。客户端可以通过在控制台输入与数据库操作对应的指令,发出对MySQL数据库和SQLServer数据库的数据库操作请求。Agent代理应用可以用于将数据库操作请求发送至数据库操作端。数据库操作端可以接收数据库操作请求,利用MySQL数据库实例和SQLServer数据库实例分别对MySQL数据库和SQLServer数据库进行操作。在数据库操作端,设置有预设数据库操作中的监控操作、启动操作、停止操作、修复操作对应的monitor、start、stop、repair接口以及主从转换操作相关联的switchover、failover等预设数据库操作接口。相应地,在TaskScript中配置与预设数据库操作接口对应的被不同类型的数据库执行的数据库操作,例如脚本文件。从而当上述接口被调用时,可以调用相应地脚本文件执行被不同类型的数据库执行的数据库操作。
[0043]在本实施例中,可以利用ActiveMQ队列对数据库操作请求进行排序,可以采用以下方式实现ActiveMQ队列:预先为每一个数据库操作预先准备一个队列,当接收到数据库操作请求时,则可以根据数据库操作的类型将数据库操作加入相应地队列中。然后,利用任务管理单元TaskManagement依次对ActiveMQ队列中的数据库操作请求进行处理。
[0044]在本实施例中,当同时对MySQL数据库和SQLServer数据库进行数据库操作时,仅需在数据库操作请求中分别加入MySQL数据库和SQLServer数据库的类型的标识,以及预设数据库操作的操作标识,即可经由预设数据库操作接口,分别执行MySQL数据库和SQLServer数据库各自对应的数据库操作,从而实现对不同类型的数据库的统一操作。
[0045]在本实施例中,通过对不同类型的数据库进行统一操作,减少了客户端与数据库操作端之间的耦合。一方面,相较于现有技术中的针对每一种类型的数据库,均需在客户端与数据库操作端设置独立的数据库操作规程,减轻了数据库系统的负载。另一方面,相较于现有技术中的当对一个类型的数据库进行配置(例如数据库版本升级)时,由于每一个类型的数据库对应一套独立的数据库操作规程,因此,对数据库服务端中的数据库操作进行更新,需要对客户端行相应地更新。而在本实施例中,由于客户端与数据库操作端的分离,从而仅对数据库操作端进行更新即可,进一步提升数据库系统的可靠性。
[0046]在本实施例中,通过接收对目标数据库的数据库操作请求,数据库操作请求包括:目标数据库的类型标识、对目标数据库进行的预设数据库操作的操作标识,其中,每一个操作标识预设为对应多个分别由不同类型的数据库执行的数据库操作;确定出由类型标识指示的类型的数据库执行的、与操作标识对应的数据库操作;执行经确定出的数据库操作。实现了对不同类型的数据库的操作逻辑、操作接口以及操作方法的统一,进而提升了数据库系统的可靠性。
[0047]请参考图4,其示出了根据本申请的数据库操作方法的另一个实施例的流程400。该方法包括以下步骤:
[0048]步骤401,接收对目标数据库的数据库操作请求。
[0049]在本实施例中,目标数据库可以为运行于云服务器上的云数据库,云服务器运行多个类型的云数据库。
[0050]在本实施例中,预设数据库操作包括以下之一:创建操作、监控操作、修复操作、删除操作、升级操作、扩容操作、主从切换操作。
[0051]步骤402,确定出由类型标识指示的类型的数据库执行的、与操作标识对应的数据库操作。
[0052]在本实施例中,可以基于预设数据库操作的操作标识与被不同类型的数据库最终执行的数据库操作的对应关系,确定出由类型标识指示的类型的数据库执行的、与操作标识对应的数据库操作。在本实施例中,当预设数据库操作为创建操作时,可以采用以下方式创建目标数据库:分别创建目标数据库对应的主数据库与从数据库,以及分别创建主数据库与从数据库对应的主数据库实例与从数据库实例。在本实施例中,可以利用主数据库实例和/或从数据库实例对主数据库和/或从数据库执行除创建操作对应的经确定出的数据库操作之外的经确定出的数据库操作。
[0053]步骤403,创建目标数据库对应的监控线程。
[0054]在本实施例中,在分别创建主数据库与从数据库对应的主数据库实例与从数据库实例之后,可以创建目标数据库对应的监控线程;利用监控线程检测主数据库实例以及从数据库实例的运行状态。
[0055]在本实施例中,运行状态包括以下之一:启动中状态、已启动状态、操作中状态、关闭中状态、已关闭状态、故障状态。
[0056]在本实施例中,可以预先建立表示主数据库实例与从数据库实例的运行状态以及运行状态之间的转换关系。请参考图5,其示出了数据库实例的运行状态转换的原理图。在图5中,示出了Activing(启动中)、Actived(已启动)、Deactiving(关闭中)、Deactived(已关闭)数据库实例状态。应理解,由于对数据库执行的数据库操作是通过数据库实例完成的,因此数据库实例的状态可以相当于数据库的状态。例如,当数据库实例的状态为Actived状态时,则表示数据库可以提供数据库服务。
[0057]在本实施例中,当运行状态为故障状态时,可以利用监控线程确定故障状态对应的预设故障类型;执行与预设故障类型对应的修复操作对应的经确定出的数据库操作。监控线程可以通过调用预设数据库操作接口中的monitor接口,获取数据库在运行过程中的参数数据库实例的运行状态。该参数可以包括数据库是否可以正常、CPU占有率、磁盘使用率等。当确定数据库处于故障状态时,则可以确定故障类型,执行与预设故障类型对应的预设数据库操作中的修复操作对应的经确定出的数据库操作,即通过调用预设数据库操作接口中的repair接口,调用与故障类型对应的修复脚本对故障进行修复。
[0058]以主数据库与从数据库之间的主从转换操作为例,说明执行故障修复操作的过程:当主数据发生故障时,可以进行主数据库与从数据库之间的切换,即由从数据库替换主数据库,继续执行由主数据库处理的数据库请求,这一过程也可称之为Hot Standby。可以利用HA (High Availability,高可用性)机制执行主数据库与从数据库之间的HotStandby,HA机制的作用为确保主、从数据库数据的一致性,从而减少当主数据库发生故障时,数据库服务中断的次数。
[0059]在本实施例中,当运行状态为除故障状态之外的运
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1