针对插件数据库的日志分析方法及设备
技术领域
本发明实施例涉及数据库日志分析技术领域,尤其涉及一种针对插件数据库的日志分析方法及设备。
背景技术
Oracle作为数据库软件,应用范围非常广泛,其中Oracle12c作为其较新版本,提出了CDB和PDB的概念。CDB全称为Container Database,即数据库容器,它由多个PDB数据库组成,并统一管理。PDB全称为Pluggable Database,即可插拔数据库,它作为数据库容器CDB的组成部分,可随时从数据库容器中进入退出,并且不影响数据库对外提供服务。由于这种不同数据库类型的引入,导致传统的数据库日志分析方法并不十分适合。传统的数据库日志分析方法会针对每个数据库给出单独的日志分析线程,如果一个CDB容器中有多个PDB,那么就需要每个PDB的日志分析线程都去读取解析此PDB对应的日志,而实际解析的归档日志却是同一份,这就造成了资源的浪费,降低了日志分析效率,特别是在一个数据库容器有多个PDB的情况下。因此,找到一种可以针对特定的插件数据库的日志进行分析,进而提高日志分析效率的方法,就成为业界亟待解决的技术问题。
发明内容
针对现有技术存在的上述问题,本发明实施例提供了一种针对插件数据库的日志分析方法及设备。
第一方面,本发明的实施例提供了一种针对插件数据库的日志分析方法,包括:获取配置文件,从所述配置文件中得到数据库容器的插件数据库信息,并根据所述数据库容器的信息,得到归档日志的位置信息,根据所述插件数据库信息,构建日志读取分析线程,根据所述归档日志的位置信息,所述日志读取分析线程读取所述数据库容器的归档日志;从所述数据库容器的归档日志中获取所述插件数据库的编号,若所述插件数据库的编号与日志读取分析线程的编号相同,则所述日志读取分析线程对所述插件数据库的日志进行解析。
进一步地,所述的针对插件数据库的日志分析方法,所述插件数据库的数量至少为一个。
进一步地,所述的针对插件数据库的日志分析方法,还包括:所述插件数据库的编号,与所述插件数据库唯一对应。
进一步地,所述的针对插件数据库的日志分析方法,还包括:若所述插件数据库的编号与日志读取分析线程的编号相异,则所述日志读取分析线程停止对所述插件数据库的日志进行解析。
第二方面,本发明的实施例提供了一种针对插件数据库的日志分析装置,包括:
数据库容器的归档日志获取模块,用于获取配置文件,从所述配置文件中得到数据库容器的插件数据库信息,并根据所述数据库容器的信息,得到归档日志的位置信息,根据所述插件数据库信息,构建日志读取分析线程,根据所述归档日志的位置信息,所述日志读取分析线程读取所述数据库容器的归档日志;
插件数据库的日志解析模块,用于从所述数据库容器的归档日志中获取所述插件数据库的编号,若所述插件数据库的编号与日志读取分析线程的编号相同,则所述日志读取分析线程对所述插件数据库的日志进行解析。
第三方面,本发明的实施例提供了一种电子设备,包括:
至少一个处理器;以及
与处理器通信连接的至少一个存储器,其中:
存储器存储有可被处理器执行的程序指令,处理器调用程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的针对插件数据库的日志分析方法。
第四方面,本发明的实施例提供了一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的针对插件数据库的日志分析方法。
本发明实施例提供的针对插件数据库的日志分析方法及设备,通过获取数据库容器的归档日志,并从数据库容器的归档日志中获取插件数据库的编号,并将所述插件数据库的编号与日志读取分析线程的编号进行比对,确保插件数据库与日志读取分析线程一一对应,可以针对特定的插件数据库的日志进行分析,从而提高了日志分析的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的针对插件数据库的日志分析方法流程图;
图2为相关技术提供的PDB日志解析方法原理示意图;
图3为本发明实施例提供的PDB日志解析方法原理示意图;
图4为本发明实施例提供的针对插件数据库的日志分析装置结构示意图;
图5为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,本发明提供的各个实施例或单个实施例中的技术特征可以相互任意结合,以形成可行的技术方案,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
由于CDB(Container Database)数据库容器中由许多个PDB(PluggableDatabase)插件数据库组成,而其日志管理系统仅针对CDB,在相关的数据库日志捕获模块中就必须针对每个PDB给出一个日志分析线程,对其进行日志捕获及分析。具体可以参见图2,图2中具有n个PDB(PDB1至PDBn,总共n个PDB),以及n个日志分析线程(日志分析线程1至日志分析线程n,总共n个日志分析线程)。其中,n个PDB包含在CDB中。任意一个日志分析线程(如日志分析线程1)读取日志后,读取的是CDB形成的一个总的日志文档,会将n个PDB形成的日志文档全部进行分析,即多个日志分析线程读取同一份日志文件并解析,这样明显造成了日志分析工作的冗余,造成资源浪费。为了减少日志分析的冗余性,需要对单个PDB形成的日志进行特定的分析,其原理可以参见图3。由图3中可见,由于PDB(PDB11至PDBnn,总共n个PDB)虽然有单独的数据库数据文件,但是其归档日志由CDB统一管理,且存放在相同的日志文件中。针对其独有的日志结构,每个PDB的日志分析线程(日志分析线程11至日志分析线程nn,总共n个日志分析线程)在读取日志后,对当前日志文档的归属进行识别,如果属于当前PDB则分析,否则不对此日志文档进行解析(即过滤掉不属于该PDB的日志)。通过此方法的应用,第一减少了日志的冗余解析,第二合理分配日志分析线程资源,加快了日志文档的读取解析效率。为了达到上述目的,本发明实施例提供了一种针对插件数据库的日志分析方法,参见图1,该方法包括:
101、获取配置文件,从所述配置文件中得到数据库容器的插件数据库信息,并根据所述数据库容器的信息,得到归档日志的位置信息,根据所述插件数据库信息,构建日志读取分析线程,根据所述归档日志的位置信息,所述日志读取分析线程读取所述数据库容器的归档日志;
102、从所述数据库容器的归档日志中获取所述插件数据库的编号,若所述插件数据库的编号与日志读取分析线程的编号相同,则所述日志读取分析线程对所述插件数据库的日志进行解析。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的针对插件数据库的日志分析方法,所述插件数据库的数量至少为一个。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的针对插件数据库的日志分析方法,还包括:所述插件数据库的编号,与所述插件数据库唯一对应。
基于上述方法实施例的内容,作为一种可选的实施例,本发明实施例中提供的针对插件数据库的日志分析方法,还包括:若所述插件数据库的编号与日志读取分析线程的编号相异,则所述日志读取分析线程停止对所述插件数据库的日志进行解析。
本发明实施例提供的针对插件数据库的日志分析方法,通过获取数据库容器的归档日志,并从数据库容器的归档日志中获取插件数据库的编号,并将所述插件数据库的编号与日志读取分析线程的编号进行比对,确保插件数据库与日志读取分析线程一一对应,可以针对特定的插件数据库的日志进行分析,从而提高了日志分析的效率。
本发明各个实施例的实现基础是通过具有处理器功能的设备进行程序化的处理实现的。因此在工程实际中,可以将本发明各个实施例的技术方案及其功能封装成各种模块。基于这种现实情况,在上述各实施例的基础上,本发明的实施例提供了一种针对插件数据库的日志分析装置,该装置用于执行上述方法实施例中的针对插件数据库的日志分析方法。参见图4,该装置包括:
数据库容器的归档日志获取模块401,用于获取配置文件,从所述配置文件中得到数据库容器的插件数据库信息,并根据所述数据库容器的信息,得到归档日志的位置信息,根据所述插件数据库信息,构建日志读取分析线程,根据所述归档日志的位置信息,所述日志读取分析线程读取所述数据库容器的归档日志;
插件数据库的日志解析模块402,用于从所述数据库容器的归档日志中获取所述插件数据库的编号,若所述插件数据库的编号与日志读取分析线程的编号相同,则所述日志读取分析线程对所述插件数据库的日志进行解析。
本发明实施例提供的针对插件数据库的日志分析装置,采用数据库容器的归档日志获取模块和插件数据库的日志解析模块,通过获取数据库容器的归档日志,并从数据库容器的归档日志中获取插件数据库的编号,并将所述插件数据库的编号与日志读取分析线程的编号进行比对,确保插件数据库与日志读取分析线程一一对应,可以针对特定的插件数据库的日志进行分析,从而提高了日志分析的效率。
需要说明的是,本发明提供的装置实施例中的装置,除了可以用于实现上述方法实施例中的方法外,还可以用于实现本发明提供的其他方法实施例中的方法,区别仅仅在于设置相应的功能模块,其原理与本发明提供的上述装置实施例的原理基本相同,只要本领域技术人员在上述装置实施例的基础上,参考其他方法实施例中的具体技术方案,通过组合技术特征,在保证技术方案具备实用性的前提下,就可以对上述装置实施例中的装置进行改进,从而得到相应的装置类实施例,用于实现其他方法类实施例中的方法。例如:
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的针对插件数据库的日志分析装置,还包括:
插件数据库编号模块,用于确定所述插件数据库的编号,与所述插件数据库唯一对应。
基于上述装置实施例的内容,作为一种可选的实施例,本发明实施例中提供的针对插件数据库的日志分析装置,还包括:
插件数据库的日志停止解析模块,用于若所述插件数据库的编号与日志读取分析线程的编号相异,则所述日志读取分析线程停止对所述插件数据库的日志进行解析。
本发明实施例的方法是依托电子设备实现的,因此对相关的电子设备有必要做一下介绍。基于此目的,本发明的实施例提供了一种电子设备,如图5所示,该电子设备包括:至少一个处理器(processor)501、通信接口(Communications Interface)504、至少一个存储器(memory)502和通信总线503,其中,至少一个处理器501,通信接口504,至少一个存储器502通过通信总线503完成相互间的通信。至少一个处理器501可以调用至少一个存储器502中的逻辑指令,以执行如下方法:获取配置文件,从所述配置文件中得到数据库容器的插件数据库信息,并根据所述数据库容器的信息,得到归档日志的位置信息,根据所述插件数据库信息,构建日志读取分析线程,根据所述归档日志的位置信息,所述日志读取分析线程读取所述数据库容器的归档日志;从所述数据库容器的归档日志中获取所述插件数据库的编号,若所述插件数据库的编号与日志读取分析线程的编号相同,则所述日志读取分析线程对所述插件数据库的日志进行解析。
此外,上述的至少一个存储器502中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。例如包括:获取配置文件,从所述配置文件中得到数据库容器的插件数据库信息,并根据所述数据库容器的信息,得到归档日志的位置信息,根据所述插件数据库信息,构建日志读取分析线程,根据所述归档日志的位置信息,所述日志读取分析线程读取所述数据库容器的归档日志;从所述数据库容器的归档日志中获取所述插件数据库的编号,若所述插件数据库的编号与日志读取分析线程的编号相同,则所述日志读取分析线程对所述插件数据库的日志进行解析。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。基于这种认识,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本专利中,术语"包括"、"包含"或者其任何其它变体意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。