CN107122424B - 一种关系数据库日志抽取方法 - Google Patents
一种关系数据库日志抽取方法 Download PDFInfo
- Publication number
- CN107122424B CN107122424B CN201710224035.7A CN201710224035A CN107122424B CN 107122424 B CN107122424 B CN 107122424B CN 201710224035 A CN201710224035 A CN 201710224035A CN 107122424 B CN107122424 B CN 107122424B
- Authority
- CN
- China
- Prior art keywords
- data
- read
- log
- row
- respective operations
- 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
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/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种关系数据库日志抽取方法,包括获取数据库日志文件路径、日志文件存储格式;打开日志文件,读取数据块,获取数据块大小和数量,确定数据库版本信息;从当前数据块中读取日志记录信息;判断该条日志记录信息是否完整,如果不完整则继续从下一个数据块中读取,直到拼装成完整的日志记录信息;解析完整的日志记录信息,获取操作码,并根据操作码依次读取日志记录信息中的所有变化操作数据;检查变化操作数据是否为有效变化数据,如果不是则丢掉,读取下一个变化操作数据,如果有效则将其添加到数据结果集中,检查完所有变化操作数据,则一次数据抽取结束。本发明可以精确抽取出变化日志数据,同时不会影响数据库自身性能。
Description
技术领域
本发明涉及一种关系数据库日志抽取方法,属于数据库数据复制技术领域。
背景技术
随着信息技术的深入发展,应用系统的不断升级,系统之间的集成贯通越来越多的需要数据交互,数据抽取已经逐步成为了信息系统融合的关键部分。然而,所有针对数据的抽取与交互都包含着一个基本的假设——数据的可用性和可靠性。数据库抽取技术作为各个领域的主流数据处理技术,其数据的可用性和与可靠性自然备受关注。数据库日志挖掘技术正是在这种要求下产生的。
国内外关系型数据库日志挖掘技术分为两种类型,一种是基于逻辑级日志抽取技术、一种是基于物理级Redo抽取技术。数据库日志抽取技术在信息系统集成交互领域应用广泛,主要使用的是基于逻辑级日志抽取技术,此类数据抽取技术多数需要依靠数据库自身提供的插件实现变化数据捕获,数据抽取延时较大,同时抽取过程中会对数据库自身的性能产生一定的影响,目前传统的基于逻辑级的日志抽取技术,不能较好的解决数据库日志抽取效率问题,并且对生产库影响较大。
发明内容
为了解决上述技术问题,本发明提供了一种关系数据库日志抽取方法。
为了达到上述目的,本发明所采用的技术方案是:
一种关系数据库日志抽取方法,包括以下步骤,
获取数据库日志文件路径、日志文件存储格式;
打开日志文件,读取数据块,获取数据块大小和数量,确定数据库版本信息;
从当前数据块中读取日志记录信息;
判断该条日志记录信息是否完整,如果不完整则继续从下一个数据块中读取,直到拼装成完整的日志记录信息;
解析完整的日志记录信息,获取操作码,并根据操作码依次读取日志记录信息中的所有变化操作数据;
检查变化操作数据是否为有效变化数据,如果不是则丢掉,读取下一个变化操作数据,如果有效则将其添加到数据结果集中,检查完所有变化操作数据,则一次数据抽取结束。
日志文件存储格式包括数据库文件系统格式、裸设备格式以及ASM格式。
读取数据块时,判断数据块前后SEQ号之间的关系,设当前数据块的SEQ号为s1,下一个数据块的SEQ号为s2,数据库的SEQ号为s3,通过比较确定下一步处理方法:
当s1=s2时:
s2=s3,Redo正常读写,正常读取下一个数据块;
s3>s2,Redo已被切换,当前Redo未完成,正常读取下一个数据块;
s3<s2,此情况不存在;
当s1<s2时:
s3=s2,Redo已被切换,s1可能有未读完数据,下一个数据块被新数据覆盖,从s1对应的归档中读取下一个数据块;
s3>s2,Redo已被切换,s1可能有未读完数据,下一个数据块被新数据覆盖,从s1对应的归档中读取下一个数据块;
s3<s1,此情况不存在;
当s2<=s3、s1<=s3、s1>s2时:
s3=s1,Redo下一个数据块暂时无数据写入,等待数据写入;
s3=s1+1,s1已读完,已切换到新的Redo,查询s1加1后对应的Redo,读取下一个数据块;
s3>s1+1,s1已读完,至少两次切换到新的Redo,查询s1加1后对应归档,读取下一个数据块;
s3<s2,此情况不存在。
读取日志记录信息的过程为,
读取数据块中的日志记录,获取日志记录头部标识位;判断头部标识位是否为0,如果是则读取下一个数据块;如果不是,则获取日志记录的有效信息,确定头部标识位的位数,并根据位数解析头部标识位,计算日志记录信息长度,根据日志记录信息长度读取日志记录信息。
日志记录信息长度=日志记录长度-日志记录头部标识位长度。
读取日志记录信息中的变化操作数据的过程为,
读取日志记录信息中的变化操作,获取变化操作头部标识位;
从变化操作头部标识位中获取操作码,读取变化操作中各段长度;
根据操作码读取变化操作中的二进制数据,该二进制数据即为变化操作数据。
重做操作OP_UNDO_UNDO对应操作码0x0501、开始新事务操作OP_UNDO_BEGINTRANS对应操作码0x0502、事务提交操作OP_UNDO_COMMIT对应操作码0x0504、新会话操作OP_UNDO_NEWSESSION对应操作码0x0513、切换会话操作OP_UNDO_SWITCHSESSION对应操作码0x0514、插入行操作OP_ROW_INSERT对应操作码0x0b02、删除行操作OP_ROW_DELETE对应操作码0x0b03、锁定行操作OP_ROW_LOCK对应操作码0x0b04、更新行操作OP_ROW_UPDATE对应操作码0x0b05、行链接操作OP_ROW_CHAIN对应操作码0x0b06、程序操作OP_ROW_MFC对应操作码0x0b07、程序操作OP_ROW_CFA对应操作码0x0b08、程序操作OP_ROW_KCI对应操作码0x0b09、程序操作OP_ROW_SKL对应操作码0x0b0a、插入多行操作OP_ROW_MINSERT对应操作码0x0b0b、删除多行操作OP_ROW_MDELETE对应操作码0x0b0c、程序操作OP_ROW_LMN对应操作码0x0b10、程序操作OP_ROW_COM对应操作码0x1801。
本发明所达到的有益效果:本发明通过对数据库日志的分析与定位,在数据库日志变化的第一时间抽取出日志变化数据,生成自定义格式的日志数据文件;通过该方法不但可以精确抽取出变化日志数据,还能降低数据库日志抽取对数据库自身的性能影响,对确保数据库的安全稳定的运行,具有重要的实际意义。
附图说明
图1为本发明的详细流程图;
图2为本发明的架构图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图1所示,一种关系数据库日志抽取方法,包括以下步骤:
步骤1,获取数据库日志文件路径、日志文件存储格式。
初始化Redo日志读取进程(RedoReader)、数据库连接,获取日志文件路径和日志文件存储格式;日志文件存储格式包括数据库文件系统格式、裸设备格式以及ASM格式。
步骤2,打开日志文件,读取数据块(Block),获取数据块大小和数量,确定数据库版本信息。
读取数据块时,判断数据块前后SEQ号(序列号)之间的关系,设当前数据块的SEQ号为s1,下一个数据块的SEQ号为s2,数据库的SEQ号为s3,通过比较确定下一步处理方法:
当s1=s2时:
s2=s3,Redo(重做日志)正常读写,正常读取下一个数据块;
s3>s2,Redo已被切换,当前Redo未完成,正常读取下一个数据块;
s3<s2,此情况不存在;
当s1<s2时:
s3=s2,Redo已被切换,s1可能有未读完数据,下一个数据块被新数据覆盖,从s1对应的归档中读取下一个数据块;
s3>s2,Redo已被切换,s1可能有未读完数据,下一个数据块被新数据覆盖,从s1对应的归档中读取下一个数据块;
s3<s1,此情况不存在;
当s2<=s3、s1<=s3、s1>s2时:
s3=s1,Redo下一个数据块暂时无数据写入,等待数据写入;
s3=s1+1,s1已读完,已切换到新的Redo,查询s1加1后对应的Redo,读取下一个数据块;
s3>s1+1,s1已读完,至少两次切换到新的Redo,查询s1加1后对应归档,读取下一个数据块;
s3<s2,此情况不存在。
步骤3,从当前数据块中读取日志记录信息。
具体过程为:
初始化日志记录解析进程(RecordParse)、变化日志解析进程(ChangeParse);
读取数据块中的日志记录(Record),获取日志记录头部标识位(Record Head);判断头部标识位是否为0(即是否存在waste),如果是则读取下一个数据块;如果不是,则获取日志记录的有效信息(Valid),确定头部标识位的位数,并根据位数解析头部标识位,计算日志记录信息长度,根据日志记录信息长度读取日志记录信息。
如果valid值为0x04、0x05、0x06、0x09、0x0d,表示部标识位为68位,否则部标识位为24位。
日志记录信息长度=日志记录长度-日志记录头部标识位长度。
步骤4,判断该条日志记录信息是否完整,如果不完整则继续从下一个数据块中读取,直到拼装成完整的日志记录信息。
步骤5,解析完整的日志记录信息,获取操作码,并根据操作码依次读取日志记录信息中的所有变化操作数据。
具体过程为:
读取日志记录信息中的变化操作(Change),获取变化操作头部标识位(ChangeHead);
从变化操作头部标识位中获取操作码,读取变化操作中各段长度;
根据操作码读取变化操作中的二进制数据,该二进制数据即为变化操作数据,并将其放到日志记录值(Record Value)中;
检查日志记录信息中的变化操作是否都已读完,如果没有则继续读取,直至读取全部变化操作数据。
操作码具体如下:重做操作OP_UNDO_UNDO对应操作码0x0501、开始新事务操作OP_UNDO_BEGINTRANS对应操作码0x0502、事务提交操作OP_UNDO_COMMIT对应操作码0x0504、新会话操作OP_UNDO_NEWSESSION对应操作码0x0513、切换会话操作OP_UNDO_SWITCHSESSION对应操作码0x0514、插入行操作OP_ROW_INSERT对应操作码0x0b02、删除行操作OP_ROW_DELETE对应操作码0x0b03、锁定行操作OP_ROW_LOCK对应操作码0x0b04、更新行操作OP_ROW_UPDATE对应操作码0x0b05、行链接操作OP_ROW_CHAIN对应操作码0x0b06、程序操作OP_ROW_MFC对应操作码0x0b07、程序操作OP_ROW_CFA对应操作码0x0b08、程序操作OP_ROW_KCI对应操作码0x0b09、程序操作OP_ROW_SKL对应操作码0x0b0a、插入多行操作OP_ROW_MINSERT对应操作码0x0b0b、删除多行操作OP_ROW_MDELETE对应操作码0x0b0c、程序操作OP_ROW_LMN对应操作码0x0b10、程序操作OP_ROW_COM对应操作码0x1801。
步骤6,检查变化操作数据是否为有效变化数据,如果不是则丢掉,读取下一个变化操作数据,如果有效则将其添加到数据结果集中,检查完所有变化操作数据,则一次数据抽取结束。
上述方法采用多进程的方式对在线日志进行日志数据抽取,每次抽取的数据存入数据结果集中。在线日志抽取对数据库表的调用关系如表1所示。
表1在线日志抽取对数据库表的调用关系
上述方法原理如图2所示,通过对数据库在文件系统格式下、裸设备格式下以及对基于数据库特殊卷管理器格式下的Redo日志的分析与定位,在数据库日志变化的第一时间抽取日志变化数据,生成变化日志数据集合,为后续数据格式转换、日志入库提供基础。通过该方法不但可以精确的抽取出变化数据,还能降低数据库日志抽取对生产库的性能影响,对于确保信息灾备系统安全稳定运行具有重要的实际意义。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (6)
1.一种关系数据库日志抽取方法,其特征在于:包括以下步骤,
获取数据库日志文件路径、日志文件存储格式;
打开日志文件,读取数据块,获取数据块大小和数量,确定数据库版本信息;
从当前数据块中读取日志记录信息;
判断日志记录信息是否完整,如果不完整则继续从下一个数据块中读取,直到拼装成完整的日志记录信息;
解析完整的日志记录信息,获取操作码,并根据操作码依次读取日志记录信息中的所有变化操作数据;
检查变化操作数据是否为有效变化数据,如果不是则丢掉,读取下一个变化操作数据,如果有效则将其添加到数据结果集中,检查完所有变化操作数据,则一次数据抽取结束;
读取数据块时,判断数据块前后SEQ号之间的关系,SEQ号为序列号,设当前数据块的SEQ号为s1,下一个数据块的SEQ号为s2,数据库的SEQ号为s3,通过比较确定下一步处理方法:
当s1 = s2 时:
s2 = s3,Redo正常读写,正常读取下一个数据块;
s3 > s2,Redo已被切换,当前Redo未完成,正常读取下一个数据块;
s3 < s2,此情况不存在;
当s1 < s2时:
s3 = s2,Redo已被切换,s1可能有未读完数据,下一个数据块被新数据覆盖,从s1对应的归档中读取下一个数据块;
s3 > s2,Redo已被切换,s1可能有未读完数据,下一个数据块被新数据覆盖,从s1对应的归档中读取下一个数据块;
s3 < s1,此情况不存在;
当s2 <= s3、s1 <= s3 、s1 > s2时:
s3 = s1,Redo下一个数据块暂时无数据写入,等待数据写入;
s3 = s1+1,s1已读完,已切换到新的Redo,查询s1加1后对应的Redo,读取下一个数据块;
s3 > s1+1,s1已读完,至少两次切换到新的Redo,查询s1加1后对应归档,读取下一个数据块;
s3 < s2,此情况不存在。
2.根据权利要求1所述的一种关系数据库日志抽取方法,其特征在于:日志文件存储格式包括数据库文件系统格式、裸设备格式以及ASM格式。
3.根据权利要求1所述的一种关系数据库日志抽取方法,其特征在于:读取日志记录信息的过程为,
读取数据块中的日志记录,获取日志记录头部标识位;判断头部标识位是否为0,如果是则读取下一个数据块;如果不是,则获取日志记录的有效信息,确定头部标识位的位数,并根据位数解析头部标识位,计算日志记录信息长度,根据日志记录信息长度读取日志记录信息。
4.根据权利要求3所述的一种关系数据库日志抽取方法,其特征在于:日志记录信息长度=日志记录长度-日志记录头部标识位长度。
5.根据权利要求1所述的一种关系数据库日志抽取方法,其特征在于:读取日志记录信息中的变化操作数据的过程为,
读取日志记录信息中的变化操作,获取变化操作头部标识位;
从变化操作头部标识位中获取操作码,读取变化操作中各段长度;
根据操作码读取变化操作中的二进制数据,该二进制数据即为变化操作数据。
6.根据权利要求5所述的一种关系数据库日志抽取方法,其特征在于:重做操作OP_UNDO_UNDO对应操作码0x0501、开始新事务操作OP_UNDO_BEGINTRANS对应操作码0x0502、事务提交操作OP_UNDO_COMMIT对应操作码 0x0504、新会话操作OP_UNDO_NEWSESSION对应操作码 0x0513、切换会话操作OP_UNDO_SWITCHSESSION对应操作码 0x0514、插入行操作OP_ROW_INSERT 对应操作码0x0b02、删除行操作OP_ROW_DELETE对应操作码 0x0b03、锁定行操作OP_ROW_LOCK 对应操作码0x0b04、更新行操作OP_ROW_UPDATE 对应操作码0x0b05、行链接操作OP_ROW_CHAIN对应操作码 0x0b06、程序操作OP_ROW_MFC对应操作码 0x0b07、程序操作OP_ROW_CFA 对应操作码0x0b08、程序操作OP_ROW_KCI 对应操作码0x0b09、程序操作OP_ROW_SKL 对应操作码0x0b0a、插入多行操作OP_ROW_MINSERT 对应操作码0x0b0b、删除多行操作OP_ROW_MDELETE 对应操作码0x0b0c、程序操作OP_ROW_LMN 对应操作码0x0b10、程序操作OP_ROW_COM对应操作码0x1801。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710224035.7A CN107122424B (zh) | 2017-04-07 | 2017-04-07 | 一种关系数据库日志抽取方法 |
PCT/CN2017/107110 WO2018184376A1 (zh) | 2017-04-07 | 2017-10-20 | 一种关系数据库日志抽取方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710224035.7A CN107122424B (zh) | 2017-04-07 | 2017-04-07 | 一种关系数据库日志抽取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107122424A CN107122424A (zh) | 2017-09-01 |
CN107122424B true CN107122424B (zh) | 2019-11-05 |
Family
ID=59726261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710224035.7A Active CN107122424B (zh) | 2017-04-07 | 2017-04-07 | 一种关系数据库日志抽取方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107122424B (zh) |
WO (1) | WO2018184376A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122424B (zh) * | 2017-04-07 | 2019-11-05 | 南京南瑞集团公司 | 一种关系数据库日志抽取方法 |
CN110083811B (zh) * | 2019-04-14 | 2022-11-22 | 杭州拓深科技有限公司 | 一种设备运行现场回放的方法 |
CN112650725A (zh) * | 2020-12-30 | 2021-04-13 | 四川效率源信息安全技术股份有限公司 | 一种恢复dm8数据库日志文件的方法 |
CN113312194B (zh) * | 2021-06-10 | 2024-01-23 | 中国民航信息网络股份有限公司 | 一种业务数据采集方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104331435A (zh) * | 2014-10-22 | 2015-02-04 | 国家电网公司 | 一种基于Hadoop大数据平台的低影响高效率的海量数据抽取方法 |
CN105488187A (zh) * | 2015-12-02 | 2016-04-13 | 北京四达时代软件技术股份有限公司 | 多源异构数据增量抽取的方法及装置 |
CN105677876A (zh) * | 2016-01-12 | 2016-06-15 | 国家电网公司 | 一种基于物理级的数据库日志挖掘方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8799213B2 (en) * | 2007-07-31 | 2014-08-05 | Oracle International Corporation | Combining capture and apply in a distributed information sharing system |
US8510270B2 (en) * | 2010-07-27 | 2013-08-13 | Oracle International Corporation | MYSQL database heterogeneous log based replication |
CN103412924B (zh) * | 2013-08-12 | 2017-10-31 | 东软集团股份有限公司 | 日志多语言查询方法和系统 |
CN107122424B (zh) * | 2017-04-07 | 2019-11-05 | 南京南瑞集团公司 | 一种关系数据库日志抽取方法 |
-
2017
- 2017-04-07 CN CN201710224035.7A patent/CN107122424B/zh active Active
- 2017-10-20 WO PCT/CN2017/107110 patent/WO2018184376A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104331435A (zh) * | 2014-10-22 | 2015-02-04 | 国家电网公司 | 一种基于Hadoop大数据平台的低影响高效率的海量数据抽取方法 |
CN105488187A (zh) * | 2015-12-02 | 2016-04-13 | 北京四达时代软件技术股份有限公司 | 多源异构数据增量抽取的方法及装置 |
CN105677876A (zh) * | 2016-01-12 | 2016-06-15 | 国家电网公司 | 一种基于物理级的数据库日志挖掘方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107122424A (zh) | 2017-09-01 |
WO2018184376A1 (zh) | 2018-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107122424B (zh) | 一种关系数据库日志抽取方法 | |
CN110879813B (zh) | 一种基于二进制日志解析的MySQL数据库增量同步实现方法 | |
CN109508346B (zh) | 一种ddl操作的级联同步控制方法及系统 | |
CN101464905B (zh) | 一种网页信息抽取的系统及方法 | |
CN105068889B (zh) | 恢复Ext3/Ext4中已彻底删除文件的方法 | |
CN102135963B (zh) | 数据迁移的方法和系统 | |
US8462924B2 (en) | Method and device for generating phone bill | |
CN101558405B (zh) | 将主机系统数据库转换为开放系统数据库的转换装置和方法 | |
CN106485243A (zh) | 一种票据识别纠错方法及装置 | |
CN105677876B (zh) | 一种基于物理级的数据库日志挖掘方法 | |
CN106777049B (zh) | 一种避免重复日志输出的处理方法及系统 | |
US20160321144A1 (en) | Database rollback using wal | |
CN104462433A (zh) | 一种恢复fat32分区数据的方法 | |
CN104866610A (zh) | 一种基于相似类型匹配估算的SQLite删除数据恢复方法 | |
CN105068888A (zh) | 一种基于Oracle数据库的数据恢复方法 | |
CN104021217A (zh) | 一种提取手机碎片文件和被删除文件的系统和方法 | |
CN102045268A (zh) | 一种电子邮件数据恢复方法及装置 | |
CN102298546B (zh) | 从磁盘上恢复被删除的jpg文件的方法及系统 | |
CN108009049A (zh) | Myisam存储引擎删除记录离线恢复方法、存储介质 | |
CN106843808A (zh) | 一种兼容不同格式类型的指令解析方法 | |
CN104021179A (zh) | 一种大数据集下相似性数据的快速识别算法 | |
CN105022677B (zh) | 一种usb设备使用记录恢复检查方法 | |
Ravi et al. | A method for carving fragmented document and image files | |
CN107436938B (zh) | 一种关系数据库前映像的附加日志解析方法 | |
CN109902070A (zh) | 一种面向WiFi日志数据的解析存储搜索方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |