掌桥专利:专业的专利平台
掌桥专利
首页

一种关系数据库状态的监控系统

文献发布时间:2024-04-18 19:52:40


一种关系数据库状态的监控系统

技术领域

本发明涉及信息技术处理领域,具体涉及关系数据库状态的监控系统。

背景技术

电力系统是国家运行的基础,是现代生活无法缺失的一部分;一旦电力系统由任何问题,都会对整个社会的生产生活造成巨大的影响。一旦电力系统发生任何故障,人类社会将会彻底进入黑暗状态,所以保持电力通常是政府最应该首先解决的问题。近年来,随着我国智能电网高速建设,对整个电力系统的自动化要求也越来越高。电力系统的高复杂度和高可靠性要求,在信息化过程中会产生海量的数据;现有技术中一般都采用数据库对这些数据进行存储。

数据库在应用系统中占据非常重要的地位,是应用系统的基础和核心。随着IT基础架构变得更加复杂多样化,数据库的架构越来越复杂,应用越来越广泛。数据库监控是针对关键指标监控数据库负载情况及状态,目标是实现数据库的高性能和高可用性,以更好的支撑业务系统的正常运转。这就意味着,用户需要通过不间断、不同维度、自动化的监控工具实现对数据库状态进行监控,通过监控状态信息研判提前发现可能存在的问题,并及时对风险项进行预处理,以保证业务系统的正常运行。当前主流的数据库监控工具主要通过第三方服务的形式进行数据库状态信息抽取及解析,易用性不强,大量占用数据库服务器资源,且存在延迟情况,不能及时、准确反馈数据库的运行状态。亟需一款监控指标全面、使用简便、资源占用少的数据库监控工具,可以用较低的资源占用代价实现数据库状态的全面监控。

发明内容

本申请提供了一种关系数据库状态的监控系统,典型的可以应用在关系数据库的监控领域以提高数据处理的实时性。

为了达到上述目的,本申请实施例提出了一种关系数据库状态的监控系统,以插件的形式安装在关系数据库中以检测关系数据库的状态;其中所述系统包括:

收集模块,用于对存储的数据库历史执行计划、数据库状态信息的监控指标,采集所述关系数据库的信息;

状态确认模块,用于根据关系数据库的信息,确定关系数据库的SQL执行状态及效率,以确定该关系数据库的运行状态;

其中所述收集模块用于收集所有已执行SQL语句和当前正在执行的SQL语句的统计信息,包括:执行SQL语句的用户ID、数据库ID、SQL语句的文本形式、SQL语句被执行的次数、已经生成的查询计划、查询计划被执行的次数;

其中所述收集模块用于收集以下的信息:

object_type参数,其类型为text类型,用于表示统计对象的类型;

object_id参数,其类型为bigint类型,用于表示统计对象的唯一ID;

object_name参数,其类型为text类型,用于表示对象名称;

queries_planned参数,其类型为int8类型,用于表示查询计划数量;

total_plan_time参数,其类型为float8类型,用于表示查询计划总耗时,该参数以毫秒为单位;

total_exec_rusage参数,其类型为pgpro_stats_rusage类型,用于表示查询计划的资源使用情况统计;

rows参数,其类型为int8类型,用于表示SQL语句影响的总行数;

shared_blks_hit参数,其类型为int8类型,用于表示共享高速缓存命中率;

shared_blks_read参数,其类型为int8类型,用于表示语句读取的共享块总数;

shared_blks_written参数,其类型为int8类型,用于表示语句写入的共享块总数;

local_blks_hit参数,其类型为int8类型,用于表示语句的本地块缓存命中总数;

local_blks_read参数,其类型为int8类型,用于表示语句读取的本地块总数;

local_blks_dirtied参数,其类型为int8类型,用于表示被语句弄脏的本地块总数;

local_blks_written参数,其类型为int8类型,用于表示语句写入的本地块总数;

temp_blks_read参数,其类型为int8类型,用于表示语句读取的临时块总数;

temp_blks_written参数,其类型为int8类型,用于表示语句写入的临时块总数;

blk_read_time参数,其类型为float8类型,用于表示语句读取块所花费的总时间,该参数以毫秒为单位;

blk_write_time参数,其类型为float8类型,用于表示语句写入块所花费的总时间,该参数以毫秒为单位;

wal_records参数,其类型为int8类型,用于表示语句生成的WAL记录总数;

wal_fpi参数,其类型为int8类型,用于表示报表生成的WAL整页图像总数;

wal_bytes参数,其类型为numeric类型,用于表示语句生成的WAL字节总数;

wait_stats参数,其类型为jsonb类型,用于表示包含有关每次执行查询的等待事件的统计信息;

inval_msgsinval_msgs参数,其类型为pgpro_stats_inval_msgs类型,用于表示语句生成的按类型划分的高速缓存失效消息数,若服务器不支持该参数时,该参数取值为0;

cache_resets参数,其类型为int4类型,用于共享缓存重置次数,该参数仅适用于群集、数据库和后端;

其中所述状态确认模块用于读取配置的pwpro_curs.conf文件,通过以下函数采集该关系数据库的参数:

current_os_info函数,用于采集关于操作系统的统计信息;

current_cpu_info函数,用于采集关于CPU的信息;

current_cpu_usage_info,用于采集有关CPU负载情况的信息;

current_memory_info,用于采集有关内存占用情况的信息;

current_io_analysis_info,用于采集块设备的I O分析;

current_disk_info,用于采集磁盘信息;

current_load_avg_info,用于采集定义隔内的系统平均负载信息;

current_process_info,用于采集有关进程信息;

current_network_info,用于采集网络接口信息;

current_cpu_memory_by_process,用于采集每个进程ID的CPU和内存信息。

其中,所述状态确认模块用于根据自定义的配置文件中的用户需求设置频率、监控指标,通过对不同类型、不同时段的硬件资源占用情况、数据库负载、SQL语句执行情况、等待事件、执行计划进行压缩存储,记录数据库历史状态,同步监控数据库当前状态。

其中,所述状态确认模块用于根据自定义的配置文件中的用户需求设置频率、监控指标,通过对不同类型、不同时段的硬件资源占用情况、数据库负载、SQL语句执行情况、等待事件、执行计划进行压缩存储,记录数据库历史状态,同步监控数据库当前状态。

其中,所述系统还包括:

展示模块,用于通过图表形式展现数据库的历史情况及当前状态。

本申请的上述技术方案的有益效果如下:上述技术方案提出了一种关系数据库状态的监控系统,能够明确当前数据库SQL执行状态及效率,判断数据库运行状态,为数据库当前可能存在问题提供数据支撑。

附图说明

图1为本申请实施例的pwpro_stats的工作原理示意图。

具体实施方式

为使本申请要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。

数据库在应用系统中占据非常重要的地位,是应用系统的基础和核心。随着IT基础架构变得更加复杂多样化,数据库的架构越来越复杂,应用越来越广泛。数据库监控是针对关键指标监控数据库负载情况及状态,目标是实现数据库的高性能和高可用性,以更好的支撑业务系统的正常运转。这就意味着,用户需要通过不间断、不同维度、自动化的监控工具实现对数据库状态进行监控,通过监控状态信息研判提前发现可能存在的问题,并及时对风险项进行预处理,以保证业务系统的正常运行。当前主流的数据库监控工具主要通过第三方服务的形式进行数据库状态信息抽取及解析,易用性不强,大量占用数据库服务器资源,且存在延迟情况,不能及时、准确反馈数据库的运行状态。亟需一款监控指标全面、使用简便、资源占用少的数据库监控工具,可以用较低的资源占用代价实现数据库状态的全面监控。针对现有自主可控数据库监控能力不足,无法实现自动监控和自定义监控指标采集,第三方工具监控资源占用多使用不方便的问题,本申请实施例提出了一种关系数据库状态的监控系统。

本申请实施例的关系数据库状态的监控系统,可以以插件的形式安装在自主可控数据库上,通过对数据库历史执行计划的存储、数据库状态信息的自定义监控指标,采集自主可控数据库的以下信息:配置、等待事件、SQL请求资源消耗、缓存失效信息统计;明确当前数据库SQL执行状态及效率,判断数据库运行状态,为数据库当前可能存在问题提供数据支撑。

在具体实现中,该系统可以使用C语言编译形成安装程序,并以插件的形式进行安装部署,也可在自主可控数据库安装时同步编译,与自主可控数据库高度契合。实现方法首先是通过对数据库查询计划统计及当前数据库SQL查询计划的统计及处理,对数据库当前状态进行监控和判断,原理如下:

本申请实施例的系统,在安装完成即开始收集所有已执行SQL语句和当前正在执行的SQL语句的统计信息,包括执行SQL语句的用户ID、数据库ID、SQL语句的文本形式、SQL语句被执行的次数、已经生成的查询计划、查询计划被执行的次数等一系列统计信息。涉及主要指标如下表所示:

/>

本申请实施例的系统,在安装完成即开始收集OS硬件资源负载情况,并将采集信息进行压缩存储,用户可通过配置pwpro_curs.conf文件自定义采集频率、采集内容、采集时长、采集次数、保留数据库服务器硬件资源占用情况的记录时长,以便合理利用存储空间。通过以下函数实现数据库服务器信息采集。其涉及主要函数如表所示:

通过自定义配置,在监控当前服务器资源负载和数据库状态的同时,还可以根据用户需求设置频率、监控指标,通过对不同类型、不同时段的硬件资源占用情况(CPU、内存、IO、网络等)、数据库负载、SQL语句执行情况、等待事件、执行计划进行压缩存储,记录数据库历史状态,同步监控数据库当前状态。

其工作原理如图1所示,本申请实施例的系统是以插件的形式安装在装自主可控数据库的主机上,以与自主可控数据库软件集成于一体的数据库监控工具快速、高效的采集和存储有数据库状态信息,对数据库服务器硬件状态信息并进行分析。其中,该系统可以执行以下功能:采集数据包括数据库大小、大表/索引统计、表/索引膨胀信息、慢SQL信息、查询计划、等待事件信息、数据库各进程状态信息、集群状态、错误日志信息、当前数据库进程PID、CPU、内存、磁盘、网络的占用信息。当前所采集信息将保存到内存中的缓冲区中,并可通过视图进行快速访问。

其中,本申请实施例的系统可以以插件的形式安装在数据库中,具体步骤包括:

1、数据库安装配置

安装POWERDB-PG数据库

./POWERDB-PG.run

配置监控

vim/pgdata/data/postgresql.conf修改以下内容

shared_preload_libraries=‘pwpro_stats,pg_stat_statments’

上传插件源码文件至/app/powerdb/pg并解压

进入目标路径

cd/app/powerdb/pg

解压源码文件

tar-xvf powerdb-pwpro.tar

2、编译安装pwpro插件

进入目标文件夹

cd/app/powerdb/pg/powerdb-pwpro

安装pwpro插件

make&&make install

3、创建扩展并测试

登录数据库

su–postgres

psql-d postgres

创建扩展

create extension pwpro_stats;

至此安装完成。

4、监控工具配置:

pwpro监控工具主要参数配置说明:

OS采集相关:

a)CPU alarm threshold

cpu负载告警阈值,当cpu负载超过设置阈值后,将进行告警提示。

b)CPU acquisition frequency

cpu采集频率设置,单位为毫秒。

c)Memory alarm threshold

内存告警阈值,当内存占用超过设置阈值后,将进行告警提示。

d)Memory information acquisition frequency

内存信息采集频率设置,单位为毫秒。

e)Disk alarm threshold

磁盘告警阈值,当磁盘空间超过设置阈值后,将进行告警提示。

f)io acquisition frequency

io采集频率设置,单位为毫秒。

g)Network packet loss

网络丢包告警,主要监控集群节点间通信状态

h)Network acquisition frequency

网络采集频率设置,单位为秒

DB相关

a)vacuum_frequency

vacuum状态查询频率设置,单位m(分钟)

b)Table_Expansion_check

表膨胀检查频率,单位h(小时)

c)checking_cluster_status

集群状态检查频率,单位m(分钟)

d)table_threshold

大表阈值,设置大表的初始值,即超过阈值即认定为大表,单位MB

e)table_check_frequency

大表检查频率,单位h(小时)

f)index_threshold

索引阈值,设置索引初始值,即超过阈值则认定该索引须注意观察

g)Index_check_frequency

索引检查频率,单位h(小时)

h)DB_Threshold

数据库阈值,设置数据库大小定义值,超过阈值即认定该数据库属于需要定时观察的数据库。

i)DBsize_check_frequency

数据库大小检查频率,单位d(天)

j)Highage_table

高年龄表阈值设置,低于该阈值则认定表年龄过高,需手动执行vacuum

k)Highage_table_check_frequency

高年龄表检查频率,单位d(天)

l)Invalid_index_threshold

无效索引阈值设置,定义无效索引大小,超过该值应进行清理。

m)Invalid_index_check_frequency

无效索引检查频率,单位d(天)

n)Slow_sql_check_frequency

慢sql检查频率,单位h(小时)

o)Error_check_frequency

错误日志检查频率,单位h(小时)

p)Tbspace_check_frequency

表空间检查频率,单位d(天)

q)Tbspace_alarm_threshold

表空间告警阈值设置,超过阈值则进行警告提醒

r)current_connections

当前连接数查询

s)Long_transaction

长事务定义,定义事务为长事务的阈值,单位s(秒)

t)Long_transaction_check_frequency

长事务检查频率设置,单位m(分钟)

采集信息存储相关

Compression settings

压缩设置,设置采集信息是否进行压缩存储以保证重组的存储空间

Collect data storage directory

数据存放目录

Total acquisition time

pwpro采集总时长,设置监控周期,单位h(小时),默认0表示关闭监控。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序。在计算机上加载和执行所述计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机程序可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。

本领域普通技术人员可以理解:本申请中涉及的第一、第二等各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围,也表示先后顺序。

本申请中的至少一个还可以描述为一个或多个,多个可以是两个、三个、四个或者更多个,本申请不做限制。在本申请实施例中,对于一种技术特征,通过“第一”、“第二”、“第三”、“A”、“B”、“C”和“D”等区分该种技术特征中的技术特征,该“第一”、“第二”、“第三”、“A”、“B”、“C”和“D”描述的技术特征间无先后顺序或者大小顺序。

本申请中各表所示的对应关系可以被配置,也可以是预定义的。各表中的信息的取值仅仅是举例,可以配置为其他值,本申请并不限定。在配置信息与各参数的对应关系时,并不一定要求必须配置各表中示意出的所有对应关系。例如,本申请中的表格中,某些行示出的对应关系也可以不配置。又例如,可以基于上述表格做适当的变形调整,例如,拆分,合并等等。上述各表中标题示出参数的名称也可以采用通信装置可理解的其他名称,其参数的取值或表示方式也可以通信装置可理解的其他取值或表示方式。上述各表在实现时,也可以采用其他的数据结构,例如可以采用数组、队列、容器、栈、线性表、指针、链表、树、图、结构体、类、堆、散列表或哈希表等。

本申请中的预定义可以理解为定义、预先定义、存储、预存储、预协商、预配置、固化、或预烧制。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种基于无线通信的机电装备运行状态远程监控系统
  • 一种散热器工作状态监控系统
  • 一种基于态势知识的空间网络资源状态监控系统
  • 一种关系数据库、非关系数据库无状态数据统一存取方法及系统
  • 一种司机在途疲劳状态检测方法及列车运行状态远程监控系统
技术分类

06120116333437