CN110958287B - 操作对象数据同步方法、装置及系统 - Google Patents

操作对象数据同步方法、装置及系统 Download PDF

Info

Publication number
CN110958287B
CN110958287B CN201811133308.8A CN201811133308A CN110958287B CN 110958287 B CN110958287 B CN 110958287B CN 201811133308 A CN201811133308 A CN 201811133308A CN 110958287 B CN110958287 B CN 110958287B
Authority
CN
China
Prior art keywords
host
user instance
notification message
server
operation object
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
CN201811133308.8A
Other languages
English (en)
Other versions
CN110958287A (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 Cloud Computing Ltd
Original Assignee
Alibaba Cloud Computing 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 Cloud Computing Ltd filed Critical Alibaba Cloud Computing Ltd
Priority to CN201811133308.8A priority Critical patent/CN110958287B/zh
Publication of CN110958287A publication Critical patent/CN110958287A/zh
Application granted granted Critical
Publication of CN110958287B publication Critical patent/CN110958287B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种操作对象数据同步方法、装置及系统。其中,该方法包括:检测第一主机上是否发生用户实例修改操作;当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据,并向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。本申请解决了现有技术中,需要通过控制台完成操作对象数据的同步,导致同步过程的学习成本高且操作效率低的技术问题。

Description

操作对象数据同步方法、装置及系统
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种操作对象数据同步方法、装置及系统。
背景技术
在相关现有技术中,以一种双机版数据库为例,在用户创建新的数据库时,需要先登录数据库的控制台,通过控制台的“创建数据库”按钮填写数据库名称等信息并提交,随后控制台调用API接口将请求提交至后台管控系统,管控系统负责为该数据库分别创建至主节点、备节点,并在主节点和备节点之间搭建镜像复制。
但是,上述现有方案存在如下缺点:例如,用户必须通过控制台完成数据库的创建操作和对象数据的同步操作,不但学习成本高且操作效率低,无法使用脚本批量创建数据库;并且,从服务商角度而言,控制台维护和扩展新功能的成本较高,例如,如需在控制台新增链接服务器Linked Server的功能,则需要修改前端Web页面、后台API接口和管控系统等。
针对上述现有技术中,需要通过控制台完成操作对象数据的同步,导致同步过程的学习成本高且操作效率低的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种操作对象数据同步方法、装置及系统,以至少解决现有技术中,需要通过控制台完成操作对象数据的同步,导致同步过程的学习成本高且操作效率低的技术问题。
根据本申请实施例的一个方面,提供了一种操作对象数据同步方法,包括:检测第一主机上是否发生用户实例修改操作;当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据,并向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。
根据本申请实施例的另一方面,还提供了一种操作对象数据同步方法,包括:获取通知消息,其中,通知消息是第一主机在检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,向服务端发送的消息,通知消息携带的用户实例标识,用户实例由第一主机和第二主机构成;根据用户实例标识确定待执行的同步任务;根据待执行的同步任务将操作对象数据同步至第二主机。
根据本申请实施例的另一方面,还提供了一种操作对象数据同步装置,包括:检测模块,用于检测第一主机上是否发生用户实例修改操作;处理模块,用于当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据,并向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。
根据本申请实施例的另一方面,还提供了一种操作对象数据同步系统,包括:第一主机,用于检测第一主机上是否发生用户实例修改操作,当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据;管控服务器,用于获取第一主机发送的通知消息,通知消息携带的用户实例标识,用户实例由第一主机和第二主机构成;并根据用户实例标识确定待执行的同步任务;根据待执行的同步任务将操作对象数据同步至第二主机。
根据本申请实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行以下步骤:检测第一主机上是否发生用户实例修改操作;当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据,并向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。
根据本申请实施例的另一方面,还提供了一种计算机系统,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:检测第一主机上是否发生用户实例修改操作;当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据,并向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。
在本申请实施例中,通过检测第一主机上是否发生用户实例修改操作;当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据,并向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。
容易注意到的是,本申请实施例通过第一主机检测该第一主机上是否发生用户实例修改操作,并在检测到发生用户实例修改操作,且并未将上述用户实例修改操作的操作对象数据同步至第二主机时,通过向服务端发送通知消息的方式,通知服务端将上述操作对象数据同步至第二主机。
由此,本申请实施例达到了无需经过数据库控制台,即可直接实现同步第一主机的操作对象数据至第二主机的目的,从而实现了降低同步过程的学习成本并提高操作效率的技术效果,进而解决了现有技术中,需要通过控制台完成操作对象数据的同步,导致同步过程的学习成本高且操作效率低的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现操作对象数据同步方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本申请实施例的一种操作对象数据同步方法的流程图;
图3是根据本申请实施例的一种可选的操作对象数据同步方法的流程图;
图4是根据本申请实施例的一种可选的操作对象数据同步方法的流程图;
图5是根据本申请实施例的一种可选的操作对象数据同步的场景示意图;
图6是根据本申请实施例的另一种操作对象数据同步方法的流程图;
图7是根据本申请实施例的另一种可选的操作对象数据同步方法的流程图;
图8是根据本申请实施例的一种操作对象数据同步装置的示意图;
图9是根据本申请实施例的另一种操作对象数据同步装置的示意图;以及
图10是根据本申请实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
T-SQL(Transact-SQL),微软提供的基于SQL的扩展,用于让应用程序与SQLServer实例之间交互的主要语言,可以提供标准SQL的DLL和DML功能,加上延伸的函数、系统预存程序以及程式设计结构让程式设计更有弹性。
DBCC Trace Flag:是指数据库实例的跟踪标记,包含于T-SQL,其中,Transact-SQL编程语言提供DBCC语句作为SQLServer的数据库控制台命令,用于对数据库的物理和逻辑一致性进行检查。
链接服务器(Linked Server):SQLServer提供的一项能够跨实例执行T-SQL的功能的服务器。
双机集群系统(High Availability,HA):一种保障服务高可用性的集群系统,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点即备用节点。
实施例1
根据本申请实施例,提供了一种操作对象数据同步方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例1所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现操作对象数据同步方法的计算机终端(或移动设备)的硬件结构框图,如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的操作对象数据同步方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的操作对象数据同步方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
在本技术领域中,关系型数据管理系统SQLServer双机高可用版系列产品中,采用一主一备两台主机的形态提供服务,正常情况下主节点提供数据库服务,当主节点发生故障时,双机集群系统将用户流量引到备节点使数据库继续正常提供服务,并为故障节点提供充足的恢复时间。
用户在使用SQLServer数据库时,存在创建数据库、创建登录账号、修改DBCC跟踪标记、修改实例参数等需求,由于SQLServer双机高可用版系列产品的形态是一主一备两台主机,因此,SQL Server实例级别的特性不会自动同步到备用的主机。
本申请实施例提供一种自动化的操作对象数据同步方法,无需经过数据库控制台,即可直接实现同步用户在主节点上的增、删、改等操作对象数据至备节点,实现了降低同步过程的学习成本并提高操作效率的技术效果。
在上述运行环境下,本申请提供了如图2所示的一种操作对象数据同步方法,图2是根据本申请实施例的一种操作对象数据同步方法的流程图,如图2所示,上述方法包括如下方法步骤:
步骤S202,检测第一主机上是否发生用户实例修改操作;
步骤S204,当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据,并向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。
需要说明的是,上述步骤S202至步骤S204的执行主体可以为第一主机,还可以为数据库管理系统。
在一种可选的实施例中,SQLServer双机高可用版系列产品中的每个实例(instance)对应两台主机,其中,两台主机的角色分别为:主节点(master)和备节点(slave),具体的,上述第一主机可以为主节点,上述第二主机可以为备节点,其中,第一主机和第二主机可以构成用户实例。
在本申请实施例中,用户实例为用户提供第一主机的链接地址,允许用户通过任意客户端与SQLServer中的第一主机建立连接,并通过SQL进行创建数据库、用户实例修改操作等。
在本申请实施例中,可以但不限于在生成用户实例的过程中,通过管控服务器在数据库上预先创建一系列触发器,其中,上述一系列触发器用于捕获用户实例修改操作,并且,在检测到用户实例修改操作的情况下,上述触发器对操作对象数据进行结构化处理,并按照预设数据结构将上述操作对象数据记录在第一主机上。
其中,上述用户实例修改操作包括:创建数据库、创建登录账号、修改DBCC跟踪标记、修改实例参数等操作;上述操作对象数据包括:操作对象名称、操作对象参数等内容。
以本申请实施例中的执行主体为第一主机为例,当检测到第一主机上发生用户实例修改操作,并检测是否已经将上述操作对象数据同步到第二主机上,第一主机可以实时获取用户实例修改操作对应的操作对象数据,并记录上述操作对象数据。
并且,本申请实施例中的第一主机中还可以设置有代理模块Agent,用于实现用户实例修改操作的检测,以及发送通知消息至服务端的功能,以使得在检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,通过上述代理模块向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。
此外,本申请实施例中的第二主机上也设置有代理模块Agent,上述第二主机上的代理模块可以但不限于与第一主机上的代理模块类型相同,但是,上述第二主机上的代理模块可以通过数据库的状态判断出自身处于备节点,由于用户无法直接登录备节点进行操作,所以第二主机上的代理模块并不会向服务端发送任何消息。
在上述可选的实施例中,第一主机可以通过触发器记录上述用户实例修改操作和对应的操作对象数据,上述代理模块可以采用定时轮询的方式获取上述触发器所记录的用户实例修改操作,当代理模块检测到新的用户实例修改操作时,且操作对象数据未被同步到第二主机时,上述代理模块可以推送一条通知消息至服务端。
需要说明的是,上述通知消息中可以但不限于包含用户实例的标识ID和第一主机的标识ID、第二主机的标识ID,并不包含具体的操作对象数据。
在本申请实施例中,通过检测第一主机上是否发生用户实例修改操作;当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据,并向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。
容易注意到的是,本申请实施例通过第一主机检测该第一主机上是否发生用户实例修改操作,并在检测到发生用户实例修改操作,且并未将上述用户实例修改操作的操作对象数据同步至第二主机时,通过向服务端发送通知消息的方式,通知服务端将上述操作对象数据同步至第二主机。
由此,本申请实施例达到了无需经过数据库控制台,即可直接实现同步第一主机的操作对象数据至第二主机的目的,从而实现了降低同步过程的学习成本并提高操作效率的技术效果,进而解决了现有技术中,需要通过控制台完成操作对象数据的同步,导致同步过程的学习成本高且操作效率低的技术问题。
在本申请实施例中,可以按照预设数据结构记录上述操作对象名称和上述操作对象参数。
可选的,上述预设数据结构的表结构设计如下:
Figure BDA0001814097830000071
Figure BDA0001814097830000081
其中,在本申请实施例中,不同操作类型对应不同的记录表,以xxx指代具体的操作类型。
此外,在一种可选的实施例中,可以分别使用一张数据表记录每种操作类型的操作对象数据中已经同步到第二主机的第二操作标识batch_id。
CREATE TABLE xxx_batch_id_on_slave(
batch_id int
)
在一种可选的实施例中,如图3所示,检测到发生用户实例修改操作且操作对象数据尚未同步至第二主机包括:
步骤S302,在检测到发生用户实例修改操作的情况下,获取第一操作标识和第二操作标识。
在上述步骤S302中,第一操作标识用于表示与用户实例修改操作的操作对象类型对应的存储记录中的最新记录标识,例如,可以为每种操作类型xxx_records里最大的batch_id;第二操作标识用于表示在第二主机上已同步执行的与操作对象类型对应的操作记录中的最新记录标识,例如,可以为xxx_batch_id_on_slave表里的batch_id。
步骤S304,通过比较第一操作标识和第二操作标识确定操作对象数据尚未同步至第二主机。
可选的,在上述步骤S304中,在上述第一操作标识大于上述第二操作标识的情况下,表明上述操作对象数据尚未同步至第二主机,进而可以在确定操作对象数据尚未同步至第二主机的情况下,向服务端发送通知消息,以达到通知服务端将上述操作对象数据同步至第二主机的目的。
在一种可选的实施例中,上述服务端包括:日志服务器和管控服务器,向服务端发送通知消息可以通过如下方法步骤实现:
持续向日志服务器发送通知消息,以便管控服务器从日志服务器批量获取通知消息,并根据通知消息中携带的用户实例标识查看用户实例的状态,以产生对应的同步任务,其中,用户实例由第一主机和第二主机构成。
在上述可选的实施例中,上述日志服务器为一种消息中间件,可以但不限于通过如下任意之一消息中间件实现:LogHub、Kafka、RabbitMQ、RocketMQ等。
在本申请实施例中,由于一台管控服务器需要负责管理成百上千的用户实例,因此在消息处理效率上需要优化处理,通过设置日志服务器作为接收通知消息的消息中间件,进而管控服务器可以批量获取从日志服务器中获取通知消息,可以有效提高管控服务器的消息处理效率,并且,上述通知消息中可以仅包含用户实例的标识ID和第一主机的标识ID、第二主机的标识ID,并不包含具体的操作对象数据,这种推送消息协议设计减轻了消息中间件的负担。
需要说明的是,在本申请实施例中,在代理模块已推送上述通知消息至服务端,但上述通知消息未被管控服务器消费之前,用户可能还会持续地在第一主机上进行用户实例修改操作,在此种情况下,代理模块只要探测到检测到发生用户实例修改操作则可以继续推送新的通知消息,若在管控服务器中同一个用户实例存在多条未消费的通知消息,则通过管控服务器对上述多条未消费的通知消息进行去重处理。
在一种可选的实施例中,上述管控服务器可以使用set数据接口保存通知消息中的用户实例标识ID,并且,上述set数据接口可以根据用户实例标识ID,自动对多条未消费的通知消息进行去重处理,管控服务器可以查看set数据接口中的所有用户实例标识ID对应的实例状态,并根据上述实例状态产生对应的同步任务。
其中,如果上述用户实例标识ID对应的实例状态为删除状态,则丢弃上述用户实例标识ID,如果上述用户实例标识ID对应的实例状态为同步中状态,已有同步任务正在处理则丢弃上述用户实例标识ID,仅对剩余的用户实例标识ID对应的用户实例批量产生对应的同步任务,并根据待执行的同步任务将操作对象数据同步至第二主机。
管控服务器是提供数据库运维、资源调度、双机集群等一系列服务的综合服务器,在本申请方案中,可以但不限于主要涉及两个服务:消息消费服务(consumer)和任务管理器(task manager),其中,上述消息消费服务主要负责消费第一主机中的代理模块推送的消息;任务管理器作为一套运维系统,可将用户、运维人员对用户实例的日常操作都转化成任务的形式进行管理和跟踪。
需要说明的是,本申请实施例中,还可以将上述服务端中实现的同步逻辑下沉到第一主机的代理模块和第二主机的代理模块上,形成一个架构更加简单的操作对象数据同步方案。
在一种可选的实施例中,如图4所示,在向服务端发送通知消息之后,还包括:
步骤S402,接收管控服务器返回的确认消息;
步骤S404,响应于确认消息,更新第二操作标识,其中,第二操作标识用于表示在第二主机上已同步执行的与操作对象类型对应的操作记录中的最新记录标识。
在本申请实施例中,上述确认消息为管控服务器确认已收到上述通知消息,并将第一主机上的操作对象数据同步至上述第二主机,具体的,上述管控服务器可以直接通过任务管理器将上述确认消息发送至第一主机,无需经过消息中间件。并且,上述第一主机在接收到上述确认消息之后,响应上述确认消息并对第二操作标识进行更新处理。
其中,响应上述确认消息并对第二操作标识进行更新处理,即为更新第一主机的状态,例如,更新第一主机上的xxx_batch_id_on_slave表,表示对应batch_id的修改已经同步到第二主机上,下次检测可以跳过已经同步的内容。
在一种可选的实施例中,根据第一主机按照预设数据结构记录的操作对象数据,可以很方便地将第一主机中未同步到第二主机中的操作对象数据批量读取出来,并在第二主机上进行相应的同步处理,进而实现上述第一主机和第二主机对同步的过程无感知,用户体验和单机版产品无差别。
需要说明的是,根据用户实例修改操作类型的不同,同步处理方法可以略有不同,其中:数据库的新建、复制操作:需要在第一主机上备份数据库,并将上述备份数据库拷贝至第二主机进行还原,然后搭建镜像复制关系;数据库的删除操作:根据记录表中的database字段获取待删除的数据库,在第二主机上的对应的数据表执行drop database操作,由于数据库的删除操作相对危险,删除前需要二次确认数据库处于非在线状态;登录账号的增删改、修改DBCC跟踪标记、修改实例参数等操作:由于触发器已经将相关数据库语句存入记录表的sql_cmd字段,直接在第二主机上执行即可。
为便于理解本申请实施例所提供的操作对象数据同步方法,以下通过如图5所示的一种可选的操作对象数据同步的场景示意图,对本申请实施例进行解释说明:
如图5所示,上述可选的场景可以通过本申请实施例提供的可选的操作对象数据同步系统实现,其中,上述操作对象数据同步系统包括:用户实例502、第一主机504、第二主机506、代理模块508、日志服务器512、管控服务器514、消息消费服务516和任务管理器518。
其中,上述用户实例502可以由第一主机504、第二主机506构成,第一主机504为主节点,第二主机506为备节点,用户可以在第一主机504上进行用户实例修改操作,上述代理模块508设置在上述第一主机504上,用于实现用户实例修改操作的检测,以及发送通知消息至服务端的功能,以使得在检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机506时,通过上述代理模块508向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机506。
具体的,服务端包括:日志服务器512、管控服务器514;上述代理模块508可以持续向日志服务器512发送通知消息,以便管控服务器514从日志服务器512批量获取通知消息,并根据通知消息中携带的用户实例标识查看用户实例500的状态,以产生对应的同步任务,以使得将操作对象数据同步至第二主机506。
在一种可选的实施例中,上述管控服务器514涉及如下两个服务:消息消费服务516和任务管理器518,其中,上述消息消费服务516主要负责消费第一主机504中的代理模块508推送的消息;任务管理器518作为一套运维系统,可将用户、运维人员对用户实例502的日常操作都转化成任务的形式进行管理和跟踪,上述任务管理器518可以发送确认消息至第一主机504,并获取第一主机504中记录的操作对象数据,根据待执行的同步任务将操作对象数据同步至第二主机506。
与基于控制台实现的现有方案相比,本申请实施例中用户直接在用户实例上进行操作,易用性、扩展性更好,通过SQLServer提供的规范化SQL语句实现,可使用脚本批量操作,突破了控制台交互的限制,且操作不需要经过API接口、管控服务器,操作后可以马上看到操作结果。
实施例2
根据本申请实施例,还提供了另一种操作对象数据同步方法的实施例,图6是根据本申请实施例的另一种操作对象数据同步方法的流程图,如图6所示,上述方法包括如下方法步骤:
步骤S602,获取通知消息,其中,上述通知消息是第一主机在检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,向服务端发送的消息,通知消息携带的用户实例标识,用户实例由第一主机和第二主机构成。
步骤S604,根据用户实例标识确定待执行的同步任务;
步骤S606,根据待执行的同步任务将操作对象数据同步至第二主机。
需要说明的是,上述步骤S602至步骤S604的执行主体可以为服务端,具体的,为服务端中的管控服务器。
在一种可选的实施例中,SQLServer双机高可用版系列产品中的每个实例(instance)对应两台主机,其中,两台主机的角色分别为:主节点(master)和备节点(slave),具体的,上述第一主机可以为主节点,上述第二主机可以为备节点,其中,第一主机和第二主机可以构成用户实例。
在本申请实施例中,用户实例为用户提供第一主机的链接地址,允许用户通过任意客户端与SQLServer中的第一主机建立连接,并通过SQL进行创建数据库、用户实例修改操作等。
在本申请实施例中,可以但不限于在生成用户实例的过程中,通过管控服务器在数据库上预先创建一系列触发器,其中,上述一系列触发器用于捕获用户实例修改操作,并且,在检测到用户实例修改操作的情况下,上述触发器对操作对象数据进行结构化处理,并按照预设数据结构将上述操作对象数据记录在第一主机上。上述用户实例修改操作包括:创建数据库、创建登录账号、修改DBCC跟踪标记、修改实例参数等操作;上述操作对象数据包括:操作对象名称、操作对象参数等内容。
并且,本申请实施例中的第一主机中还可以设置有代理模块Agent,用于实现用户实例修改操作的检测,以及发送通知消息至服务端的功能,以使得在检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,通过上述代理模块向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。
在上述可选的实施例中,第一主机可以通过触发器记录上述用户实例修改操作和对应的操作对象数据,上述代理模块可以采用定时轮询的方式获取上述触发器所记录的用户实例修改操作,当代理模块检测到新的用户实例修改操作时,且操作对象数据未被同步到第二主机时,上述代理模块可以推送一条通知消息至服务端。
需要说明的是,上述通知消息中可以但不限于包含用户实例的标识ID和第一主机的标识ID、第二主机的标识ID,并不包含具体的操作对象数据。
在本申请实施例中,管控服务器根据通知消息中的用户实例标识确定待执行的同步任务查询每个用户实例对应的实例状态,并根据上述实例状态产生对应的同步任务。
其中,如果上述用户实例标识ID对应的实例状态为删除状态,则丢弃上述用户实例标识ID,如果上述用户实例标识ID对应的实例状态为同步中状态,即已有同步任务正在处理,则丢弃上述用户实例标识ID,仅对剩余的用户实例标识ID对应的用户实例批量产生对应的同步任务。
步骤S606,根据待执行的同步任务将操作对象数据同步至第二主机。
在一种可选的实施例中,根据第一主机按照预设数据结构记录的操作对象数据,管控服务器可以很方便地将第一主机中未同步到第二主机中的操作对象数据批量读取出来,并在第二主机上进行相应的同步处理,进而实现上述第一主机和第二主机对同步的过程无感知,用户体验和单机版产品无差别。
需要说明的是,根据用户实例修改操作类型的不同,同步处理方法可以略有不同,其中:数据库的新建、复制操作:需要在第一主机上备份数据库,并将上述备份数据库拷贝至第二主机进行还原,然后搭建镜像复制关系;数据库的删除操作:根据记录表中的database字段获取待删除的数据库,在第二主机上的对应的数据表执行drop database操作,由于数据库的删除操作相对危险,删除前需要二次确认数据库处于非在线状态;登录账号的增删改、修改DBCC跟踪标记、修改实例参数等操作:由于触发器已经将相关数据库语句存入记录表的sql_cmd字段,直接在第二主机上执行即可。
在本申请实施例中,通过获取通知消息,其中,通知消息是第一主机在检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,向服务端发送的消息,通知消息携带的用户实例标识,用户实例由第一主机和第二主机构成;根据用户实例标识确定待执行的同步任务;根据待执行的同步任务将操作对象数据同步至第二主机。
容易注意到的是,本申请实施例中,当第一主机检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,向服务端发送通知消息,管控服务器通过获取第一主机发送的通知消息,根据通知消息中携带的用户实例标识确定待执行的同步任务,并根据待执行的同步任务将操作对象数据同步至第二主机。
由此,本申请实施例达到了无需经过数据库控制台,即可直接实现同步第一主机的操作对象数据至第二主机的目的,从而实现了降低同步过程的学习成本并提高操作效率的技术效果,进而解决了现有技术中,需要通过控制台完成操作对象数据的同步,导致同步过程的学习成本高且操作效率低的技术问题。
在一种可选的实施例中,上述步骤S602,获取通知消息可以通过如下方法步骤实现:从日志服务器批量获取通知消息,其中,日志服务器用于从第一主机实时采集通知消息。
可选的,本申请实施例中的服务端包括:日志服务器和管控服务器,其中,上述日志服务器为一种消息中间件,可以但不限于通过如下任意之一消息中间件实现:LogHub、Kafka、RabbitMQ、RocketMQ等。
在本申请实施例中,由于一台管控服务器需要负责管理成百上千的用户实例,因此在消息处理效率上需要优化处理,通过设置日志服务器作为接收通知消息的消息中间件,进而管控服务器可以批量获取从日志服务器中获取通知消息,可以有效提高管控服务器的消息处理效率,并且,上述通知消息中可以仅包含用户实例的标识ID和第一主机的标识ID、第二主机的标识ID,并不包含具体的操作对象数据,这种推送消息协议设计减轻了消息中间件的负担。
需要说明的是,在本申请实施例中,在代理模块已推送上述通知消息至服务端,但上述通知消息未被管控服务器消费之前,用户可能还会持续地在第一主机上进行用户实例修改操作,在此种情况下,代理模块只要探测到检测到发生用户实例修改操作则可以继续推送新的通知消息,若在管控服务器中同一个用户实例存在多条未消费的通知消息,则通过管控服务器对上述多条未消费的通知消息进行去重处理。
在一种可选的实施例中,图7是根据本申请实施例的另一种可选的操作对象数据同步方法的流程图,如图7所示,上述根据用户实例标识确定待执行的同步任务,可以通过如下步骤实现:
步骤S6040,根据批量获取到的通知消息中携带的用户实例标识查询每个用户实例对应的实例状态;
步骤S6042,在根据查询到的实例状态丢弃实例状态处于删除状态的第一部分用户实例以及丢弃已有同步任务正在处理的第二部分用户实例的情况下,为剩余的用户实例批量产生待执行的同步任务。
在本申请实施例中,管控服务器根据通知消息中的用户实例标识确定待执行的同步任务查询每个用户实例对应的实例状态,并根据上述实例状态产生对应的同步任务。
其中,如果上述用户实例标识ID对应的实例状态为删除状态,则丢弃上述用户实例标识ID,如果上述用户实例标识ID对应的实例状态为同步中状态,即已有同步任务正在处理,则丢弃上述用户实例标识ID,仅对剩余的用户实例标识ID对应的用户实例批量产生对应的同步任务。
在一种可选的实施例中,上述步骤S606,根据待执行的同步任务将操作对象数据同步至第二主机,可以通过如下步骤实现:
步骤S6060,根据待执行的同步任务从第一主机批量读取操作对象数据。
其中,操作对象数据包括:数据库操作数据和非数据库操作数据,非数据库操作数据至少包括:登录账号操作数据、修改数据库控制台命令跟踪标记、修改实例参数操作数据。
在一种可选的实施例中,根据第一主机按照预设数据结构记录的操作对象数据,管控服务器可以很方便地将第一主机中未同步到第二主机中的操作对象数据批量读取出来,并在第二主机上进行相应的同步处理,进而实现上述第一主机和第二主机对同步的过程无感知,用户体验和单机版产品无差别。
步骤S6062,当操作对象数据为数据库新建或复制操作数据时,将数据库新建或复制操作数据拷贝至第二主机,并在第一主机与第二主机之间建立镜像复制关系;当操作对象数据为数据库删除操作数据时,从第一主机获取待删除的数据库,并在第二主机上删除对应的数据库;当操作对象数据为非数据库操作数据时,在第二主机上执行非数据库操作数据对应的操作。
在一种可选的实施例中,根据用户实例修改操作类型的不同,同步处理方法可以略有不同,其中:数据库的新建、复制操作:需要在第一主机上备份数据库,并将上述备份数据库拷贝至第二主机进行还原,然后搭建镜像复制关系;数据库的删除操作:根据记录表中的database字段获取待删除的数据库,在第二主机上的对应的数据表执行drop database操作,由于数据库的删除操作相对危险,删除前需要二次确认数据库处于非在线状态;登录账号的增删改、修改DBCC跟踪标记、修改实例参数等操作:由于触发器已经将相关数据库语句存入记录表的sql_cmd字段,直接在第二主机上执行即可。
在一种可选的实施例中,在根据待执行的同步任务将操作对象数据同步至第二主机之后,还包括:
步骤S608,向第一主机发送确认消息,以更新第一主机上记录的预设操作标识,其中,预设操作标识用于表示在第二主机上已同步执行的与操作对象类型对应的操作记录中的最新记录标识。
在本申请实施例中,上述确认消息为管控服务器确认已收到上述通知消息,并将第一主机上的操作对象数据同步至上述第二主机,具体的,上述管控服务器可以直接通过任务管理器将上述确认消息发送至第一主机,无需经过消息中间件。并且,上述第一主机在接收到上述确认消息之后,响应上述确认消息并对预设操作标识进行更新处理。
其中,响应上述确认消息并对预设操作标识进行更新处理,即为更新第一主机的状态,例如,更新第一主机上的xxx_batch_id_on_slave表,表示对应batch_id的修改已经同步到第二主机上,下次检测可以跳过已经同步的内容。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例上述的方法。
实施例3
根据本申请实施例,还提供了一种操作对象数据同步系统的实施例,包括:第一主机,用于检测第一主机上是否发生用户实例修改操作,当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据;管控服务器,用于获取第一主机发送的通知消息,通知消息携带的用户实例标识,用户实例由第一主机和第二主机构成;并根据用户实例标识确定待执行的同步任务;根据待执行的同步任务将操作对象数据同步至第二主机。
在本申请实施例中,通过检测第一主机上是否发生用户实例修改操作;当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据,并向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。
容易注意到的是,本申请实施例通过第一主机检测该第一主机上是否发生用户实例修改操作,并在检测到发生用户实例修改操作,且并未将上述用户实例修改操作的操作对象数据同步至第二主机时,通过向服务端发送通知消息的方式,通知服务端将上述操作对象数据同步至第二主机。
由此,本申请实施例达到了无需经过数据库控制台,即可直接实现同步第一主机的操作对象数据至第二主机的目的,从而实现了降低同步过程的学习成本并提高操作效率的技术效果,进而解决了现有技术中,需要通过控制台完成操作对象数据的同步,导致同步过程的学习成本高且操作效率低的技术问题。
需要说明的是,本实施例的可选或优选实施方式可以参见实施例1中的相关描述,此处不再赘述。
实施例4
根据本申请实施例,还提供了一种计算机系统的实施例,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:检测第一主机上是否发生用户实例修改操作;当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据,并向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。
在本申请实施例中,通过检测第一主机上是否发生用户实例修改操作;当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据,并向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。
容易注意到的是,本申请实施例通过第一主机检测该第一主机上是否发生用户实例修改操作,并在检测到发生用户实例修改操作,且并未将上述用户实例修改操作的操作对象数据同步至第二主机时,通过向服务端发送通知消息的方式,通知服务端将上述操作对象数据同步至第二主机。
由此,本申请实施例达到了无需经过数据库控制台,即可直接实现同步第一主机的操作对象数据至第二主机的目的,从而实现了降低同步过程的学习成本并提高操作效率的技术效果,进而解决了现有技术中,需要通过控制台完成操作对象数据的同步,导致同步过程的学习成本高且操作效率低的技术问题。
需要说明的是,本实施例的可选或优选实施方式可以参见实施例1中的相关描述,此处不再赘述。
实施例5
根据本申请实施例,还提供了一种用于实施上述操作对象数据同步方法的装置实施例,图8是根据本申请实施例的一种操作对象数据同步装置的示意图,如图8所示,该装置800包括:检测模块802和处理模块804,其中:
检测模块802,用于检测第一主机上是否发生用户实例修改操作;处理模块804,用于当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据,并向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。
此处需要说明的是,上述检测模块802和处理模块804对应于实施例1中的步骤S202至步骤S204,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
需要说明的是,本实施例的可选或优选实施方式可以参见实施例1中的相关描述,此处不再赘述。
实施例6
根据本申请实施例,还提供了另一种用于实施上述操作对象数据同步方法的装置实施例,图9是根据本申请实施例的另一种操作对象数据同步装置的示意图,如图9所示,该装置900包括:获取模块902、确定模块904和同步模块906,其中:
获取模块902,用于获取通知消息,其中,上述通知消息是第一主机在检测到发生用户实例修改操作且上述用户实例修改操作的操作对象数据尚未同步至第二主机时,向服务端发送的消息,上述通知消息携带的用户实例标识,用户实例由上述第一主机和上述第二主机构成;确定模块904,用于根据上述用户实例标识确定待执行的同步任务;同步模块906,用于根据上述待执行的同步任务将上述操作对象数据同步至上述第二主机。
在本申请实施例中,通过获取通知消息,其中,通知消息是第一主机在检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,向服务端发送的消息,通知消息携带的用户实例标识,用户实例由第一主机和第二主机构成;根据用户实例标识确定待执行的同步任务;根据待执行的同步任务将操作对象数据同步至第二主机。
容易注意到的是,本申请实施例中,当第一主机检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,向服务端发送通知消息,管控服务器通过获取第一主机发送的通知消息,根据通知消息中携带的用户实例标识确定待执行的同步任务,并根据待执行的同步任务将操作对象数据同步至第二主机。
由此,本申请实施例达到了无需经过数据库控制台,即可直接实现同步第一主机的操作对象数据至第二主机的目的,从而实现了降低同步过程的学习成本并提高操作效率的技术效果,进而解决了现有技术中,需要通过控制台完成操作对象数据的同步,导致同步过程的学习成本高且操作效率低的技术问题。
此处需要说明的是,上述获取模块902、确定模块904和同步模块906对应于实施例2中的步骤S602至步骤S606,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
需要说明的是,本实施例的可选或优选实施方式可以参见实施例1和2中的相关描述,此处不再赘述。
实施例7
根据本申请的实施例,还提供一种计算机终端的实施例,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行应用程序的漏洞检测方法中以下步骤的程序代码:检测第一主机上是否发生用户实例修改操作;当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据,并向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。
可选地,图10是根据本申请实施例的一种计算机终端的结构框图,如图10所示,该计算机终端1000可以包括:一个或多个(图中仅示出一个)处理器1002、存储器1004、以及外设接口1006。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的安全漏洞检测方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的系统漏洞攻击的检测方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端1000。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:检测第一主机上是否发生用户实例修改操作;当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据,并向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。
可选的,上述处理器还可以执行如下步骤的程序代码:在检测到发生用户实例修改操作的情况下,获取第一操作标识和第二操作标识,其中,第一操作标识用于表示与用户实例修改操作的操作对象类型对应的存储记录中的最新记录标识,第二操作标识用于表示在第二主机上已同步执行的与操作对象类型对应的操作记录中的最新记录标识;通过比较第一操作标识和第二操作标识确定操作对象数据尚未同步至第二主机。
可选的,上述处理器还可以执行如下步骤的程序代码:按照预设数据结构记录操作对象名称和操作对象参数。
可选的,上述处理器还可以执行如下步骤的程序代码:持续向日志服务器发送通知消息,以便管控服务器从日志服务器批量获取通知消息,并根据通知消息中携带的用户实例标识查看用户实例的状态,以产生对应的同步任务,其中,用户实例由第一主机和第二主机构成。
可选的,上述处理器还可以执行如下步骤的程序代码:接收管控服务器返回的确认消息;响应于确认消息,更新第二操作标识,其中,第二操作标识用于表示在第二主机上已同步执行的与操作对象类型对应的操作记录中的最新记录标识。
可选的,上述处理器还可以执行如下步骤的程序代码:获取通知消息,其中,通知消息是第一主机在检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,向服务端发送的消息,通知消息携带的用户实例标识,用户实例由第一主机和第二主机构成;根据用户实例标识确定待执行的同步任务;根据待执行的同步任务将操作对象数据同步至第二主机。
可选的,上述处理器还可以执行如下步骤的程序代码:从日志服务器批量获取通知消息,其中,日志服务器用于从第一主机实时采集通知消息。
可选的,上述处理器还可以执行如下步骤的程序代码:根据批量获取到的通知消息中携带的用户实例标识查询每个用户实例对应的实例状态;在根据查询到的实例状态丢弃实例状态处于删除状态的第一部分用户实例以及丢弃已有同步任务正在处理的第二部分用户实例的情况下,为剩余的用户实例批量产生待执行的同步任务。
可选的,上述处理器还可以执行如下步骤的程序代码:根据待执行的同步任务从第一主机批量读取操作对象数据,其中,操作对象数据包括:数据库操作数据和非数据库操作数据,非数据库操作数据至少包括:登录账号操作数据、修改数据库控制台命令跟踪标记、修改实例参数操作数据;当操作对象数据为数据库新建或复制操作数据时,将数据库新建或复制操作数据拷贝至第二主机,并在第一主机与第二主机之间建立镜像复制关系;当操作对象数据为数据库删除操作数据时,从第一主机获取待删除的数据库,并在第二主机上删除对应的数据库;当操作对象数据为非数据库操作数据时,在第二主机上执行非数据库操作数据对应的操作。
可选的,上述处理器还可以执行如下步骤的程序代码:向第一主机发送确认消息,以更新第一主机上记录的预设操作标识,其中,预设操作标识用于表示在第二主机上已同步执行的与操作对象类型对应的操作记录中的最新记录标识。
采用本申请实施例,提供了一种操作对象数据同步的方案,通过检测第一主机上是否发生用户实例修改操作;当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据,并向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。
由此,本申请实施例达到了无需经过数据库控制台,即可直接实现同步第一主机的操作对象数据至第二主机的目的,从而实现了降低同步过程的学习成本并提高操作效率的技术效果,进而解决了现有技术中,需要通过控制台完成操作对象数据的同步,导致同步过程的学习成本高且操作效率低的技术问题。
本领域普通技术人员可以理解,图10所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图10其并不对上述电子装置的结构造成限定。例如,计算机终端1000还可包括比图10中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图10所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例8
根据本申请的实施例,还提供了一种存储介质的实施例。可选地,在本实施例中,上述存储介质可以用于保存上述实施例1所提供的操作对象数据同步方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:检测第一主机上是否发生用户实例修改操作;当检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,记录操作对象数据,并向服务端发送通知消息,以使服务端将操作对象数据同步至第二主机。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在检测到发生用户实例修改操作的情况下,获取第一操作标识和第二操作标识,其中,第一操作标识用于表示与用户实例修改操作的操作对象类型对应的存储记录中的最新记录标识,第二操作标识用于表示在第二主机上已同步执行的与操作对象类型对应的操作记录中的最新记录标识;通过比较第一操作标识和第二操作标识确定操作对象数据尚未同步至第二主机。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:按照预设数据结构记录操作对象名称和操作对象参数。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:持续向日志服务器发送通知消息,以便管控服务器从日志服务器批量获取通知消息,并根据通知消息中携带的用户实例标识查看用户实例的状态,以产生对应的同步任务,其中,用户实例由第一主机和第二主机构成。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:接收管控服务器返回的确认消息;响应于确认消息,更新第二操作标识,其中,第二操作标识用于表示在第二主机上已同步执行的与操作对象类型对应的操作记录中的最新记录标识。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取通知消息,其中,通知消息是第一主机在检测到发生用户实例修改操作且用户实例修改操作的操作对象数据尚未同步至第二主机时,向服务端发送的消息,通知消息携带的用户实例标识,用户实例由第一主机和第二主机构成;根据用户实例标识确定待执行的同步任务;根据待执行的同步任务将操作对象数据同步至第二主机。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:从日志服务器批量获取通知消息,其中,日志服务器用于从第一主机实时采集通知消息。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:根据批量获取到的通知消息中携带的用户实例标识查询每个用户实例对应的实例状态;在根据查询到的实例状态丢弃实例状态处于删除状态的第一部分用户实例以及丢弃已有同步任务正在处理的第二部分用户实例的情况下,为剩余的用户实例批量产生待执行的同步任务。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:根据待执行的同步任务从第一主机批量读取操作对象数据,其中,操作对象数据包括:数据库操作数据和非数据库操作数据,非数据库操作数据至少包括:登录账号操作数据、修改数据库控制台命令跟踪标记、修改实例参数操作数据;当操作对象数据为数据库新建或复制操作数据时,将数据库新建或复制操作数据拷贝至第二主机,并在第一主机与第二主机之间建立镜像复制关系;当操作对象数据为数据库删除操作数据时,从第一主机获取待删除的数据库,并在第二主机上删除对应的数据库;当操作对象数据为非数据库操作数据时,在第二主机上执行非数据库操作数据对应的操作。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:向第一主机发送确认消息,以更新第一主机上记录的预设操作标识,其中,预设操作标识用于表示在第二主机上已同步执行的与操作对象类型对应的操作记录中的最新记录标识。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (13)

1.一种操作对象数据同步方法,包括:
检测第一主机上是否发生用户实例修改操作;
当检测到发生所述用户实例修改操作且所述用户实例修改操作的操作对象数据尚未同步至第二主机时,记录所述操作对象数据,并向服务端发送通知消息,以使所述服务端将所述操作对象数据同步至所述第二主机;
其中,所述服务端包括:日志服务器和管控服务器,向所述服务端发送通知消息包括:持续向所述日志服务器发送通知消息,以便所述管控服务器从所述日志服务器批量获取所述通知消息,并根据所述通知消息中携带的用户实例标识查看用户实例的状态,以产生对应的同步任务,其中,所述用户实例由所述第一主机和所述第二主机构成,所述通知消息不包含所述操作对象数据。
2.根据权利要求1所述的方法,其中,检测到发生所述用户实例修改操作且所述操作对象数据尚未同步至所述第二主机包括:
在检测到发生所述用户实例修改操作的情况下,获取第一操作标识和第二操作标识,其中,所述第一操作标识用于表示与所述用户实例修改操作的操作对象类型对应的存储记录中的最新记录标识,所述第二操作标识用于表示在所述第二主机上已同步执行的与所述操作对象类型对应的操作记录中的最新记录标识;
通过比较所述第一操作标识和所述第二操作标识确定所述操作对象数据尚未同步至所述第二主机。
3.根据权利要求1所述的方法,其中,所述操作对象数据至少包括:操作对象名称、操作对象参数,记录所述操作对象数据包括:
按照预设数据结构记录所述操作对象名称和所述操作对象参数。
4.根据权利要求1所述的方法,其中,在向所述服务端发送通知消息之后,还包括:
接收所述管控服务器返回的确认消息;
响应于所述确认消息,更新第二操作标识,其中,所述第二操作标识用于表示在所述第二主机上已同步执行的与操作对象类型对应的操作记录中的最新记录标识。
5.一种操作对象数据同步方法,包括:
获取通知消息,其中,所述通知消息是第一主机在检测到发生用户实例修改操作且所述用户实例修改操作的操作对象数据尚未同步至第二主机时,向服务端发送的消息,所述通知消息携带的用户实例标识,用户实例由所述第一主机和所述第二主机构成;
根据所述用户实例标识确定待执行的同步任务;
根据所述待执行的同步任务将所述操作对象数据同步至所述第二主机;
其中,所述服务端包括:日志服务器和管控服务器,向所述服务端发送通知消息包括:持续向所述日志服务器发送通知消息,以便所述管控服务器从所述日志服务器批量获取所述通知消息,并根据所述通知消息中携带的用户实例标识查看用户实例的状态,以产生对应的同步任务,其中,所述用户实例由所述第一主机和所述第二主机构成,所述通知消息不包含所述操作对象数据。
6.根据权利要求5所述的方法,其中,获取所述通知消息包括:
从日志服务器批量获取所述通知消息,其中,所述日志服务器用于从所述第一主机实时采集所述通知消息。
7.根据权利要求6所述的方法,其中,根据所述用户实例标识确定所述待执行的同步任务包括:
根据批量获取到的所述通知消息中携带的所述用户实例标识查询每个用户实例对应的实例状态;
在根据查询到的实例状态丢弃实例状态处于删除状态的第一部分用户实例以及丢弃已有同步任务正在处理的第二部分用户实例的情况下,为剩余的用户实例批量产生所述待执行的同步任务。
8.根据权利要求6所述的方法,其中,根据所述待执行的同步任务将所述操作对象数据同步至所述第二主机包括:
根据所述待执行的同步任务从所述第一主机批量读取所述操作对象数据,其中,所述操作对象数据包括:数据库操作数据和非数据库操作数据,所述非数据库操作数据至少包括:登录账号操作数据、修改数据库控制台命令跟踪标记、修改实例参数操作数据;
当所述操作对象数据为数据库新建或复制操作数据时,将所述数据库新建或复制操作数据拷贝至所述第二主机,并在所述第一主机与所述第二主机之间建立镜像复制关系;当所述操作对象数据为数据库删除操作数据时,从所述第一主机获取待删除的数据库,并在所述第二主机上删除对应的数据库;当所述操作对象数据为所述非数据库操作数据时,在所述第二主机上执行所述非数据库操作数据对应的操作。
9.根据权利要求5所述的方法,其中,在根据所述待执行的同步任务将所述操作对象数据同步至所述第二主机之后,还包括:
向所述第一主机发送确认消息,以更新所述第一主机上记录的预设操作标识,其中,所述预设操作标识用于表示在所述第二主机上已同步执行的与操作对象类型对应的操作记录中的最新记录标识。
10.一种操作对象数据同步装置,包括:
检测模块,用于检测第一主机上是否发生用户实例修改操作;
处理模块,用于当检测到发生所述用户实例修改操作且所述用户实例修改操作的操作对象数据尚未同步至第二主机时,记录所述操作对象数据,并向服务端发送通知消息,以使所述服务端将所述操作对象数据同步至所述第二主机;
其中,所述服务端包括:日志服务器和管控服务器,向所述服务端发送通知消息包括:持续向所述日志服务器发送通知消息,以便所述管控服务器从所述日志服务器批量获取所述通知消息,并根据所述通知消息中携带的用户实例标识查看用户实例的状态,以产生对应的同步任务,其中,所述用户实例由所述第一主机和所述第二主机构成,所述通知消息不包含所述操作对象数据。
11.一种操作对象数据同步系统,包括:
第一主机,用于检测第一主机上是否发生用户实例修改操作,当检测到发生所述用户实例修改操作且所述用户实例修改操作的操作对象数据尚未同步至第二主机时,记录所述操作对象数据;
服务端,用于获取所述第一主机发送的通知消息,所述通知消息携带的用户实例标识,并根据所述用户实例标识确定待执行的同步任务;根据所述待执行的同步任务将所述操作对象数据同步至所述第二主机;
其中,所述服务端包括:日志服务器和管控服务器,向所述服务端发送通知消息包括:持续向所述日志服务器发送通知消息,以便所述管控服务器从所述日志服务器批量获取所述通知消息,并根据所述通知消息中携带的用户实例标识查看用户实例的状态,以产生对应的同步任务,其中,所述用户实例由所述第一主机和所述第二主机构成,所述通知消息不包含所述操作对象数据。
12.一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行以下步骤:
检测第一主机上是否发生用户实例修改操作;
当检测到发生所述用户实例修改操作且所述用户实例修改操作的操作对象数据尚未同步至第二主机时,记录所述操作对象数据,并向服务端发送通知消息,以使所述服务端将所述操作对象数据同步至所述第二主机;
其中,所述服务端包括:日志服务器和管控服务器,向所述服务端发送通知消息包括:持续向所述日志服务器发送通知消息,以便所述管控服务器从所述日志服务器批量获取所述通知消息,并根据所述通知消息中携带的用户实例标识查看用户实例的状态,以产生对应的同步任务,其中,所述用户实例由所述第一主机和所述第二主机构成,所述通知消息不包含所述操作对象数据。
13.一种计算机系统,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:
检测第一主机上是否发生用户实例修改操作;
当检测到发生所述用户实例修改操作且所述用户实例修改操作的操作对象数据尚未同步至第二主机时,记录所述操作对象数据,并向服务端发送通知消息,以使所述服务端将所述操作对象数据同步至所述第二主机;
其中,所述服务端包括:日志服务器和管控服务器,向所述服务端发送通知消息包括:持续向所述日志服务器发送通知消息,以便所述管控服务器从所述日志服务器批量获取所述通知消息,并根据所述通知消息中携带的用户实例标识查看用户实例的状态,以产生对应的同步任务,其中,所述用户实例由所述第一主机和所述第二主机构成,所述通知消息不包含所述操作对象数据。
CN201811133308.8A 2018-09-27 2018-09-27 操作对象数据同步方法、装置及系统 Active CN110958287B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811133308.8A CN110958287B (zh) 2018-09-27 2018-09-27 操作对象数据同步方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811133308.8A CN110958287B (zh) 2018-09-27 2018-09-27 操作对象数据同步方法、装置及系统

Publications (2)

Publication Number Publication Date
CN110958287A CN110958287A (zh) 2020-04-03
CN110958287B true CN110958287B (zh) 2022-06-24

Family

ID=69975150

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811133308.8A Active CN110958287B (zh) 2018-09-27 2018-09-27 操作对象数据同步方法、装置及系统

Country Status (1)

Country Link
CN (1) CN110958287B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111796744B (zh) * 2020-06-28 2022-02-11 维沃移动通信有限公司 应用程序控制方法、装置及电子设备
CN112667742A (zh) * 2020-09-24 2021-04-16 紫光云技术有限公司 主从副本账号同步优化方法
CN117931531B (zh) * 2024-03-22 2024-07-23 腾讯科技(深圳)有限公司 数据备份系统、方法、装置、设备、存储介质及程序产品

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101706795A (zh) * 2009-11-30 2010-05-12 上海世范软件技术有限公司 主备服务器上数据库数据同步方法
CN104346479A (zh) * 2014-11-26 2015-02-11 北京奇虎科技有限公司 一种数据库同步方法及装置
CN104639613A (zh) * 2015-01-06 2015-05-20 中国农业大学 基于改进网络协议的移动数据同步中间件的实现方法
CN105224637A (zh) * 2015-09-24 2016-01-06 珠海许继芝电网自动化有限公司 一种基于PostgreSQL数据库的主备/集群应用的综合性方法
WO2016111697A1 (en) * 2015-01-09 2016-07-14 Landmark Graphics Corporation Apparatus and methods of data synchronization
CN108121782A (zh) * 2017-12-18 2018-06-05 新华三云计算技术有限公司 查询请求的分配方法、数据库中间件系统以及电子设备
CN108390919A (zh) * 2018-01-26 2018-08-10 昆明昆船逻根机场物流系统有限公司 一种用于高可靠双机热备的消息同步系统及方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8918380B2 (en) * 2009-07-09 2014-12-23 Norsync Technology As Methods, systems and devices for performing incremental updates of partial databases
CN102752372A (zh) * 2012-06-18 2012-10-24 天津神舟通用数据技术有限公司 一种基于文件的数据库同步方法
CN104156369B (zh) * 2013-05-14 2019-04-02 上海盛大网络发展有限公司 一种数据库镜像制作方法和一种数据库
CN105159795A (zh) * 2015-08-21 2015-12-16 小米科技有限责任公司 数据同步方法、装置和系统
CN107809482A (zh) * 2017-10-27 2018-03-16 朱森 一种发送数据同步更改的方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101706795A (zh) * 2009-11-30 2010-05-12 上海世范软件技术有限公司 主备服务器上数据库数据同步方法
CN104346479A (zh) * 2014-11-26 2015-02-11 北京奇虎科技有限公司 一种数据库同步方法及装置
CN104639613A (zh) * 2015-01-06 2015-05-20 中国农业大学 基于改进网络协议的移动数据同步中间件的实现方法
WO2016111697A1 (en) * 2015-01-09 2016-07-14 Landmark Graphics Corporation Apparatus and methods of data synchronization
CN105224637A (zh) * 2015-09-24 2016-01-06 珠海许继芝电网自动化有限公司 一种基于PostgreSQL数据库的主备/集群应用的综合性方法
CN108121782A (zh) * 2017-12-18 2018-06-05 新华三云计算技术有限公司 查询请求的分配方法、数据库中间件系统以及电子设备
CN108390919A (zh) * 2018-01-26 2018-08-10 昆明昆船逻根机场物流系统有限公司 一种用于高可靠双机热备的消息同步系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《Analysis of data replication mechanism in NoSQL database MongoDB》;Yunhua Gu;《2015 IEEE International Conference on Consumer Electronics - Taiwan》;20150824;全文 *
云环境MMM数据库集群双主多从架构模型构建;刘波等;《计算机与数字工程》;20160420(第04期);全文 *

Also Published As

Publication number Publication date
CN110958287A (zh) 2020-04-03

Similar Documents

Publication Publication Date Title
CN106713487B (zh) 数据的同步方法和装置
US20220179682A1 (en) Task processing method, apparatus, and system based on distributed system
CN106331098B (zh) 一种服务器集群系统
CN1988535B (zh) 文件存储同步方法、系统及客户端
US9753954B2 (en) Data node fencing in a distributed file system
US10826817B2 (en) Routing table synchronization method, apparatus, and system
CN110958287B (zh) 操作对象数据同步方法、装置及系统
CN111008026B (zh) 集群管理方法、装置及系统
CN110442427B (zh) 一种虚拟机快照管理方法、装置、设备和存储介质
US8612799B2 (en) Method and apparatus of backing up subversion repository
CN104252397A (zh) 支持云平台用户文件自动备份的实现方法
CN111930565B (zh) 分布式管理系统中组件的进程故障自愈方法、装置及设备
US11281446B2 (en) Updating method, terminal and electronic device
CN107562568B (zh) 备份文件的方法及装置
US11128622B2 (en) Method for processing data request and system therefor, access device, and storage device
CN112988879B (zh) 访问数据库的方法、系统、装置、存储介质及处理器
CN111078463A (zh) 数据备份的方法、装置和系统
CN112751693B (zh) 分布式存储系统的数据处理方法、装置及电子设备
CN110309120B (zh) 数据处理方法和数据处理装置
CN113709406B (zh) 鸿蒙会议一体机的软件协同方法、系统和存储介质
CN110659299B (zh) 数据更新的方法及装置、前端开发客户端
CN112988882B (zh) 数据的异地灾备系统、方法及装置、计算设备
CN111953722B (zh) 一种终端通讯录的同步方法及装置
CN108933724A (zh) 一种信息分享方法及系统、终端及服务器
CN104850471A (zh) 一种基于安腾平台下实现db2数据库两地三中心的方法

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
TA01 Transfer of patent application right

Effective date of registration: 20210907

Address after: Room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: ALIBABA GROUP HOLDING Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211118

Address after: 310000 No. 12, Zhuantang science and technology economic block, Xihu District, Hangzhou City, Zhejiang Province

Applicant after: Aliyun Computing Co.,Ltd.

Address before: 310052 room 508, 5th floor, building 4, No. 699 Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: Alibaba (China) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant