CN102279857B - 一种实现数据复制的方法及*** - Google Patents
一种实现数据复制的方法及*** Download PDFInfo
- Publication number
- CN102279857B CN102279857B CN201010205082.5A CN201010205082A CN102279857B CN 102279857 B CN102279857 B CN 102279857B CN 201010205082 A CN201010205082 A CN 201010205082A CN 102279857 B CN102279857 B CN 102279857B
- Authority
- CN
- China
- Prior art keywords
- information
- record
- data
- storage device
- data storage
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种实现数据复制的***及方法,解决了现有技术中由于主主复制技术带来***不稳定的问题。该***包括:第一数据存储设备,用于接收数据***更新终端发送的第一更新操作指令,其中含有需要更新的记录的信息,并根据所述第一更新操作指令更新记录;日志子***,用于接收数据***更新终端发送的第二更新操作指令,其中包括需要更新的记录的信息,对选定的日志代理服务器进行更新;根据需要更新的记录的信息与第二数据存储设备标识的对应关系,获得对应的第二数据存储设备标识,向所述第二数据存储设备发送数据更新指令,其中含有所述需要更新的记录的信息;第二数据存储设备,用于根据所述数据更新指令,进行数据更新。
Description
技术领域
本申请涉及数据库管理技术领域,特别是指一种实现数据复制的方法及***。
背景技术
为保持数据的高可用性,一般的数据库都有一定的数据冗余机制,比如:参见图1所示,采用mysql的数据库主主复制技术中,至少包括三台服务器,即服务器A、服务器B和服务器C,也可以称为三个数据存储设备。其中,服务器A与服务器B之间为主主复制关系,服务器A和服务器B两个服务器,与服务器C之间是主从复制关系。主主复制关系是指服务器A与服务器B之间是互为备份的关系,图中示意出的数据***更新终端可以包括多个,每个数据***更新终端可以对服务器A和服务器B发送更新操作指令,即:服务器A收到数据***更新终端的更新操作指令后,如***、修改、删除等,将该更新操作指令保存在自身的执行日志中,然后再将该日志发送给服务器B,服务器B再执行日志,也即完成更新操作。同时,如果服务器B收到更新操作指令后,同样按照上述方式执行完更新操作后,同样会将执行的日志发送给服务器A。服务器C是服务器A和服务器B的从服务器,需要定期备份服务器A和服务器B的数据。
由于服务器A和服务器B都可以接收更新操作指令,如果两者接收到的更新操作指令有冲突,比如服务器A接收到删除某记录的操作的指令,而服务器B接收到修改该记录的操作指令,当服务器A执行过程中,执行的日志尚未发送给服务器B时,服务器B收到修改该记录的操作指令,已经执行了修改指令,在向服务器A发送执行的日志时,服务器A已经删除了该记录,无法执行修改操作,后续的操作也就都无法顺利进行。因此,***容易产生不稳定因素,日志重做出错,会停止后续的所有的复制操作。
发明内容
本申请提供一种实现数据复制的***及方法,用以解决现有技术中由于主主复制技术带来***不稳定的问题。
本申请实施例提供的一种实现数据复制的***包括:
第一数据存储设备,用于接收数据***更新终端发送的第一更新操作指令,其中含有需要更新的记录的信息,并根据所述第一更新操作指令更新记录;
日志子***,用于接收所述数据***更新终端发送的第二更新操作指令,其中包括需要更新的记录的信息;根据需要更新的记录的信息,在选定的日志代理服务器上进行更新;根据需要更新的记录的信息与第二数据存储设备标识的对应关系,获得所述需要更新的记录的信息对应的第二数据存储设备标识,向所述第二数据存储设备发送数据更新指令,其中含有所述需要更新的记录的信息;
第二数据存储设备,用于根据所述数据更新指令,进行数据更新。
本申请实施例提供的一种实现数据复制的方法,包括:
数据***更新终端向第一数据存储设备发送第一更新操作指令,其中含有需要更新的记录的信息,并向日志子***发送第二更新操作指令,其中包括需要需要更新的记录的信息;
第一数据存储设备根据所述第一更新操作指令更新记录,且,
日志子***根据需要更新的记录的信息,在选定的日志代理服务器上进行更新;根据需要更新的记录的信息与第二数据存储设备标识的对应关系,获得所述需要更新的记录的信息对应的第二数据存储设备标识,向所述第二数据存储设备发送数据更新指令,其中含有所述需要更新的记录的信息;
第二数据存储设备根据所述数据更新指令,进行数据更新。
本申请实施例中增加了一个日志子***,当数据***更新终端在向第一数据存储设备发送第一更新操作指令时,也向日志子***发送第二更新操作指令,日志子***根据第二更新操作指令在选定的日志代理服务器上进行更新操作,同时所述选定的日志代理服务器确认对应的第二数据存储设备,再向第二数据存储设备发送相应的数据更新指令,解决了现有技术中由于第一数据存储设备和第二数据存储设备之间采用互主主复制技术带来***不稳定的问题,由于通过日志子***将第一数据存储设备的更新的数据备份到第二数据存储设备,在执行过程中,第一数据存储设备和第二数据存储设备无相互依赖,因此在提高***稳定性的同时,还可以提高设备的性能。
附图说明
图1为现有技术中采用主主复制技术的数据复制的***结构示意图;
图2为本申请实施例的数据复制的***结构示意图;
图3为本申请实施例的数据复制的方法的流程示意图;
图4为本申请实施例的需要更新的记录的信息示意图。
具体实施方式
在本申请提供的实施例中,为了解决采用两个互为备份的主主复制技术的数据存储设备之间由于操作冲突可能引起的***不稳定问题,增加了一个日志子***,当数据***更新终端在向第一数据存储设备发送第一更新操作指令后,也向日志子***发送第二更新操作指令,日志子***根据第二更新操作指令,并结合所有日志代理服务器的负载情况,选择一台日志代理服务器进行更新操作,同时根据第二更新操作指令中包含的需要更新的记录的信息,如信息ID,得到事先配置好的对应的第二数据存储设备的标识,再向第二数据存储设备发送相应的数据更新指令,从而完成将第一数据存储设备的数据备份到第二数据存储设备中。
参见图2所示,本申请实施例的***包括:数据***更新终端21、第一数据存储设备22和第二数据存储设备23,以及日志子***24。日志子***24包括控制单元241以及多个日志代理服务器,如第一日志代理服务器242、第二日志代理服务器243以及第三日志代理服务器244。在实际应用过程中,
第一数据存储设备22,是一台存贮服务器对外的标准接口服务器,代表最终的存贮服务器接受数据的***、更新和删除等操作,一般是与最终的存贮机制(如mysql)安装在一台服务器上,它第一时间接收数据***更新终端发送的第一更新操作指令,其中含有需要更新的记录的信息,并根据所述第一更新操作指令更新记录;
日志子***24,用于接收所述数据***更新终端21发送的第二更新操作指令,其中包括需要更新的记录的信息;根据日志子***中所有日志代理服务器的负载情况,选定一台合适的日志代理服务器,将包含需要更新的记录的信息的第二更新操作指令同步提交到这台选定的日志代理服务器,选定的日志代理服务器以更新操作日志的格式将接收到的需要更新的记录的信息保存在日志代理服务器的复制日志中,供后期进行异步复制操作使用;日志代理服务器的复制进程取出更新操作日志,根据需要更新的记录的信息,如信息ID,得到事先配置好的对应的第二数据存储设备的标识,向所述第二数据存储设备发送数据更新指令,其中含有所述需要更新的记录的信息;
第二数据存储设备23,是一台存贮服务器对外的标准接口服务器,代表最终的存贮服务器接受数据的***、更新和删除等操作,一般是与最终的存贮机制(如mysql)安装在一台服务器上,用于根据所述数据更新指令,进行数据更新,相对于第一数据存储设备,因为第二数据存储设备上接受的数据更新操作是通过中间的复制日志异步操作完成的,所以不会这么及时,但最终会与同一组的第一数据存储设备上的数据保持一致。
所述日志子***24包括:控制单元241和至少一个日志代理服务器,如第一日志代理服务器242、第二日志代理服务器243、第三日志代理服务器244,其中,
所述控制单元241,用于接收所述数据***更新终端发送的第二更新操作指令,其中包括需要更新的记录的信息;根据日志子***中所有日志代理服务器的负载情况,选定一台合适的日志代理服务器,向选定的日志代理服务器发送第二更新操作指令,其中含有所述需要更新的记录的信息;
每个日志代理服务器,用于接收到所述第二更新操作指令后,利用所述需要更新的记录的信息进行更新操作;并且,根据第二更新操作指令中包含的需要更新的记录的信息,如信息ID,得到事先配置好的对应的第二数据存储设备的标识,再向第二数据存储设备发送相应的数据更新指令,从而完成将第一数据存储设备的数据备份到第二数据存储设备中。
数据***更新终端21向第一数据存储设备22发送第一更新操作指令,其中包括需要更新的记录等信息,第一数据存储设备22收到该更新操作指令后,更新相应的记录。并且,数据***更新终端21向日志子***24发送第二更新操作指令,其中包括需要更新的记录等。
日志子***24根据该更新操作指令,在选定的日志代理服务器上更新记录。
具体为:控制单元241收到数据***更新终端21发送的第二更新操作指令后,其中包括需要更新的记录的信息;根据所有日志代理服务器的负载情况,选定一台日志代理服务器发送所述第二更新操作指令,其中含有所述需要更新的记录的信息;
每个日志代理服务器,用于接收到所述更新操作指令后,利用所述需要更新的记录的信息进行更新操作;根据第二更新操作指令中包含的需要更新的记录的信息,如信息ID,得到事先配置好的对应的第二数据存储设备的标识,向所述第二数据存储设备23发送数据更新指令,其中含有所述需要更新的记录的信息。
需要说明的是,有多少台第一数据存储设备就有多少台第二数据存储设备,一台第一数据存储设备与一台第二数据存储设备共同组成一组在逻辑上存储相同内容的存储组,在整体***中,视存储的规模,会有一到多台数据存储设备组。
参见图3所示,本申请实施例的一种实现数据复制的方法具体包括以下步骤:
步骤301:数据***更新终端向第一数据存储设备发送第一更新操作指令,其中含有需要更新的记录的信息。
步骤302:数据***更新终端向日志子***发送第二更新操作指令,其中包括需要更新的记录的信息。
步骤303:收到第一更新操作指令的第一数据存储设备,根据所述第一更新操作指令执行更新操作。
第一数据存储设备保存需要更新的记录的信息。并且,可以以更新操作日志的格式将所述需要更新的记录的信息保存。
比如:更新操作日志的格式可以为“时间戳+信息ID+KVS”,其中,时间戳为收到第一更新操作指令时取得的当前***时间的整型表示(精度为毫秒级),信息ID为指定信息的唯一标识,在信息生成时唯一确定,不再更改,KVS是指信息更新涉及的具体字段名称和字段的新值的列表,是一种信息表示的格式,就是健值对的列表组合(Key-Value liSt)。
步骤304:日志子***根据当前运行中的日志代理服务器的负载情况选择一台合适的日志代理服务器,将需要更新的记录信息提交给这台日志代理服务器进行处理。
相应的日志代理服务器在接收到需要更新的记录信息后,以更新操作日志的格式保存在日志代理服务器的复制日志中供后期进行异步复制操作使用。
比如:更新操作日志的格式为“时间戳+信息ID+IP+KVS”,更新操作指令格式可以为“时间戳+信息ID+KVS”,其中,时间戳为收到第二更新操作指令时取得的当前***时间的整型表示(精度为毫秒级),信息ID为指定信息的唯一标识,在信息生成时唯一确定,不再更改,KVS是指信息更新涉及的具体字段名称和字段的新值的列表,IP地址为通过信息ID得到的事先配置好的对应的第二数据存储设备的标识,用于标志该复制请求最终需要发送到的第二数据存储设备。第二数据存储设备标识可以为一个标准的IP的地址,同时直接用于标识第二数据存储设备所在的位置。
步骤305:日志代理服务器的复制进程取出更新操作日志,获得需要更新的目标第二数据存储设备标识,向所述第二数据存储设备发送数据更新指令,其中含有所述需要更新的记录的信息,其中,所述需要更新的信息ID对应的第二数据存储设备标识是根据在生成复制日志时事先确定的。
这里,每个日志代理服务器内部都有并行、异步的日志执行机制,快速将需要复制的数据更新指令提交到相应的第二数据存储设备中。
步骤306:第二数据存储设备根据所述数据更新指令,进行数据更新。
步骤301和步骤302可以并行执行,也可以先后执行。
这里,更新操作包括:删除、修改或添加的记录的信息。而且,所述第一更新操作指令和所述第二更新操作指令为仅***且不覆盖原记录的操作指令。这也就说是,每个需要更新的记录的信息可以通过一个***记录表示,即每个需要更新的记录的信息包括:需要***的字段的信息,以及时间戳。这里,时间戳可以为:时间信息,也可以是用于标识先后顺序的版本信息。
如果日志子***需要发送给第二数据存储设备的数据比较多,也就是数据更新指令可能会有多个,这些数据更新指令因此可以是串行的,也可以是并行执行的。在并行执行过程中,数据更新指令中每个需要更新的记录都对应一个时间戳。
如图4所示,需要更新的记录中可以包括一个或多个字段,可以为每个字段变换不同的时间戳,不管是只有一个字段,还是多于一个字段,在***中,指示只***必要的数据,也就是叠加数据。读取数据时,默认只读取时间最近的各字段值,也就是版本最新的各字段值,在逻辑上,读取的内容,如图4中的虚箭头线串起来的最新记录。
在本申请实施例中,数据***更新终端在向第一数据存储设备发送第一更新操作指令时,也向日志子***发送第二更新操作指令,日志子***根据第二更新操作指令在选定的日志代理服务器上进行更新操作,同时根据第二更新操作指令中包含的需要更新的记录的信息,如信息ID,得到事先配置好的对应的第二数据存储设备的标识,再向第二数据存储设备发送相应的数据更新指令。由于通过日志子***将第一数据存储设备的更新的数据备份到第二数据存储设备,在执行过程中,不影响第一数据存储设备的工作,因此在提高***稳定性的同时,还可以提高第一数据存储设备的性能。
由于日志子***独立出来,第一数据存储设备和第二数据存储设备无相互依赖,日志子***可以并行执行后续同步操作,以提高***的稳定性,因为有时间戳标准,数据的复制的前后依赖关系也被消息,在部分数据复制失败的情况下,也不会对复制的整体进度产生大的影响。而且,本申请实施例还解决为保持数据高可用性,采用基于数据库主主复制等复制技术带来的性能损失严重的问题。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (11)
1.一种实现数据复制的***,其特征在于,应用在主主复制***中,该***包括:
第一数据存储设备,用于接收数据***更新终端发送的第一更新操作指令,其中含有需要更新的记录的信息,并根据所述第一更新操作指令更新记录;
日志子***,用于接收所述数据***更新终端发送的第二更新操作指令,其中包括需要更新的记录的信息;根据需要更新的记录的信息,在选定的日志代理服务器上进行更新;根据需要更新的记录的信息与第二数据存储设备标识的对应关系,获得所述需要更新的记录的信息对应的第二数据存储设备标识,向所述第二数据存储设备发送数据更新指令,其中含有所述需要更新的记录的信息,其中,所述第一更新操作指令和第二更新操作指令是由数据***更新终端分别发送给第一数据存储设备和日志子***的;
第二数据存储设备,用于根据所述数据更新指令,进行数据更新。
2.根据权利要求1所述的***,其特征在于,所述日志子***包括:控制单元和至少一个日志代理服务器,其中,
所述控制单元,用于接收所述数据***更新终端发送的第二更新操作指令,其中包括需要更新的记录的信息;根据日志代理服务器的负载情况选定一台日志代理服务器,向选定的日志代理服务器发送第二更新操作指令,其中含有所述需要更新的记录的信息;
每个日志代理服务器,用于接收到所述第二更新操作指令后,利用所述需要更新的记录的信息进行更新操作;根据需要更新的记录的信息与第二数据存储设备标识的对应关系,获得所述需要更新的记录的信息对应的第二数据存储设备标识,向所述第二数据存储设备发送数据更新指令,其中含有所述需要更新的记录的信息。
3.根据权利要求1所述的***,其特征在于,所述需要更新的记录的信息包括:删除、修改或添加的记录的信息。
4.根据权利要求1所述的***,其特征在于,所述需要更新的记录的信息包括:需要***的字段的信息、信息ID以及时间戳。
5.根据权利要求4所述的***,其特征在于,所述第一更新操作指令和所述第二更新操作指令为仅***且不覆盖原记录的操作指令。
6.根据权利要求4所述的***,其特征在于,所述时间戳为:时间信息或,用于标识先后顺序的版本信息。
7.一种实现数据复制的方法,其特征在于,应用在主主复制***中,该方法包括以下步骤:
数据***更新终端向第一数据存储设备发送第一更新操作指令,其中含有需要更新的记录的信息,并向日志子***发送第二更新操作指令,其中包括需要需要更新的记录的信息;
第一数据存储设备根据所述第一更新操作指令更新记录,且,
日志子***根据需要更新的记录的信息,在选定的日志代理服务器上进行更新;根据需要更新的记录的信息与第二数据存储设备标识的对应关系,获得所述需要更新的记录的信息对应的第二数据存储设备标识,向所述第二数据存储设备发送数据更新指令,其中含有所述需要更新的记录的信息;
第二数据存储设备根据所述数据更新指令,进行数据更新。
8.根据权利要求7所述的方法,其特征在于,所述需要更新的记录的信息包括:删除、修改或添加的记录的信息。
9.根据权利要求7所述的方法,其特征在于,所述需要更新的记录的信息包括:需要***的字段的信息、信息ID以及时间戳。
10.根据权利要求9所述的方法,其特征在于,所述第一更新操作指令和所述第二更新操作指令为仅***且不覆盖原记录的操作指令。
11.根据权利要求9所述的方法,其特征在于,所述时间戳为:时间信息或,用于标识先后顺序的版本信息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010205082.5A CN102279857B (zh) | 2010-06-11 | 2010-06-11 | 一种实现数据复制的方法及*** |
HK12104168.4A HK1163852A1 (zh) | 2010-06-11 | 2012-04-27 | 種實現數據複製的方法及系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010205082.5A CN102279857B (zh) | 2010-06-11 | 2010-06-11 | 一种实现数据复制的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102279857A CN102279857A (zh) | 2011-12-14 |
CN102279857B true CN102279857B (zh) | 2015-03-04 |
Family
ID=45105310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010205082.5A Active CN102279857B (zh) | 2010-06-11 | 2010-06-11 | 一种实现数据复制的方法及*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102279857B (zh) |
HK (1) | HK1163852A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663017A (zh) * | 2012-03-21 | 2012-09-12 | 互动在线(北京)科技有限公司 | 增强MySQL数据库可用性的实现***及实现方法 |
CN104281537B (zh) * | 2013-07-05 | 2017-09-08 | 阿里巴巴集团控股有限公司 | 一种内存复制方法及装置 |
CN105183459B (zh) * | 2015-08-14 | 2018-08-24 | 无锡天脉聚源传媒科技有限公司 | 一种数据修改方法及装置 |
CN106484321A (zh) * | 2016-09-08 | 2017-03-08 | 华为数字技术(成都)有限公司 | 一种数据存储方法及数据中心 |
CN106776803A (zh) * | 2016-11-24 | 2017-05-31 | 北京锐安科技有限公司 | 一种日志记录的更新方法及装置 |
CN106598538B (zh) * | 2016-11-29 | 2020-02-11 | 泰山信息科技有限公司 | 指令集合更新方法及*** |
CN109144418A (zh) * | 2018-08-16 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种数据同步方法及装置 |
CN110825758B (zh) * | 2019-10-31 | 2022-11-15 | ***股份有限公司 | 一种交易处理的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1598787A (zh) * | 2003-09-16 | 2005-03-23 | 西门子公司 | 生成或更新冗余计算机***中相同存储器的复制机 |
CN1690973A (zh) * | 2004-04-19 | 2005-11-02 | 株式会社日立制作所 | 远程复制方法及远程复制*** |
CN101206553A (zh) * | 2006-12-20 | 2008-06-25 | 国际商业机器公司 | 利用支持处理器的优化数据迁移方法和*** |
-
2010
- 2010-06-11 CN CN201010205082.5A patent/CN102279857B/zh active Active
-
2012
- 2012-04-27 HK HK12104168.4A patent/HK1163852A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1598787A (zh) * | 2003-09-16 | 2005-03-23 | 西门子公司 | 生成或更新冗余计算机***中相同存储器的复制机 |
CN1690973A (zh) * | 2004-04-19 | 2005-11-02 | 株式会社日立制作所 | 远程复制方法及远程复制*** |
CN101206553A (zh) * | 2006-12-20 | 2008-06-25 | 国际商业机器公司 | 利用支持处理器的优化数据迁移方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN102279857A (zh) | 2011-12-14 |
HK1163852A1 (zh) | 2012-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102279857B (zh) | 一种实现数据复制的方法及*** | |
US9501542B1 (en) | Methods and apparatus for volume synchronization | |
US8271447B1 (en) | Mirroring metadata in a continuous data protection environment | |
CN1996309B (zh) | 使用不同复制技术执行数据镜像时保持一致性的方法*** | |
CN103548011B (zh) | 分布式存储环境中的异步复制 | |
US20090282203A1 (en) | Managing storage and migration of backup data | |
CN109918229B (zh) | 非日志模式的数据库集群副本构建方法及装置 | |
JP2010527087A (ja) | データベースマネジメントシステム(dbms)におけるデータ複製方法およびシステム | |
CN102368222A (zh) | 一种多副本存储***在线修复的方法 | |
CN102193841B (zh) | 一种Subversion配置库的备份方法及装置 | |
CN104092726A (zh) | 同名文件的自动替换方法及其装置 | |
CN109728886A (zh) | 一种适于跨版本升级的数据同步方法、装置、设备及存储介质 | |
WO2021082925A1 (zh) | 一种交易处理的方法及装置 | |
CN109462661A (zh) | 数据同步方法、装置、计算机设备和存储介质 | |
CN106682141B (zh) | 一种基于业务操作日志的数据同步方法 | |
CN103581262A (zh) | 一种主备数据同步方法、装置和*** | |
CN109542860B (zh) | 基于hdfs的业务数据管理方法、终端设备 | |
CN104809033B (zh) | 一种备份方法及*** | |
CN112256202B (zh) | 一种分布式存储***和分布式存储***中卷的删除方法 | |
US20110137862A1 (en) | Method and apparatus for parallel edit to editable objects | |
US7644306B2 (en) | Method and system for synchronous operation of an application by a purality of processing units | |
US20130318040A1 (en) | Data replication apparatus and method using hierarchical organization of data servers | |
KR20130043823A (ko) | 로그에 기반하여 데이터 정합성을 유지하는 분산 저장 시스템 및 방법 | |
CN116108110B (zh) | 一种Kafka消息消费补偿方法、***和介质 | |
CN113890875B (zh) | 任务分配方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1163852 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1163852 Country of ref document: HK |