CN118296074A - 一种数据同步的方法、系统、设备集群及存储介质 - Google Patents
一种数据同步的方法、系统、设备集群及存储介质 Download PDFInfo
- Publication number
- CN118296074A CN118296074A CN202211692371.1A CN202211692371A CN118296074A CN 118296074 A CN118296074 A CN 118296074A CN 202211692371 A CN202211692371 A CN 202211692371A CN 118296074 A CN118296074 A CN 118296074A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- data synchronization
- message middleware
- abstract
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 230000015654 memory Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 238000005192 partition Methods 0.000 description 11
- 206010047289 Ventricular extrasystoles Diseases 0.000 description 9
- 238000013508 migration Methods 0.000 description 9
- 230000005012 migration Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000005129 volume perturbation calorimetry Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000013481 data capture Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000010923 batch production Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Abstract
本申请提供一种数据同步方法、系统、设备集群及存储介质,其中,该方法包括:借助消息中间件,通过业务设备在第一数据库执行数据操作的同时,并将该数据操作的摘要存储至消息中间件,然后数据同步装置实时从消息中间件中获取该数据操作的摘要,根据数据操作的操作类型、表名和主键信息等从第一数据库执行数据操作,再在第二数据库执行相应数据操作。该方法在不对业务产生影响或轻量影响的前提下,实现数据库数据操作的实时同步。
Description
技术领域
本申请涉及数据库技术领域,特别涉及一种数据同步的方法、系统、设备集群及存储介质。
背景技术
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。在云计算发展的今天,越来越多的业务可以在云上进行。目前,基于现有的云服务器可以实现在云端为用户保存数据,因此,越来越多的用户面临着把数据从自建数据库搬迁到云原生数据库的难题。尤其是数据量庞大、数据关系复杂的数据库数据,在云数据库保存可显著节省存储成本。
数据库的搬迁一般可分为离线搬迁和在线搬迁两种方式。前者适合可以停止业务写入的场景,只需搬迁存量数据,但缺点是搬迁期间,将数据需要迁出的数据库(源数据库)不能有任何数据写入,即停止业务写入,这对于很多需要7*24小时不间断服务的业务是不可接受的,尤其是数据量庞大、搬迁时间久的业务。在线搬迁适合不能停止业务写入的场景,需要实时或近实时地把业务的增量数据搬迁到需要迁入数据的数据库(目标数据库),其实现方式一般为存量数据搬迁加上增量数据同步。
数据库增量数据的实时同步,一般采用变更数据捕获(Change Data Capture,CDC)功能,用于捕获源数据库中所作的变更以同步目标数据库。但是,对于Cassandra数据库,CDC技术并不支持所有的Cassandra版本,在开启CDC时需要配置日志,当日志量达到配置的上限后,如果没有及时被消费,会导致Cassandra拒绝写入,造成业务不可用。此外,开启CDC会增加数据库服务器开销,影响服务器性能。
发明内容
本申请提供了一种数据同步的方法、系统、设备集群及存储介质,能够在不影响业务流程、不阻塞业务正常读写请求的情况下,实现数据操作的在线实时同步。
第一方面,提供了一种数据同步方法,该方法包括:首先,数据同步装置从消息中间件获取数据操作的摘要;然后,如果数据操作为添加新数据的操作,则数据同步装置按照摘要从第一数据库获取新数据,并将新数据存储至第二数据库。
通过上述方案可知,第一数据库和第二数据库不直接连通,通过数据同步装置进行连接,在数据同步过程中,由于业务不停止写入,第一数据库中新执行的数据操作,包括数据的增加、修改、删除等,不包括查询。如果数据操作为添加新数据的操作,则数据同步装置按照摘要从第一数据库获取新数据,并将新数据存储至第二数据库。
结合第一方面,在一种可能的实现方式中,包括:如果数据操作为更新数据的操作,则数据同步装置按照摘要从第一数据库获取更新后的数据,并将更新后的数据存储至第二数据库。
结合第一方面,在另一种可能的实现方式中,包括:如果数据操作为删除数据的操作,则数据同步装置在第二数据库执行删除操作。
如果数据操作为删除数据的操作,则数据同步装置无需对第一数据库进行操作,只需在第二数据库执行删除操作,完成该数据操作的同步。
在另一种可能的实现方式中,包括:第一数据库为源数据库,第二数据库为目标数据库。
结合第一方面及第一方面的任一种可能的实现方式,在第一方面的另一种可能的实现方式中,包括:在数据同步装置从消息中间件获取数据操作的摘要之前,业务设备在第一数据库执行数据操作,并将数据操作的摘要存储至消息中间件。
实施上述实现方式,通过借助消息中间件,能够在不对生产业务产生影响或产生轻量影响的前提下,实现数据操作的在线实时同步。
第二方面,提供了一种数据同步系统,该系统包括:数据同步装置,用于从消息中间件获取数据操作的摘要;如果数据操作为添加新数据的操作,则数据同步装置,还用于按照摘要从第一数据库获取新数据,并将新数据存储至第二数据库。
结合第二方面,在一种可能的实现方式中,如果数据操作为更新数据的操作,则数据同步装置,用于按照摘要从第一数据库获取更新后的数据,并将更新后的数据存储至第二数据库。
结合第二方面,在另一种可能的实现方式中,如果数据操作为删除数据的操作,则数据同步装置,用于在第二数据库执行删除操作。
在另一种可能的实现方式中,在数据同步装置从消息中间件获取数据操作的摘要之前,业务设备,用于在第一数据库执行数据操作,并将数据操作的摘要存储至消息中间件。
第三方面,提供一种计算设备集群,该计算设备集群包括至少一个计算设备,每个计算设备包括处理器和存储器;其中,至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得该计算设备集群执行如上述第一方面或者第一方面的任一可能的实现方式提供的方法。
第四方面,提供一种包含指令的计算机程序产品,当所述指令被计算设备集群运行时,使得上述计算设备集群执行如上述第一方面或者第一方面的任一可能的实现方式提供的方法。
第五方面,提供一种计算机可读存储介质,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如上述第一方面或者第一方面的任一可能的实现方式提供的方法。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请涉及的一种数据同步系统的架构示意图;
图2是本申请涉及的一种数据同步方法的示意图。
图3是本申请涉及的一种消息中间件的架构示意图。
图4是本申请涉及的一种消息中间件数据的存储示意图。
图5是本申请提供的一种数据同步的架构示意图。
图6是本申请提供的一种数据同步方法的流程示意图。
图7是本申请提供的一种数据同步系统的结构示意图。
图8是本申请提供的一种计算设备的结构示意图。
图9是本申请提供的一种计算设备集群的结构示意图。
图10是本申请提供的一种计算设备间通过网络连接的结构示意图。
具体实施方式
本申请提供的一种数据同步的方法、系统、设备集群及存储介质,下面将结合附图进行描述。
为了使本申请提供的技术方案更清晰,在具体描述本申请提供的技术方案之前,首先进行相关术语的解释。
(1)非关系数据库(Not Only SQL,NoSQL):NoSQL数据库是为了处理大规模数据集和多种数据类型,特别是大数据应用而开发的,主要用于存储半结构化的非关系数据库,是关系数据库的补充,具有可弹性扩展、数据量大、性能高、灵活的数据模型及高可用性等优势。
(2)变更数据捕获(Change Data Capture,CDC):变更数据捕获是指识别和捕获对数据库的数据所作的变更(包括数据或数据表的插入、更新、删除等),然后将这些更改按照发生的顺序完整记录下来,并实时同步另一个数据存储库,例如数据库、内存缓存、数据仓库或数据湖等。
(3)提交日志(Commit Log):是一种特殊的文件,记录用户在数据库中执行的所有写操作,当系统出现故障时,可通过提交日志恢复数据。
(4)消息中间件(Message Queue,MQ):面向消息的系统,是在分布式系统中完成消息的发送和接收的基础软件。也称为消息队列,用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程的通信。当前业界比较流行的消息中间件包括Kafka、RabbitMQ、ActiveMQ、RocketMQ等。
(5)增量数据:数据同步进程启动后,由于业务不停止写入,源数据库中新写入的数据,这些数据包括数据的增加、修改、删除等,不包括查询。增量数据是相对于存量数据而言的,存量数据是源数据库中已经存在的数据,也就是历史数据。全量数据是源数据库中的全部数据,全量数据是存量数据与增量数据的总和。
(6)数据摘要:为实现数据回查所必须的最小量数据,如操作的类型、库表名、主键信息等。
(7)数据同步装置:用于把数据库中的数据操作实时同步到另一数据库。
下面对本申请实施例涉及的一种数据同步系统的架构进行简要说明。
图1为一种数据同步系统的架构示意图,在一种应用场景下,第一数据库为源数据库,第二数据库为目标数据库。数据库的迁移是由数据同步装置同时连通源数据库和目标数据库,在配置好源数据库和目标数据库实例及迁移对象后,即可完成整个数据库的迁移和数据同步过程。数据同步支持多种网络同步方式,如公网网络、VPV网络、VPN网络和专线网络。数据同步系统包括源数据库101、目标数据库102以及业务设备103。
源数据库101为待迁移数据的数据库,一般为自建数据库,可以是关系数据库,也可以是非关系数据库。目标数据库102是数据待迁入的数据库,一般为部署在云端的云数据库。业务设备103一般为多个业务设备,在数据同步期间,对源数据库101进行实时业务写入。
当源数据库101是自建Cassandra数据库,目标数据库102是部署在云端的Cassandra数据库时,数据库迁移的实现方式一般为存量数据搬迁加上增量数据操作的实时同步。通过数据同步装置同时连通源数据库101和目标数据库102,将存量数据从源数据库101搬迁至目标数据库102,增量数据操作的同步一般提供变更数据捕获能力。
CDC是一种用于捕获和归档数据写入操作的机制,如图2所示,当对源数据库101的源表设置了“cdc=true”属性之后,这个表在进行插入、更新和删除活动时会同时插入数据到Commit Log日志文件中,CDC会将日志文件移动到配置的目录下,供用户消费(解析并删除)这些日志,实现增量数据导出并同步到目标数据库102的功能。其中,CDC目录位于Cassandra数据库的磁盘中,是专门用于存储增量数据的文件夹。
但是,开启CDC功能后需要配置日志文件,CDC日志文件Commit Log会占用磁盘空间,当达到磁盘空间的上限且没有被用户及时消费,开启CDC的源表会拒绝写请求,造成业务不可用。开启CDC还会增加数据库服务器开销,影响数据库性能。此外,由于日志文件只有在写满之后并且不需要保留时才会移动到CDC目录下,在写满之前的数据是不会同步的,因此导致实时性不高。在多副本场景下,还会导致同一数据操作存储在多个节点上,所有业务为了避免重复需要自己手动去重,这也会降低数据迁移的实时性和迁移效率。
为了解决上述问题,本申请在不对生产业务产生影响或产生轻量影响的前提下,针对Cassandra数据库,提出了一种数据同步的方法、系统、设备集群及存储介质,通过借助消息中间件,实现数据操作的在线实时同步,完成从源数据库到目标数据库的迁移。其中,轻量影响是指不影响业务流程,不阻塞业务正常读写请求,只增加少量服务器负载,且此影响可通过升级服务器规格等方式降低或消除。
为了更清楚地理解本申请提供的数据同步的方法、系统、设备集群及存储介质,下面结合对应的附图分别进行详细描述。
图3是本申请实施例的一种消息中间件的架构示意图。消息中间件301是一种用来存储消息的队列,将需要传输的数据存放在队列中。Producer302是消息中间件中的生产者,是发送消息的一方,负责创建消息,然后将消息发送至消息中间件301。Consumer303是消息中间件中的消费者,是接收消息的一方,Consumer303连接到消息中间件301拉取并消费信息。Producer和Consumer是解耦的。
图4是本申请实施例的一种消息中间件中数据的存储示意图。消息中间件一般以集群的方式来部署,如图4所示,Broker是消息中间件中的一台或多台服务器,多个Broker可以组成一个消息中间件集群。消息中间件的消息以Topic为单位进行归类,Topic是一个逻辑概念,它可以细分为多个分区Partition。每个Partition是一个有序的队列,Partition中的每条消息都会被分配一个有序的ID(即偏移量offset),offset记录Consumer303消费的位置信息,如Consumer A消费的位置信息为offset=8,新的消息不断由Producer302写入追加到Partition的末尾,即顺序写入Partition中。每一个Partition被平均分配的多个大小相等的数据文件称为Segment(段),每个Segment中的消息数量不一定相等。如图4所示,Partition中的第一个Segment从0开始,后续每个Segment文件名为上一个Partition的最大offset。其中,Segment由两大部分组成,分别为索引文件Index File和数据文件Data File,这两个文件一一对应,成对出现,其文件后缀分别为“index”和“.log”。其中,索引文件存储大量元数据,数据文件存储大量信息,元数据即指的是对应数据文件中消息的偏移量offset。
消息中间件充分利用集群优势,通过将不同Partition部署在不同服务器节点上,能够实现服务器间的并行处理。此外,消息中间件把每一个Partition大文件分为多个小文件段Segment,通过小文件段,容易定时清除或删除已经消费完的文件,能够减少磁盘占用。通过索引信息中的偏移量还可以快速定位消息位置查找消息、消费消息。本申请借助消息中间件,从消息中间件中消费消息,实现数据操作的实时同步,完成从源数据库到目标数据库的数据迁移。
图5是本申请实施例的一种数据同步的架构示意图,包括源数据库101、目标数据库102、业务设备103、消息中间件301和数据同步装置501。其中源数据库101是待迁移的数据库,用于存储和处理业务模块。目标数据库102是待迁入数据的数据库,一般是云数据库,用于替换源数据库101。业务设备103由一个或多个业务服务器组成,用于业务逻辑处理,比如读写源数据库101。消息中间件301是一个分布式消息发布订阅系统,用于存储数据操作的摘要。数据同步装置501是源数据库101数据操作的同步工具,用于把源数据库101的数据操作实时同步到目标数据库102。
具体地,本申请借助消息中间件301,通过业务设备在源数据库101执行数据操作的同时,将其数据操作的操作类型、表名、主键列和主键值存储至消息中间件301,数据同步装置501实时从消息中间件301消费,根据操作类型、表名、主键信息从源数据库101中获取数据操作的数据,在目标数据库102执行对应的数据操作。
结合图6所示的流程示意图描述本申请提供的数据同步系统,该方法应用于图5所示的数据同步系统。
如图6所示,本申请提供的一种数据同步方法的流程图,包括步骤S601至步骤S605:
步骤S601,业务设备在源数据库执行数据操作,并将数据操作的摘要存储至消息中间件。
增量数据操作的实时在线同步主要借助消息中间件,业务设备在源数据库执行数据操作的同时,将数据操作的操作类型、表名、主键等数据摘要信息存储至消息中间件,即业务双写。其中,数据摘要包含的信息,根据操作类型的不同,要能够精确确认一条数据或一批数据。
业务双写过程必须是同步的,不能是异步的。具体地,业务设备在源数据库执行数据操作成功后,会返回调用方成功,业务设备将数据操作的摘要存储至消息中间件,存储成功后,会返回调用方成功,调用方收到两个成功后,业务设备才能执行下一条数据操作。如果业务设备在源数据库执行数据操作失败,会返回调用方失败,业务设备则不再继续将数据操作的摘要存储至消息中间件,等待用户指令做出操作。如果业务设备在源数据库执行数据操作成功后,返回调用方成功,但是业务设备将数据操作的摘要存储至消息中间件失败时,此时需要将源数据库执行的数据操作做相应的回退操作。由于业务双写的该同步操作会导致业务设备写入性能的严重下降,因此,业务设备存储至消息中间件的是数据操作的摘要,而不是数据操作的完整数据,从而能够确保业务设备高效并成功地将数据操作的摘要存储至消息中间件,同时业务设备在源数据库执行数据操作的性能不受影响。
S602,数据同步装置从消息中间件中获取数据操作的摘要。
数据同步装置与消息中间件连接,顺序的从消息中间件中获取数据操作的摘要,用于从源数据库中获取数据。数据同步装置在获取数据摘要时,要及时记录消息中间件中数据消费的位置,即记录消息中间件中消息的偏移量offset。当消息中间件或数据同步装置发生故障重启时,可以从记录的偏移量offset断点处继续获取数据摘要。
S603,如果数据操作为添加新数据的操作,则数据同步装置按照摘要从源数据库获取新数据,并将新数据存储至目标数据库。
在本申请实施例中,源数据库与目标数据库不直接连通,通过数据同步装置进行连接。在数据同步过程中,由于业务不停止写入,源数据库中新执行的数据操作,包括数据的增加、修改、删除等,不包括查询。如果数据操作为添加新数据的操作,则数据同步装置按照摘要从源数据库获取新数据,并将新数据存储至目标数据库。
S604,如果数据操作为更新数据的操作,则数据同步装置按照摘要从源数据库获取更新后,并将更新后的数据存储至目标数据库。
S605,如果数据操作为删除数据的操作,则数据同步装置在目标数据库执行删除操作。
如果数据操作为删除数据的操作,则数据同步装置无需对源数据库进行操作,只需在目标数据库执行删除操作,完成该数据操作的同步。
数据同步装置在源数据库执行数据操作之前,业务设备将数据操作的摘要存储至消息中间件中的同一条数据,可能已经发生多次更新,此时数据同步装置在源数据库执行数据操作是执行此刻数据的终态,而不是数据操作发生时的状态。由于在数据同步过程中,目标数据库不提供数据读写服务,因此数据同步装置不需要同步执行数据操作完整的变化过程,只需要确保数据操作的最终一致性即可。
相应地,数据同步装置从消息中间件中获取数据操作的摘要,再从源数据库执行数据操作的过程,可以批量执行,即在一个批处理中累积多条操作记录。例如,数据同步装置从消息中间件中一次读取1024条数据,这些数据很有可能是同一条数据(主键相同)的多次操作,比如insert后update了10次,这10次操作只需要在源数据库执行一次数据操作即可,而除最后一次操作外的前9次操作都可以忽略,最终1024条数据可能只从源数据库中执行了100次。这种合并执行的方式可以减少执行次数,提升数据同步的性能和实时性。
综上所述,本申请提供的数据同步方法,借助消息中间件,通过业务设备在源数据库执行数据操作的同时,并将该数据操作的摘要存储至消息中间件,然后数据同步装置实时从消息中间件中获取该数据操作的摘要,根据数据操作的操作类型、表名和主键信息等从源数据库执行数据操作,再在目标数据库执行相应的数据操作。在不对业务产生影响或轻量影响的前提下,实现数据库数据操作的实时同步。
上文详细阐述了本申请提供的数据同步方法,为了便于更好的实施本申请提供的上述方案,相应地,下面还提供了用于配合实施上述方案的数据同步系统、设备集群及存储介质。
本申请还提供了一种数据同步系统,如图7所示。该数据同步系统700包括:数据同步装置710和业务设备720。
数据同步装置710,用于从消息中间件获取数据操作的摘要。
如果数据操作为添加新数据的操作,数据同步装置710,还用于按照摘要从第一数据库获取新数据,并将新数据存储至第二数据库。
在一种可能的实现方式中,如果数据操作为更新数据的操作,数据同步装置710,用于按照摘要从第一数据库获取更新后的数据,并将更新后的数据存储至所述第二数据库。
在一种可能的实现方式中,如果数据操作为删除数据的操作,数据同步装置710,用于在第二数据库执行删除操作。
在一种可能的实现方式中,在数据同步装置710从消息中间件获取数据操作的摘要之前,业务设备720,用于在第一数据库执行数据操作,并将数据操作的摘要存储至消息中间件。
数据同步装置710和业务设备720均可以通过软件实现,或者可以通过硬件实现。示例性的,接下来介绍数据同步装置710的实现方式。类似的,业务设备720的实现方式可以参考数据同步装置710的实现方式。
模块作为软件功能单元的一种举例,数据同步装置710可以包括运行在计算实例上的代码。其中,计算实例可以是物理主机(计算设备)、虚拟机、容器等计算设备中的至少一种。进一步地,上述计算设备可以是一台或者多台。例如,数据同步装置710可以包括运行在多个主机/虚拟机/容器上的代码。需要说明的是,用于运行该应用程序的多个主机/虚拟机/容器可以分布在相同的region中,也可以分布在不同的region中。用于运行该代码的多个主机/虚拟机/容器可以分布在相同的AZ中,也可以分布在不同的AZ中,每个AZ包括一个数据中心或多个地理位置相近的数据中心。其中,通常一个region可以包括多个AZ。
同样,用于运行该代码的多个主机/虚拟机/容器可以分布在同一个VPC中,也可以分布在多个VPC中。其中,通常一个VPC设置在一个region内。同一region内两个VPC之间,以及不同region的VPC之间跨区通信需在每个VPC内设置通信网关,经通信网关实现VPC之间的互连。
模块作为硬件功能单元的一种举例,数据同步装置710可以包括至少一个计算设备,如服务器等。或者,数据同步装置710也可以是利用ASIC实现、或PLD实现的设备等。其中,上述PLD可以是CPLD、FPGA、GAL或其任意组合实现。
数据同步装置710包括的多个计算设备可以分布在相同的region中,也可以分布在不同的region中。数据同步装置710包括的多个计算设备可以分布在相同的AZ中,也可以分布在不同的AZ中。同样,数据同步装置710包括的多个计算设备可以分布在同一个VPC中,也可以分布在多个VPC中。其中,所述多个计算设备可以是服务器、ASIC、PLD、CPLD、FPGA和GAL等计算设备的任意组合。
综上所述,本申请提供的数据同步系统如图7所示,借助消息中间件,业务设备720在源数据库执行数据操作的同时,并将数据操作的摘要存储至消息中间件,然后数据同步装置710实时从消息中间件获取该数据操作的摘要,根据数据操作的操作类型、表名和主键信息等从源数据库执行数据操作,再在目标数据库执行相应数据操作。在不对业务产生影响或轻量影响的前提下,实现数据库数据操作的实时同步。
本申请还提供一种计算设备800。如图8所示,计算设备800包括:总线802、处理器804、存储器806和通信接口808。处理器804、存储器806和通信接口808之间通过总线802通信。计算设备800可以是服务器或终端设备。应理解,本申请不限定计算设备800中的处理器、存储器的个数。
总线802可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线802可包括在计算设备800各个部件(例如,存储器806、处理器804、通信接口808)之间传送信息的通路。
处理器804可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器806可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器806还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。
存储器806中存储有可执行的代码,处理器804执行该可执行的代码以分别实现前述数据同步装置710和业务设备720的功能,从而实现数据库重分布方法。也即,存储器806上存有用于执行数据库重分布方法的指令。
通信接口808使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备800与其他设备或通信网络之间的通信。
本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。
如图9所示,所述计算设备集群包括至少一个计算设备800。计算设备集群中的一个或多个计算设备800中的存储器806中可以存有相同的用于执行数据库重分布方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备800的存储器806中也可以分别存有用于执行数据库重分布方法的部分指令。换言之,一个或多个计算设备800的组合可以共同执行用于执行数据库重分布方法的指令。
需要说明的是,计算设备集群中的不同的计算设备800中的存储器806可以存储不同的指令,分别用于执行数据同步装置710和业务设备720的部分功能。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图10示出了一种可能的实现方式。如图10所示,两个计算设备800A和800B之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。在这一类可能的实现方式中,计算设备集群中的不同的计算设备800中的存储器806可以存储不同的指令,用于执行数据库重分布系统的部分功能。也即,不同的计算设备800中的存储器806存储的指令可以实现数据同步装置710和业务设备720中的一个或多个装置的功能。
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行数据库重分布方法,或数据库重分布方法。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行数据库重分布方法,或指示计算设备执行数据库重分布方法。
以上所述,为本申请的具体实施方式。以上具体实施方式仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本发明各具体实施方式技术方案的保护范围。
Claims (12)
1.一种数据同步的方法,其特征在于,所述方法包括:
数据同步装置从消息中间件获取数据操作的摘要;
如果数据操作为添加新数据的操作,则所述数据同步装置按照所述摘要从第一数据库获取新数据,并将所述新数据存储至第二数据库。
2.根据权利要求1所述的方法,其特征在于,所述方法包括:
如果数据操作为更新数据的操作,则所述数据同步装置按照所述摘要从第一数据库获取更新后的数据,并将所述更新后的数据存储至所述第二数据库。
3.根据权利要求1或2所述的方法,其特征在于,所述方法包括:
如果数据操作为删除数据的操作,则所述数据同步装置在所述第二数据库执行所述删除操作。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述第一数据库为源数据库,所述第二数据库为目标数据库。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法包括:
在所述数据同步装置从消息中间件获取所述数据操作的摘要之前,业务设备在所述第一数据库执行所述数据操作,并将所述数据操作的所述摘要存储至所述消息中间件。
6.一种数据同步的系统,其特征在于,所述数据同步系统包括:
数据同步装置,用于从消息中间件获取数据操作的摘要;
如果数据操作为添加新数据的操作,则所述数据同步装置,还用于按照所述摘要从第一数据库获取新数据,并将所述新数据存储至第二数据库。
7.根据权利要求6所述的系统,其特征在于,所述数据同步系统包括:
如果数据操作为更新数据的操作,则所述数据同步装置,用于按照所述摘要从第一数据库获取更新后的数据,并将所述更新后的数据存储至所述第二数据库。
8.根据权利要求6或7所述的系统,其特征在于,所述数据同步系统包括:
如果数据操作为删除数据的操作,则所述数据同步装置,用于在所述第二数据库执行所述删除操作。
9.根据权利要求6至8任一项所述的系统,其特征在于,所述数据同步系统包括:
在所述数据同步装置从消息中间件获取所述数据操作的摘要之前,业务设备,用于在所述第一数据库执行所述数据操作,并将所述数据操作的所述摘要存储至所述消息中间件。
10.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1至5任一项所述的方法。
11.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求的1至5任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至5任一项所述的方法。
Publications (1)
Publication Number | Publication Date |
---|---|
CN118296074A true CN118296074A (zh) | 2024-07-05 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11153380B2 (en) | Continuous backup of data in a distributed data store | |
JP6553822B2 (ja) | 分散システムにおける範囲の分割および移動 | |
US20230087447A1 (en) | Data migration method and device | |
US9146934B2 (en) | Reduced disk space standby | |
CN107180113B (zh) | 一种大数据检索平台 | |
US20100023564A1 (en) | Synchronous replication for fault tolerance | |
US20220114064A1 (en) | Online restore for database engines | |
CN111078667B (zh) | 一种数据迁移的方法以及相关装置 | |
EP4213038A1 (en) | Data processing method and apparatus based on distributed storage, device, and medium | |
US20200364239A1 (en) | Asynchronous replication of in-scope table data | |
CN110807039A (zh) | 一种云计算环境下数据一致性维护系统及方法 | |
CN109726211B (zh) | 一种分布式时序数据库 | |
CN112181723A (zh) | 一种金融灾备方法、装置、存储介质及电子设备 | |
CN113297159B (zh) | 数据存储方法以及装置 | |
CN113051102A (zh) | 文件备份方法、装置、系统、存储介质和计算机设备 | |
WO2024109253A1 (zh) | 一种数据备份方法、系统和设备 | |
US11625503B2 (en) | Data integrity procedure | |
CN111414356A (zh) | 数据存储方法、装置、非关系数据库系统及存储介质 | |
WO2023241528A1 (zh) | 数据处理方法以及装置 | |
CN113297231A (zh) | 数据库处理方法及装置 | |
US20210056120A1 (en) | In-stream data load in a replication environment | |
CN116049306A (zh) | 数据同步方法、装置、电子设备以及可读存储介质 | |
CN118296074A (zh) | 一种数据同步的方法、系统、设备集群及存储介质 | |
CN114780639A (zh) | 一种基于双数据库并行的核心系统建设方法 | |
WO2023246654A1 (zh) | 数据管理的方法、装置、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |