CN114490570A - 生产数据同步方法、装置、数据同步系统及服务器 - Google Patents
生产数据同步方法、装置、数据同步系统及服务器 Download PDFInfo
- Publication number
- CN114490570A CN114490570A CN202111624854.3A CN202111624854A CN114490570A CN 114490570 A CN114490570 A CN 114490570A CN 202111624854 A CN202111624854 A CN 202111624854A CN 114490570 A CN114490570 A CN 114490570A
- Authority
- CN
- China
- Prior art keywords
- data
- production
- version number
- server
- synchronized
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Abstract
本申请提供了一种生产数据同步方法、装置、数据同步系统及服务器,方法包括:在任一生产服务器的预设生产数据同步条件被触发时,从该生产服务器的数据库中获取当前版本号;将当前版本号与本地记录的该生产服务器对应的目标版本号进行比对;目标版本号为本地记录的上一次获取到的该生产服务器的版本号;在当前版本号与目标版本号不同时,根据当前版本号对应的数据更新位置,获取该生产服务器中的各数据更新位置处的待同步操作;分别在生产数据管理服务器的本地数据库的各数据更新位置处执行对应的各待同步操作。该方式使得整个同步过程无需关注中间变化的值,直接实现对于修改位置处的最新数据的同步,使得同步数据量得以变少,同步效率得以提高。
Description
技术领域
本申请涉及数据同步技术领域,具体而言,涉及一种生产数据同步方法、装置、数据同步系统及服务器。
背景技术
在进行通信模组的生产过程中,会产生大量的生产数据。而这些生产数据需要进行保存,以便后续分析查询。而若基于生产服务器进行生产数据的分析使用,那么将导致生产服务器压力暴增,从而会经常出现报警和宕机等问题,严重时甚至会导致产线停线,带来巨大损失。
为此,目前会将生产数据同步至其他服务器进行分析使用,从而减小生产服务器压力,同时还实现异地备份的效果。
而目前实现生产数据异地同步的方案是:针对SQL(Structured Query Language,结构化查询语言)数据库,采用Microsoft Sync Framework进行开发,或者基于SQL ServerCDC进行开发,然后进行数据库中的生产数据的同步。然而这两种方案都需要增加触发器以记录每一个数据的变化,从而会导致数据库快速增长,影响同步效率。
发明内容
本申请实施例的目的在于提供一种生产数据同步方法、装置、数据同步系统及服务器,用以解决现有技术中同步效率低的问题。
本申请实施例提供了一种生产数据同步方法,应用于生产数据管理服务器中,所述生产数据管理服务器与至少一个生产服务器连接;所述方法包括:在任一生产服务器的预设生产数据同步条件被触发时,从该生产服务器的数据库中获取当前版本号;所述当前版本号为所述生产服务器采用更改跟踪技术最新更新得到的版本号;不同版本号对应生产服务器的数据库中不同的数据更新位置;将所述当前版本号与所述生产数据管理服务器本地记录的该生产服务器对应的目标版本号进行比对;所述目标版本号为所述生产数据管理服务器本地记录的上一次获取到的该生产服务器的版本号;在所述当前版本号与所述目标版本号不同时,根据所述当前版本号对应的数据更新位置,获取该生产服务器中的各所述数据更新位置处的待同步操作;分别在所述生产数据管理服务器中本地数据库的各所述数据更新位置处执行对应的各所述待同步操作。
在上述实现过程中,通过利用更改跟踪技术,实现对于生产服务器的数据库中当前版本号的获取。而更改跟踪技术,是一种自动跟踪更改发生位置,并生成相应版本号的技术。因此,在当前版本号与上一次获取到的该生产服务器的版本号不一致时,即可确定该生产服务器中的数据发生了更改。进而根据当前版本号对应的数据更新位置获取该生产服务器中的各所述数据更新位置处的待同步操作,进而实现同步。这就使得整个生产数据的同步过程,相比于现有技术而言,无需关注生产数据中间变化的值,直接实现对于修改位置处的最新生产数据的同步,使得同步数据量得以变少,同步效率得以提高。
进一步地,根据所述当前版本号对应的数据更新位置,获取该生产服务器中的各所述数据更新位置处的待同步操作,包括:针对各所述数据更新位置,分别按照以下方式获取所述待同步操作:获取该生产服务器中所述数据更新位置的所在表项的类型;根据所述类型对应的需检测操作项目,检测所述数据更新位置处的待同步操作。
应理解,在实际应用过程中,不同类型的数据表项可能具有不同的特性,比如有些类型的表项只会插入不会删除不会进行数据更新,有些类型的表项中的列不会进行数据更新或很少进行数据更新,有些表项则属于常规表项,既可以插入,也可以删除,也可以更新。在上述实现过程中,通过对不同类型的数据表项,采用不同的同步策略(即根据类型对应的需检测操作项目进行检测),从而可以避免对所有表项都执行全部的操作项目检测,从而进一步提高同步效率。
进一步地,在所述所在表项的类型为第一类型时,根据所述类型对应的需检测操作项目,检测所述数据更新位置处的待同步操作,包括:检测所述数据更新位置处是否存在数据插入操作;若存在,确定所述待同步操作为所述数据插入操作;若不存在,确定所述数据更新位置处不存在待同步操作;对应的,在本地数据库的所述数据更新位置处执行对应的所述待同步操作包括:获取该生产服务器中所述数据更新位置处的插入数据;在本地数据库的所述数据更新位置处插入所述插入数据;其中,所述第一类型的表项为只存在插入操作,不存在删除和更新操作的表项。
在上述实现过程中,对于存在插入操作,不存在删除和更新操作的表项,即只需进行数据插入操作的检测即可,从而可以有效提高同步效率。
进一步地,表项的类型包括第二类型;所述第二类型的表项为列不会更新或更新频率低于预设频率阈值的表项;所述第二类型的表项中的数据更新位置为根据启用列跟踪功能的所述更改跟踪技术确定出的数据更新位置;在所述所在表项的类型为第二类型时,根据所述类型对应的需检测操作项目,检测所述数据更新位置处的待同步操作,检测所述数据更新位置处是否存在数据更新操作;若存在,确定所述待同步操作为所述数据更新操作;若不存在,确定所述数据更新位置处不存在待同步操作;对应的,在本地数据库的所述数据更新位置处执行对应的所述待同步操作包括:获取该生产服务器中所述数据更新位置处的最新数据;将本地数据库的所述数据更新位置处的数据更新为所述最新数据。
在上述实现过程中,对于列不会进行数据更新或很少进行数据更新的第二类型的表项,通过在采用更改跟踪技术时,开启列跟踪功能,从而使得针对这类表项,可以将数据更新位置精确到每一个对象的属性格上(需了解的是,在数据库中,表项的每一行即对应一个对象,而该行中每一例即对应一种该对象的属性),从而可以有效减少同步的数据量,提高同步效率。
进一步地,所述生产服务器中数据库的数据库隔离级别为该数据库的原始设定级别。
应理解,现有技术中所描述的两种方案,还需要对生产服务器中数据库进行很多变更,其中包括更改数据库的隔离级别,这对生产服务器的生产使用是一种风险。而对于生产数据而言,各数据表项之间具有较高的独立性,从而不更改数据库的隔离级别,在进行数据同步后,同步后的各数据表项可用性也是有保障的。为此,在上述实现过程中,通过设定生产服务器中数据库的数据库隔离级别为该数据库的原始设定级别,即不改变数据库的隔离级别,这就使得服务器在生产使用过程中的风险得以降低。
进一步地,所述方法还包括:执行预设的初始化部署过程;所述初始化部署过程包括:获取所述生产服务器中数据库的初始版本号、备份数据以及当前时刻的版本号;还原所述备份数据,并比较所述初始版本号与所述当前时刻的版本号;若所述初始版本号与所述当前时刻的版本号不同,根据所述当前时刻的版本号对应的数据更新位置,获取该生产服务器中的各所述数据更新位置处的待同步操作;分别在还原后的所述备份数据的各所述数据更新位置处执行对应的各所述待同步操作。
在上述实现过程中,在初始化部署过程中,通过获取备份数据后还原,并通过当前时刻的版本号实现对于备份数据中数据的修正,整个过程中没有校验过程,所以可以减少对于CPU等资源的占用,从而部署过程可以无需停线。
进一步地,表项的类型包括第三类型;所述第三类型的表项为允许进行数据删除操作和数据插入操作,但数据插入操作不会插入数据删除操作所删除的数据的表项;
在所述第三类型的表项中同时存在第一数据更新位置和第二数据更新位置时,在所述生产数据管理服务器中本地数据库的各所述数据更新位置处执行对应的各所述待同步操作,包括:先对所述第三类型的表项中的各第一数据更新位置进行数据插入操作;再对所述第三类型的表项中的各第二数据更新位置进行数据删除操作;其中:所述第一数据更新位置为待同步操作为数据插入操作的数据更新位置;所述第二数据更新位置为待同步操作为数据删除操作的数据更新位置。
进一步地,所述生产服务器的数据库为所述生产服务器的热备库;所述生产服务器的热备库与所述生产服务器的生产库之间数据同步;所述生产服务器的生产库为实时存储所述生产服务器所产生的生产数据的数据库。
应理解,在实际应用过程中,生产服务器需要承担生产作业任务,并在生产过程中产生生产数据存放至生产库中。在上述实现过程中,通过设置生产服务器的热备库,并通过热备库来与生产服务器的生产库进行数据同步,从而通过生产服务器的热备库来与生产数据管理服务器进行生产数据同步。这样,通过热备库的存在,就可以有效避免与生产数据管理服务器进行生产数据同步时,对于生产库造成影响,从而降低与生产数据管理服务器进行生产数据同步,对生产服务器的作业所可能造成的影响,保证生产服务器可以正常作业。
本申请实施例还提供了一种生产数据同步装置,应用于生产数据管理服务器中,所述生产数据管理服务器与至少一个生产服务器连接;所述生产数据同步装置包括:获取模块、比对模块和同步模块;所述获取模块,用于在任一生产服务器的预设生产数据同步条件被触发时,从该生产服务器的数据库中获取当前版本号;所述当前版本号为所述生产服务器采用更改跟踪技术最新更新得到的版本号;不同版本号对应生产服务器的数据库中不同的数据更新位置;所述比对模块,用于将所述当前版本号与所述生产数据管理服务器本地记录的该生产服务器对应的目标版本号进行比对;所述目标版本号为所述生产数据管理服务器本地记录的上一次获取到的该生产服务器的版本号;所述获取模块,还用于在所述当前版本号与所述目标版本号不同时,根据所述当前版本号对应的数据更新位置,获取该生产服务器中的各所述数据更新位置处的待同步操作;所述同步模块,用于分别在所述生产数据管理服务器中本地数据库的各所述数据更新位置处执行对应的各所述待同步操作。
本申请实施例还提供了一种服务器,包括:处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的一个或者多个程序,以实现上述任一种的生产数据同步方法。
本申请实施例还提供了一种数据同步系统,包括:至少一个生产服务器,每个所述生产服务器中具有至少一个用于存放生产数据的数据库;生产数据管理服务器,与每个所述生产服务器通信连接,用于执行实现上述任一种的生产数据同步方法。
本申请实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一种的生产数据同步方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种生产数据同步方法的流程示意图;
图2为本申请实施例提供的一种实现生产数据同步的数据同步系统的结构示意图;
图3为本申请实施例提供的一种较具体的生产数据同步流程示意图;
图4为本申请实施例提供的一种生产数据同步装置的结构示意图;
图5为本申请实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
实施例一:
为了解决现有技术中生产数据同步效率低的问题,本申请实施例中提供了一种生产数据同步方法。可以参见图1所示,图1为本申请实施例中提供的生产数据同步方法的流程示意图,包括:
S101:在任一生产服务器的预设生产数据同步条件被触发时,从该生产服务器中获取当前版本号。
需要说明的是,本申请实施例中所提供的生产数据同步方法应用于具有数据存储和管理能力的生产数据管理服务器中。生产数据管理服务器可以通过任意具有数据库,且具有对外数据接收与发送能力的服务器实现。
在本申请实施例中,生产服务器是指具有生产数据,且具有生产数据同步需求的,与生产数据管理服务器之间建立有通信连接的服务器。例如,生产服务器可以是生产线上用作数据产生与记录的服务器。而生产数据是指,模组生产过程中所产生的大量数据。
在本申请实施例中,各生产服务器中可以启用更改跟踪技术,从而通过更改跟踪技术,实现对于各生产服务器的数据库中数据更新位置的跟踪,以及实现根据数据跟踪位置,实现对版本号的更新。也即,在启用更改跟踪技术后,当生产服务器中进行的数据插入、数据更新、数据删除等操作时,即会跟踪到发生这些操作的数据更新位置,并根据跟踪到的数据更新位置,对版本号进行更新。应当注意的是,在更改跟踪技术中,根据版本号可以识别出发生数据变更的数据更新位置,因此不同的版本号可以对应生产服务器中不同的数据更新位置,根据版本号可以确定出生产服务器中的数据更新位置。
在本申请实施例中,数据更新位置是指数据库中的生产数据发生变化的位置。
还需要说明的是,在本申请实施例中,预设生产数据同步条件可以由工程师根据实际需要进行设定。比如可以设定为预设时间间隔,例如设定每隔10分钟进行一次同步。又比如,可以设定为接收到预设的同步指示消息,当接收到同步指示消息时,触发进行生产服务器的数据库中的生产数据的同步。
应理解,生产数据管理服务器可以同时连接有一个或多个生产服务器。当生产数据管理服务器同时连接有多个生产服务器时,可以针对这多个生产服务器分别设定不同的预设生产数据同步条件。
比如,针对生产服务器1可以设定每10分钟进行一次同步,针对生产服务器2可以设定每15分钟进行一次同步。
对于各生产服务器的预设生产数据同步条件,可以由工程师根据各生产服务器的实际情况进行设定,在本申请实施例中不做限制。
还需要说明的是,在本申请实施例中,当前版本号是指生产服务器采用更改跟踪技术最新一次更新得到的版本号,也即是在生产服务器的预设生产数据同步条件被触发时,该生产服务器中所存在的版本号。
S102:将当前版本号与本地记录的该生产服务器对应的目标版本号进行比对。
应理解,目标版本号是指生产数据管理服务器本地记录的上一次获取到的该生产服务器的版本号。当当前版本号与本地记录的该生产服务器对应的目标版本号相同时,即表明该生产服务器本次并不存在同步需求。而当当前版本号与本地记录的该生产服务器对应的目标版本号不同时,即表明从上一次同步时间到当前时间,该生产服务器中进行了数据的变更操作(可以是数据插入、数据更新、数据删除等操作),从而需要进行同步。
S103:在当前版本号与目标版本号不同时,根据该当前版本号对应的数据更新位置,获取该生产服务器中的各数据更新位置处的待同步操作。
S104:分别在生产服务器的数据库的本地数据库的各数据更新位置处执行对应的各待同步操作。
应理解,对于生产服务器的数据库中的各生产数据而言,通常是以数据表项的形式进行的存储的。
而对数据库进行的更改操作,通常只有数据插入、数据更新、数据删除这三种。为此,在本申请实施例中,可以针对各数据更新位置,依次检测是否存在数据插入操作、是否存在数据更新操作、是否存在数据删除,从而确定出各数据更新位置处的待同步操作。
但应理解的是,在实际应用过程中,不同类型的数据表项可能具有不同的特性,比如有些类型的表项只会插入不会删除不会进行数据更新,有些类型的表项中的列不会进行数据更新或很少进行数据更新,有些表项则属于常规表项,既可以插入,也可以删除,也可以更新。为此,在本申请实施例中,可以预先对表项进行分类,进而针对不同类型的数据表项,执行不同的检测项目。即:可以针对各数据更新位置,分别按照以下方式获取待同步操作:获取生产服务器中数据更新位置的所在表项的类型;根据表项的类型对应的需检测操作项目,检测数据更新位置处的待同步操作。
示例性的,在数据更新位置所在表项的类型为第一类型(本申请实施例中,第一类型的表项为只存在插入操作,不存在删除和更新操作的表项)时,即可以仅检测数据更新位置处是否存在数据插入操作。若存在,确定待同步操作为该数据插入操作,进而生产数据管理服务器只需获取该生产服务器中该数据更新位置处的插入数据,在本地数据库的该数据更新位置处插入该插入数据即可。而若检测发现数据更新位置处是不存在数据插入操作,此时即可以确定该数据更新位置处不存在待同步操作,后续可以不对该数据更新位置进行同步。
示例性的,在数据更新位置所在表项的类型为第二类型(本申请实施例中,第二类型的表项为列不会更新或更新频率低于预设频率阈值的表项)时,由于列不会更新或更新频率低于预设频率阈值的表项只可能存在数据更新操作,不会存在数据插入与数据删除操作,因此可以检测该数据更新位置处是否存在数据更新操作。若存在,即确定待同步操作为该数据更新操作,从而生产数据管理服务器可以获取该生产服务器中该数据更新位置处的最新数据,并将本地数据库的该数据更新位置处的数据更新为该最新数据。若不存在,即可以确定该数据更新位置处不存在待同步操作,后续可以不对该数据更新位置进行同步。
需要说明的是,数据表项中的每一行即对应一个对象。通常,更改跟踪技术可以追踪到具体是哪一个对象发生了数据改变,即可以追踪到是哪一张表项的哪一行发生了数据改变。但是,也可以通过启用更改跟踪技术中的列跟踪功能,从而将数据更新位置的精度由对象(即具体哪一行)精确到具体对象的某一个或多个具体的属性数据格(数据表项中的每一行中的每一列即对应该行的一个数据格,每一个数据格对应该对象的一种属性值,比如对于一个学生的信息数据表而言,每一行即对应一个学生,每一列即对应一种属性,比如第一列对应年龄,第二列对应班级,第三列对应性别等)。
对于大多数表项而言,并不需要开启列跟踪功能,但是对于本申请实施例中所述的第二类型的表项,则可以开启列跟踪功能,从而将数据更新位置精确到对象的属性格,从而可以有效减少所需同步的数据量,提高同步效率。
需要注意的是,在本申请实施例中,工程师可以预先根据表项的表名,构建好各表项与对应的需检测操作项目的对应关系,即可以根据表名直接确定出对应的需检测操作项目(此时实际确定出了各表名对应的表项类型),从而根据表项所属类型对应的需检测操作项目,检测数据更新位置处的待同步操作。
需要注意的是,在本申请实施例中,生产服务器中的数据库隔离级别为数据库的原始设定级别。也即,在本申请实施例中,生产服务器中的数据库隔离级可以不做改变。
应理解,传统的生产数据同步方案中,为了保证数据同步前后数据的严格一致性,会改变数据库隔离级别,从而在进行同步时,通过诸如快照的方式,实现同一时刻的所有数据的获取。而对于本申请实施例中所描述的生产数据而言,各个数据表项直接具有较高的独立性,因此在不改变数据库隔离级别的情况下,各个数据表即使不在同一时刻被同步,同步后的数据仍具有可用性,而不改变数据库隔离级别可以使得生产服务器在生产使用过程中的风险得以降低。
需要注意的是,在本申请实施例中,生产数据管理服务器中最初需要执行初始化部署过程。
在本申请实施例中,生产数据管理服务器可以获取生产服务器中的初始版本号、备份数据以及当前时刻的版本号,进而还原备份数据,并比较初始版本号与当前时刻的版本号。若初始版本号与当前时刻的版本号不同,即可根据当前时刻的版本号对应的数据更新位置,获取该生产服务器中的各数据更新位置处的待同步操作,分别在还原后的备份数据的各数据更新位置处执行对应的各待同步操作,从而实现对于备份数据的修正,进而便于后续进行数据库数据的同步。
值得注意的是,在本申请实施例中,可以是由工程师通过各种存储介质(如U盘、移动硬盘等)从生产服务器中,拷贝出生产服务器中的初始版本号、备份数据,然后输入至生产数据管理服务器中。此外,也可以是通过建立的无线连接,从而生产服务器中获取到生产服务器中的初始版本号和备份数据。
还值得注意的是,所谓初始版本号是指,进行备份数据的拷贝或者传输时,生产服务器中的版本号。而当前时刻的版本号则是指,生产数据管理服务器接收到备份数据时,生产服务器中的版本号。
应理解,采用本申请实施例的上述初始化部署过程,整个过程中没有校验过程,所以可以减少对于CPU等资源的占用,从而生产服务器和生产数据管理服务器都无需停线。
需要注意的是,在本申请实施例的方案执行过程中,若生产服务器中需要新增一个进行同步的表项,那么此时只需在该生产服务器中针对该表项也开启更改跟踪,并对应在生产数据管理服务器的实现程序中增加对该表项的支持即可,从而可以很容易地实现对于新增表项的纳管。
此外,考虑到在一个同步周期内遇到大批量的数据删除、数据插入、数据更新操作时,受限于生产数据管理服务器的性能,可能会出现本地数据库(即生产数据管理服务器的数据库)卡死和同步失败的情况。
为此,在本申请实施例中,生产数据管理服务器可以对本同步周期内的所有操作进行分批,进而逐批进行同步。
示例性的,以数据删除操作为例:
此外,考虑到在一个同步期间内,如果出现一个表项中针对同一条数据既进行了删除又进行了插入的情况,容易出现因插入重复数据而导致同步失败或者出现多删除了数据导致数据丢失的情况。
为此,在本申请实施例中,可以根据不同的数据删除操作的发生情况,从而采取不同的处理方式,以避免出现上述问题:
情况一:大部分数据表项的业务需求都是业务运行时,不存在删除数据情况,只有后台管理员管理数据时才可能进行数据删除操作。
这种情况时,可以发出提示信息,例如在管理员界面提示注意信息,以使得管理员可以注意同步周期,避免在一个同步周期内对同一数据进行数据插入操作和数据删除操作。
情况二:在实际应用中,存在允许进行数据删除操作和数据插入操作,但数据插入操作不会插入数据删除操作所删除的数据的表项(记为第三类型的表项)。
针对第三类型的表项,可以设置插入优先,即先对第三类型的表项中确定出的各数据更新位置进行区分,先针对具有数据插入操作的各第一数据更新位置进行数据插入操作,再针对具有数据删除操作的各第二数据更新位置进行数据删除操作,从而有效避免出现数据丢失的问题。
情况三:在实际应用中,存在极少数表项在业务上是开放的,可以随时插入和删除同样的数据。对于这类表项(记为第四类型的表项),在本申请实施例中可以不采用前述基于更改跟踪技术实现的数据同步方案来进行同步,而是可以在生产服务器中增加一个记录表,通过触发器来触发此记录表记录的第四类型的表项中的数据插入、删除、更新情况。数据同步时,生产数据管理服务器根据该记录表即可实现对于第四类型的表项的数据同步。
需要注意的是,上段中的记录表可以设定记录时长,以降低数据库增长速度。示例性的,可以设定记录表中的数据可以保留2天,超过2天的数据可以通过Job等程序进行自动删除。
本申请实施例还提供了一种数据同步系统,参见图2所示,其包括生产数据管理服务器和至少一个生产服务器。生产服务器中具有至少一个用于存放生产数据的数据库。生产数据管理服务器和各生产服务器之间通信连接,用于执行实现上文所述的生产数据同步方法。
需要注意的是,在本申请实施例的一种可选实施方式中,生产服务器中可以包括生产库和热备库。其中,生产库为实时存储生产服务器在生产作业过程中所产生的生产数据的数据库。
生产服务器的热备库与生产服务器的生产库之间数据同步(示例性的,热备库与生产库之间可以通过现有方式实现本地同步(比如可以通过发布订阅方式实现数据同步),且可以设定在特定时间(比如生产服务器空闲时)进行同步,以避免对生产服务器的生成作业造成影响)。而生产服务器与生产数据管理服务器之间,则可以通过生产服务器的热备库,按照本申请实施例所提供的方案实现与生产数据管理服务器之间的生产数据同步。
而在本申请实施例的另一种可选实施方式中,生产服务器与生产数据管理服务器之间,也可以通过生产服务器的生产库,按照本申请实施例所提供的方案实现与生产数据管理服务器之间的生产数据同步。此时,生产服务器中可以具有热备库,也可以不具有热备库。
本申请实施例所提供的生产数据同步方法和数据同步系统,通过利用更改跟踪技术,实现对于生产服务器中当前版本号的获取。而更改跟踪技术,是一种自动跟踪更改发生位置,并生成相应版本号的技术。因此,在当前版本号与上一次获取到的该生产服务器的版本号不一致时,即可确定该生产服务器中的数据发生了更改。进而根据当前版本号对应的数据更新位置获取该生产服务器中的各所述数据更新位置处的待同步操作,进而实现同步。这就使得整个同步过程无需关注中间变化的值,直接实现对于修改位置处的最新数据的同步,使得同步数据量得以变少,同步效率得以提高。
此外,本申请实施例提供的方案,可以不改变数据库隔离级别,使得服务器在生产使用过程中的风险得以降低。
此外,本申请实施例提供的方案,可以针对不同类型的表项的特点,执行相应的同步策略,从而进一步提高同步效率。
此外,本申请实施例提供的方案,还可以实现不停线部署。
实施例二:
本实施例在实施例一的基础上,以一种具体的工厂服务器中生产数据同步的实现过程为例,为本申请做进一步示例说明。
参见图3所示,整个同步过程包括:
1.准备工作:在总部服务器(即本申请实施例的生产数据管理服务器)的本地数据库中新建一张跟踪表(跟踪表用于记录各生产服务器上一次同步时的版本号),而每个工厂服务器(即本申请实施例的生产服务器)的工厂数据库(即生产服务器)都开启更改跟踪。实现代码如下:
在总部服务器的本地数据库创建一个记录同步信息的跟踪表:
CREATE TABLE dbo.tb_Change_Tracking(
id int IDENTITY PRIMARY KEY,//自增ID
object_name sysname UNIQUE,//object id
last_sync_version bigint,//上一次同步版本号
last_update_date datetime//上一次同步时间
)
在工厂数据库启用更改跟踪:
ALTER DATABASE DBName SET
CHANGE_TRACKING=ON(
AUTO_CLEANUP=ON,//打开自动清理选项
CHANGE_RETENTION=2DAYS//数据保存期为2天
);
开启表的更改跟踪:
ALTER TABLE[dbo].[tableName]
ENABLE CHANGE_TRACKING
WITH(TRACK_COLUMNS_UPDATED=ON)//根据不同表的特点进行设置,需要开启列跟踪的,为ON,可以减少同步数据量;无需列跟踪的,为OFF,可以减少存储开销。
2.获取工厂数据库中源表的信息,得到当前版本号。如下对一张表进行举例,代码如下:
SqlHelper.ExecuteDataset(serverConn,CommandType.Text,string.Format("select OBJECT_ID(N'{0}');",sourceTableName),null);//在工厂数据库中,根据表名获取其对象ID。
3.从总部服务器的本地数据库中获取该工厂数据库最近一次同步的版本号:
SqlHelper.ExecuteDataset(clientConn,CommandType.Text,string.Format("select last_sync_version from dbo.tb_Change_Tracking where object_name={0}",tableObjectID),null);//从总部数据库中获取表最近一次同步的版本号。
4.版本号验证,判断是否存在需要同步的数据。如果版本号一致,即没有需要同步的数据,则等待下一次定时同步。
5.在存在需要同步的数据时,根据不同表项的特点执行不同的同步策略。比如,对于列不会更新或更新频率低于预设频率阈值的表项,通过启用列跟踪功能来减少同步的数据量;又比如,对于只存在插入操作,不存在删除和更新操作的表项,无需进行删除和更新的同步,提高效率。如下是相关的示例代码:
//新插入的数据
insertDatas=SqlHelper.ExecuteDataset(serverConn,CommandType.Text,string.Format("SELECT st.*FROM{0}st with(nolock)INNER JOIN CHANGETABLE(CHANGES{0},{1})cg ONcg.Carton_Numb=st.Carton_Numb WHEREcg.SYS_CHANGE_OPERATION=N'I'and cg.SYS_CHANGE_VERSION<={2}",sourceTableName,lastSyncVersion,currentVersion),null);
//删除的数据
deleteDatas=SqlHelper.ExecuteDataset(serverConn,CommandType.Text,string.Format("SELECT cg.Carton_Numb FROMCHANGETABLE(CHANGES{0},{1})cgWHEREcg.SYS_CHANGE_OPERATION=N'D'and cg.SYS_CHANGE_VERSION<={2}",sourceTableName,lastSyncVersion,currentVersion),null);
//更新的数据,从存储过程中获取有更新的列(对于有的列很少更新时可以采用,存储过程的核心代码:CHANGE_TRACKING_IS_COLUMN_IN_MASK(columnproperty(object_id('dbo.tabel_2017'),'DBName','ColumnId'),x.sys_change_columns)=1)
updateDatas=SqlHelper.ExecuteDataset(serverConn,CommandType.Text,string.Format("exec usp_sync_update_tableName{0}",lastSyncVersion),null);
//根据如上数据进行组装更新总部数据库的SQL语句,并加上更新版本记录表的语句,组合在一个事务中进行执行。
需要注意的是,在初次部署时,可以先通过存储介质记录工厂数据库此时的同步版本号,然后将工厂数据库进行完整备份,然后在总部服务器的本地数据库中进行还原,按照记录的版本号开始同步,然后利用工厂数据库最新的版本号修改重复的数据,之后即可按照正常流程定时进行数据同步。
实施例三:
基于同一发明构思,本申请实施例中还提供了一种生产数据同步装置400。请参阅图4所示,图4示出了采用图1所示的方法的生产数据同步装置。应理解,装置400具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置400包括至少一个能以软件或固件的形式存储于存储器中或固化在装置400的操作系统中的软件功能模块。具体地:
参见图4所示,装置400包括:获取模块401、比对模块402和同步模块403。其中:
所述获取模块401,用于在任一生产服务器的预设生产数据同步条件被触发时,从该生产服务器的数据库中获取当前版本号;所述当前版本号为所述生产服务器采用更改跟踪技术最新更新得到的版本号;不同版本号对应生产服务器的数据库中不同的数据更新位置;
所述比对模块402,用于将所述当前版本号与所述生产数据管理服务器本地记录的该生产服务器对应的目标版本号进行比对;所述目标版本号为所述生产数据管理服务器本地记录的上一次获取到的该生产服务器的版本号;
所述获取模块401,还用于在所述当前版本号与所述目标版本号不同时,根据所述当前版本号对应的数据更新位置,获取该生产服务器中的各所述数据更新位置处的待同步操作;
所述同步模块403,用于分别在所述生产数据管理服务器中本地数据库的各所述数据更新位置处执行对应的各所述待同步操作。
在本申请实施例的一种可行实施方式中,所述获取模块401具体用于针对各所述数据更新位置,分别按照以下方式获取所述待同步操作:
获取该生产服务器中所述数据更新位置的所在表项的类型;
根据所述类型对应的需检测操作项目,检测所述数据更新位置处的待同步操作。
在上述可行实施方式中,在所述所在表项的类型为第一类型时,所述获取模块401具体用于:检测所述数据更新位置处是否存在数据插入操作;若存在,确定所述待同步操作为所述数据插入操作;若不存在,确定所述数据更新位置处不存在待同步操作;
所述同步模块403具体用于:获取该生产服务器中所述数据更新位置处的插入数据;在本地数据库的所述数据更新位置处插入所述插入数据。
其中,所述第一类型的表项为只存在插入操作,不存在删除和更新操作的表项。
在上述可行实施方式中,表项的类型包括第二类型;所述第二类型的表项为列不会更新或更新频率低于预设频率阈值的表项;所述第二类型的表项中的数据更新位置为根据启用列跟踪功能的所述更改跟踪技术确定出的数据更新位置;
所述获取模块401具体用于:在所述所在表项的类型为第二类型时,检测所述数据更新位置处是否存在数据更新操作;若存在,确定所述待同步操作为所述数据更新操作;若不存在,确定所述数据更新位置处不存在待同步操作;
所述同步模块403具体用于:获取该生产服务器中所述数据更新位置处的最新数据;将本地数据库的所述数据更新位置处的数据更新为所述最新数据。
在本申请实施例的一种可行实施方式中,所述生产服务器中数据库的数据库隔离级别为该数据库的原始设定级别。
在本申请实施例的一种可行实施方式中,所述装置400还包括执行模块;所述执行模块用于执行预设的初始化部署过程;所述初始化部署过程包括:
获取所述生产服务器中数据库的初始版本号、备份数据以及当前时刻的版本号;
还原所述备份数据,并比较所述初始版本号与所述当前时刻的版本号;
若所述初始版本号与所述当前时刻的版本号不同,根据所述当前时刻的版本号对应的数据更新位置,获取该生产服务器中的各所述数据更新位置处的待同步操作;
分别在还原后的所述备份数据的各所述数据更新位置处执行对应的各所述待同步操作。
在本申请实施例中,表项的类型包括第三类型;所述第三类型的表项为允许进行数据删除操作和数据插入操作,但数据插入操作不会插入数据删除操作所删除的数据的表项。
所述同步模块403具体用于,在所述第三类型的表项中同时存在第一数据更新位置和第二数据更新位置时,先对所述第三类型的表项中的各第一数据更新位置进行数据插入操作,再对所述第三类型的表项中的各第二数据更新位置进行数据删除操作;其中:所述第一数据更新位置为待同步操作为数据插入操作的数据更新位置;所述第二数据更新位置为待同步操作为数据删除操作的数据更新位置。
所述生产服务器的数据库为所述生产服务器的热备库;所述生产服务器的热备库与所述生产服务器的生产库之间数据同步;所述生产服务器的生产库为实时存储所述生产服务器所产生的生产数据的数据库。
需要理解的是,出于描述简洁的考量,部分实施例一或二中描述过的内容在本实施例中不再赘述。
实施例四:
本实施例提供了一种服务器,参见图5所示,其包括处理器501、存储器502以及通信总线503。其中:
通信总线503用于实现处理器501和存储器502之间的连接通信。
处理器501用于执行存储器502中存储的一个或多个程序,以实现上述实施例一和/或实施例二中的生产数据同步方法。
可以理解,图5所示的结构仅为示意,服务器还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。
本实施例还提供了一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、U盘、SD(Secure Digital Memory Card,安全数码卡)卡、MMC(Multimedia Card,多媒体卡)卡等,在该可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一和/或实施例二中的生产数据同步方法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
在本文中,多个是指两个或两个以上。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种生产数据同步方法,其特征在于,应用于生产数据管理服务器中,所述生产数据管理服务器与至少一个生产服务器连接;所述方法包括:
在任一生产服务器的预设生产数据同步条件被触发时,从该生产服务器的数据库中获取当前版本号;所述当前版本号为所述生产服务器采用更改跟踪技术最新更新得到的版本号;不同版本号对应生产服务器的数据库中不同的数据更新位置;
将所述当前版本号与所述生产数据管理服务器本地记录的该生产服务器对应的目标版本号进行比对;所述目标版本号为所述生产数据管理服务器本地记录的上一次获取到的该生产服务器的版本号;
在所述当前版本号与所述目标版本号不同时,根据所述当前版本号对应的数据更新位置,获取该生产服务器中的各所述数据更新位置处的待同步操作;
分别在所述生产数据管理服务器中本地数据库的各所述数据更新位置处执行对应的各所述待同步操作。
2.如权利要求1所述的生产数据同步方法,其特征在于,根据所述当前版本号对应的数据更新位置,获取该生产服务器中的各所述数据更新位置处的待同步操作,包括:
针对各所述数据更新位置,分别按照以下方式获取所述待同步操作:
获取该生产服务器中所述数据更新位置所在表项的类型;
根据所述类型对应的需检测操作项目,检测所述数据更新位置处的待同步操作。
3.如权利要求2所述的生产数据同步方法,其特征在于,在所述所在表项的类型为第一类型时,根据所述类型对应的需检测操作项目,检测所述数据更新位置处的待同步操作,包括:
检测所述数据更新位置处是否存在数据插入操作;若存在,确定所述待同步操作为所述数据插入操作;若不存在,确定所述数据更新位置处不存在待同步操作;
对应的,在本地数据库的所述数据更新位置处执行对应的所述待同步操作包括:
获取该生产服务器中所述数据更新位置处的插入数据;
在本地数据库的所述数据更新位置处插入所述插入数据;
其中,所述第一类型的表项为只存在插入操作,不存在删除和更新操作的表项。
4.如权利要求2所述的生产数据同步方法,其特征在于,表项的类型包括第二类型;所述第二类型的表项为列不会更新或更新频率低于预设频率阈值的表项;所述第二类型的表项中的数据更新位置为根据启用列跟踪功能的所述更改跟踪技术确定出的数据更新位置;
在所述所在表项的类型为第二类型时,根据所述类型对应的需检测操作项目,检测所述数据更新位置处的待同步操作,包括:
检测所述数据更新位置处是否存在数据更新操作;若存在,确定所述待同步操作为所述数据更新操作;若不存在,确定所述数据更新位置处不存在待同步操作;
对应的,在本地数据库的所述数据更新位置处执行对应的所述待同步操作包括:
获取该生产服务器中所述数据更新位置处的最新数据;
将本地数据库的所述数据更新位置处的数据更新为所述最新数据。
5.如权利要求2-4任一项所述的生产数据同步方法,其特征在于,所述生产服务器中数据库的数据库隔离级别为该数据库的原始设定级别。
6.如权利要求2-4任一项所述的生产数据同步方法,其特征在于,所述方法还包括:执行预设的初始化部署过程;所述初始化部署过程包括:
获取所述生产服务器中数据库的初始版本号、备份数据以及当前时刻的版本号;
还原所述备份数据,并比较所述初始版本号与所述当前时刻的版本号;
若所述初始版本号与所述当前时刻的版本号不同,根据所述当前时刻的版本号对应的数据更新位置,获取该生产服务器中的各所述数据更新位置处的待同步操作;
分别在还原后的所述备份数据的各所述数据更新位置处执行对应的各所述待同步操作。
7.如权利要求2-4任一项所述的生产数据同步方法,其特征在于,表项的类型包括第三类型;所述第三类型的表项为允许进行数据删除操作和数据插入操作,但数据插入操作不会插入数据删除操作所删除的数据的表项;
在所述第三类型的表项中同时存在第一数据更新位置和第二数据更新位置时,在所述生产数据管理服务器中本地数据库的各所述数据更新位置处执行对应的各所述待同步操作,包括:
先对所述第三类型的表项中的各第一数据更新位置进行数据插入操作;
再对所述第三类型的表项中的各第二数据更新位置进行数据删除操作;
其中:所述第一数据更新位置为待同步操作为数据插入操作的数据更新位置;所述第二数据更新位置为待同步操作为数据删除操作的数据更新位置。
8.如权利要求2-4任一项所述的生产数据同步方法,其特征在于,所述生产服务器的数据库为所述生产服务器的热备库;所述生产服务器的热备库与所述生产服务器的生产库之间数据同步;所述生产服务器的生产库为实时存储所述生产服务器所产生的生产数据的数据库。
9.一种生产数据同步装置,其特征在于,应用于生产数据管理服务器中,所述生产数据管理服务器与至少一个生产服务器连接;所述生产数据同步装置包括:获取模块、比对模块和同步模块;
所述获取模块,用于在任一生产服务器的预设生产数据同步条件被触发时,从该生产服务器的数据库中获取当前版本号;所述当前版本号为所述生产服务器采用更改跟踪技术最新更新得到的版本号;不同版本号对应生产服务器的数据库中不同的数据更新位置;
所述比对模块,用于将所述当前版本号与所述生产数据管理服务器本地记录的该生产服务器对应的目标版本号进行比对;所述目标版本号为所述生产数据管理服务器本地记录的上一次获取到的该生产服务器的版本号;
所述获取模块,还用于在所述当前版本号与所述目标版本号不同时,根据所述当前版本号对应的数据更新位置,获取该生产服务器中的各所述数据更新位置处的待同步操作;
所述同步模块,用于分别在所述生产数据管理服务器中本地数据库的各所述数据更新位置处执行对应的各所述待同步操作。
10.一种服务器,其特征在于,包括:处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的一个或者多个程序,以实现如权利要求1-7任一项所述的生产数据同步方法。
11.一种数据同步系统,其特征在于,包括:
至少一个生产服务器,每个所述生产服务器中具有至少一个用于存放生产数据的数据库;
生产数据管理服务器,与每个所述生产服务器通信连接,用于执行实现如权利要求1-7任一项所述的生产数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111624854.3A CN114490570A (zh) | 2021-12-28 | 2021-12-28 | 生产数据同步方法、装置、数据同步系统及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111624854.3A CN114490570A (zh) | 2021-12-28 | 2021-12-28 | 生产数据同步方法、装置、数据同步系统及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114490570A true CN114490570A (zh) | 2022-05-13 |
Family
ID=81495318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111624854.3A Pending CN114490570A (zh) | 2021-12-28 | 2021-12-28 | 生产数据同步方法、装置、数据同步系统及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114490570A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115344585A (zh) * | 2022-08-03 | 2022-11-15 | 盐城金堤科技有限公司 | 数据版本管理方法、装置以及存储介质和电子设备 |
-
2021
- 2021-12-28 CN CN202111624854.3A patent/CN114490570A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115344585A (zh) * | 2022-08-03 | 2022-11-15 | 盐城金堤科技有限公司 | 数据版本管理方法、装置以及存储介质和电子设备 |
CN115344585B (zh) * | 2022-08-03 | 2024-03-19 | 盐城天眼察微科技有限公司 | 数据版本管理方法、装置以及存储介质和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106407356B (zh) | 一种数据备份方法及装置 | |
US8825601B2 (en) | Logical data backup and rollback using incremental capture in a distributed database | |
US20150213100A1 (en) | Data synchronization method and system | |
US10565071B2 (en) | Smart data replication recoverer | |
CN105574187B (zh) | 一种异构数据库复制事务一致性保障方法及系统 | |
US9727601B2 (en) | Predicting validity of data replication prior to actual replication in a transaction processing system | |
CN104346454A (zh) | 基于Oracle数据库的数据一致性校验方法 | |
US10048978B2 (en) | Apparatus and method for identifying a virtual machine having changeable settings | |
CN109918229B (zh) | 非日志模式的数据库集群副本构建方法及装置 | |
CN103970834A (zh) | 一种异构数据库同步系统中增量数据同步故障的恢复方法 | |
CN109189860A (zh) | 一种基于Kubernetes系统的MySQL主备增量同步方法 | |
US11748215B2 (en) | Log management method, server, and database system | |
US10877681B2 (en) | Systems and methods for redundant array data alignment | |
CN111639132B (zh) | 日志同步方法及设备 | |
CN101196839A (zh) | 双快闪只读存储器的数据修复与同步方法 | |
CN113868028A (zh) | 一种在数据节点上回放日志的方法、数据节点及系统 | |
CN114490570A (zh) | 生产数据同步方法、装置、数据同步系统及服务器 | |
US11163799B2 (en) | Automatic rollback to target for synchronous replication | |
CN112800060A (zh) | 数据处理方法、装置、计算机可读存储介质及电子设备 | |
WO2018010603A1 (zh) | 基于视频云存储系统的存储模式升级方法、装置和系统 | |
CN102346757A (zh) | Ims数据库联机交易中数据影印方法及系统 | |
CN112749156A (zh) | 数据处理方法、数据库管理系统和数据处理设备 | |
CN111522688A (zh) | 分布式系统的数据备份方法及装置 | |
US11132267B1 (en) | Ability to maintain RPO in clustered environment with failed nodes/disks | |
CN117785546A (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 |