CN117131005A - 一种数据库运维的方法、装置、电子设备及介质 - Google Patents
一种数据库运维的方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN117131005A CN117131005A CN202310929397.1A CN202310929397A CN117131005A CN 117131005 A CN117131005 A CN 117131005A CN 202310929397 A CN202310929397 A CN 202310929397A CN 117131005 A CN117131005 A CN 117131005A
- Authority
- CN
- China
- Prior art keywords
- database
- health
- health examination
- items
- check
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012423 maintenance Methods 0.000 title abstract description 17
- 230000036541 health Effects 0.000 claims abstract description 212
- 238000004458 analytical method Methods 0.000 claims abstract description 81
- 238000005457 optimization Methods 0.000 claims abstract description 28
- 238000004590 computer program Methods 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 8
- 238000007689 inspection Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000012544 monitoring process Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 238000002405 diagnostic procedure Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000009434 installation Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000007366 host health Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000013077 scoring method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- 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/217—Database tuning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
本发明实施例提供了一种数据库运维的方法、装置、电子设备及介质,包括:创建针对所述数据库的多个健康检查维度和每个健康检查维度下的一个或多个健康检查项,并从数据库和数据库所在的服务器中,获取一个或多个健康检查项对应的数据库信息;通过对数据库信息进行分析,得到一个或多个健康检查项的分析结果,并根据一个或多个健康检查项的分析结果,生成多个健康检查维度的健康检查结果;根据多个健康检查维度的健康检查结果和一个或多个健康检查项的分析结果,生成针对数据库的优化策略,实现了对数据库的主动运维,实时检测数据库的健康状态,能够在故障发生前对数据库进行处理,减少了故障的发生,且无需依赖于人工巡检。
Description
技术领域
本发明涉及数据库技术领域,特别是涉及一种数据库运维的方法、装置、电子设备及介质。
背景技术
目前,对于数据库的运维通常是被动运维,即通过监控工具触发告警通知,在监控到数据库出现故障时才进行处理。而且,日常的运维依靠人工巡检,费时费力,且更会因为人为的疏忽造成故障的发生。
发明内容
鉴于上述问题,提出了以便提供克服上述问题或者至少部分地解决上述问题的一种数据库运维的方法、装置、电子设备及介质,包括:
一种数据库运维的方法,包括:
创建针对所述数据库的多个健康检查维度和每个健康检查维度下的一个或多个健康检查项,并从所述数据库和所述数据库所在的服务器中,获取所述一个或多个健康检查项对应的数据库信息;
通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,并根据所述一个或多个健康检查项的分析结果,生成所述多个健康检查维度的健康检查结果;
根据所述多个健康检查维度的健康检查结果和所述一个或多个健康检查项的分析结果,生成针对所述数据库的优化策略。
可选地,还包括:
响应于用户操作,按照所述优化策略对所述数据库进行优化。
可选地,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为主键索引检查项的情况下,根据所述数据库信息判断所述数据库下数据表是否设置有主键;
根据所述数据库下数据表是否设置有主键的判断结果,生成所述主键索引检查项的分析结果。
可选地,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为CPU使用率检查项的情况下,根据所述数据库信息确定CPU使用率大于预设使用率的累计时长;
判断所述累计时长是否大于预设时长;
根据所述累计时长是否大于预设时长的判断结果,生成所述CPU使用率检查项的分析结果。
可选地,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为死锁情况检查项的情况下,根据所述数据库信息确定预设时间区间内出现死锁情况的死锁次数;
判断所述死锁次数是否大于预设次数;
根据所述死锁次数是否大于预设次数的判断结果,生成所述死锁情况检查项的分析结果。
可选地,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为二进制日志检查项的情况下,根据所述数据库信息对二进制日志进行以下任一种或多种判断:
目标参数是否设置为指定值、目标日志占用磁盘空间的比例是否大于预设比例、目标日志的增长速度是否大于预设速度;
根据所述二进制日志的判断结果,生成所述二进制日志检查项的分析结果。
可选地,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为弱密码检查项的情况下,根据所述数据库信息判断当前密码是否与预置密码库中的密码相匹配;
根据所述当前密码是否与预置密码库中的密码相匹配的判断结果,生成所述弱密码检查项的分析结果。
一种数据库运维的装置,包括:
数据库信息获取模块,用于创建针对所述数据库的多个健康检查维度和每个健康检查维度下的一个或多个健康检查项,并从所述数据库和所述数据库所在的服务器中,获取所述一个或多个健康检查项对应的数据库信息;
健康检查结果生成模块,用于通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,并根据所述一个或多个健康检查项的分析结果,生成所述多个健康检查维度的健康检查结果;
优化策略生成模块,用于根据所述多个健康检查维度的健康检查结果和所述一个或多个健康检查项的分析结果,生成针对所述数据库的优化策略。
一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的数据库运维的方法。
一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的数据库运维的方法。
本发明实施例具有以下优点:
在本发明实施例中,通过创建针对所述数据库的多个健康检查维度和每个健康检查维度下的一个或多个健康检查项,并从所述数据库和所述数据库所在的服务器中,获取所述一个或多个健康检查项对应的数据库信息,通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,并根据所述一个或多个健康检查项的分析结果,生成所述多个健康检查维度的健康检查结果,根据所述多个健康检查维度的健康检查结果和所述一个或多个健康检查项的分析结果,生成针对所述数据库的优化策略,实现了对数据库的主动运维,实时检测数据库的健康状态,能够在故障发生前对数据库进行处理,减少了故障的发生,且无需依赖于人工巡检。
附图说明
为了更清楚地说明本发明的技术方案,下面将对本发明的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种系统架构的示意图;
图2是本发明一实施例提供的另一种系统架构的示意图;
图3是本发明一实施例提供的一种数据库运维的方法的步骤流程图;
图4是本发明一实施例提供的另一种数据库运维的方法的步骤流程图;
图5是本发明一实施例提供的一种数据库运维的装置的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中,通过python打造基于关系型数据库的专家系统,提供健康检查服务,将故障消灭在萌发状态,扭转以往通过监控工具触发告警通知的被动运维方式,充分调动应用系统配合治理,提升系统运行稳定性。
在实际应用中,可以将本发明实施例作为平台服务进行部署,也可以将本发明实施例作为数据库工具进行部署,具体如下:
对于作为平台服务进行部署的情况:
如图1,部署有服务端和客户端,服务端可以部署于平台侧,客户端可以部署于数据库侧,服务端和客户端之间可以通过消息中间件进行通信,如MQ(Message Queue,消息队列),服务端可以向用户提供Web界面,供用户操作并向用户呈现信息,服务端还可以与监控平台连接。
在功能设计阶段需要根据前期的调研和实际的需求,完成系统的架构设计。通过设置良好的前端交互界面,用户可以选择需要进行健康检查的数据库实例。在选择数据库实例以后,服务端就会进行健康检查。
在健康检查的系统架构中,服务端用来触发数据库的健康检查,通过客户端返回的数据库信息和监控平台获取的监控数据,对数据库进行检查并评分。客户端用来获取数据库的信息,如磁盘的大小、数据库的运行参数、数据库的安全配置等,可以设置一个服务端和多个客户端,在每一个数据库服务器上部署一个客户端,客户端和服务端之间通过MQ消息中间件通信。
在实际应用中,健康检查作为平台服务提供给用户,用户只需要通过前端界面操作便可以发起一次数据库检查操作在本次检查完成以后,会对数据库进行打分。健康检查系统判定数据库存在某些问题时,会对数据库进行一个总的评分,以便用户对数据库的健康状态有个直观的认识,对于每一个数据库问题,健康检查系统还会给出具体的修复建议。
对于作为数据库工具进行部署的情况:
如图2,可以直接部署于数据库所在的服务器上,可以设置服务端和客户端,将健康检查作为数据库工具时,并没有严格的服务端和客户端之分,它们的程序都属于同一个进程,但是,代码中依然区分了服务端和客户端,通过这种设计方式,可以方便地将工具改造为平台服务。
作为数据库工具时,只需要专注于功能的实现,通过命令行使用即可。只需要将作为平台服务的健康检查系统架构进行精简,便得到了作为数据库工具的健康检查系统架构。将健康检查作为数据库工具以后,需要减少相关的依赖。因此,裁减了前端界面和监控平台这两个组件。
对于健康检查来说,无论是具有前端界面的平台服务,还是面向开发者的数据库工具,它们的核心部分都是通过客户端获取数据库的配置信息,然后进行检查,检查完成以后对数据库进行评分并给出相应的意见和建议。
以下进行进一步说明:
参照图3,示出了本发明一实施例提供的一种数据库运维的方法的步骤流程图,数据库可以为关系型数据库,如MYSQL。
具体的,可以包括如下步骤:
步骤301,创建针对所述数据库的多个健康检查维度和每个健康检查维度下的一个或多个健康检查项,并从所述数据库和所述数据库所在的服务器中,获取所述一个或多个健康检查项对应的数据库信息。
在实际应用中,可以确定多个健康检查维度,如服务器相关的健康检查维度、数据库相关的健康检查维度、业务相关的健康检查维度。
在每个健康检查维度下,可以设置一个或多个健康检查项,如对于服务器相关,包括CPU、IO内存、磁盘、网络等方面的健康检查项,对于数据库相关,包括数据库的参数配置,主从复制性能等方面的健康检查项,对于业务相关,包括表结构、索引和语句等方面的健康检查项。
在一示例中,整理出系统需要检查的方向,大致包括以下健康检查项:
索引检查:
主键索引检查、无效索引检查、冗余索引检查、索引区分度检查
容量规划检查:
CPU利用率检查、IO能力检查、网络带宽检查、存储空间检查、内存占用检查
用户访问检查:
死锁统计、慢日志统计
安全检查:
弱密码检查、网络检查、权限检查
参数检查
内存参数检查、重做日志配置检查、二进制日志检查、连接数配置检查
主从复制检查
复制性能检查、数据安全检查
数据库备份检查
每日数据库备份检查
同步情况检查
同步延迟检查、同步状态检查
在实际应用中,可以从数据库和数据库所在的服务器中,获取一个或多个健康检查项对应的数据库信息,如磁盘的大小、数据库的运行参数、数据库的安全配置等,该数据库信息可以是与健康检查项相关的信息。
步骤302,通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,并根据所述一个或多个健康检查项的分析结果,生成所述多个健康检查维度的健康检查结果。
针对每个健康检查项,可以查找相应的数据库信息,然后通过对数据库信息进行分析,如可以按照预先编写的脚本进行分析,进而得到每个健康检查项的分析结果,分析结果可以为异常、正常等,分析结果也可以为分值。
在获得每个健康检查项的分析结果后,可以将每个健康检查维度下所有的健康检查项的分析结果进行归一化,也可以通过加权平均后,得到该健康检查维度的健康检查结果,如健康检查结果可以为分值。
以sync_bin log(Binlog是用来保存数据库修改的日志信息)为例,服务端设计action目录,存放下check binary logs.py脚本,目的仅仅是收集sync_nlog的取值,同样设计worker目录下的check_binary_logs.py判断sync_binlog是否为1,如果为1则检查通过,如果不为1则对数据库进行相应的扣分,并提示用户数据库存在主从数据不一致的风险。
在一示例中,可以分为数据库主机健康检查和数据库健康检查:
数据库主机健康检查:
客户端首先通过监控的web界面的初始化安装按钮一键完成部署和下发到数据库上,后台具体实现为调用控制台的Python脚本clientini.py下发安装包到数据库上,再完成初始化的安装和配置工作并启动客户端程序。
随后,通过客户端获取数据库信息,包括CPU、IO、内存、磁盘、网络等方面的检查。
数据库健康检查:
控制台(服务端)下发监控命令到客户端上,以调用数据库健康检查脚本。其中,涉及check_qps_tps.py数据库qps、tps的监控检查,通过调用pParent=util.PMonitorOp模块查询配置库的信息来实现;check_mysql_error_log.py数据库错误日志检查,底层自定义函数analyze_mysql_error_log实现为读取mysql的error.log文件根据关键字error、fail过滤筛选出故障信息并做出判断。
在一示例中,检查完成后对数据库进行评分并给出相应的意见和建议。主要涉及数据库主机模块、数据库性能模块的评分。
其中,数据库性能模块包括:
数据完整性:检查数据库中的数据完整性,包括主键约束、唯一性约束、外键关系等。确保数据的一致性和准确性。
数据一致性:检查数据库中各个表之间的数据一致性,确保数据在不同表之间的关联关系正确并且保持一致。
数据访问性能:评估数据库的数据访问性能,包括查询性能、索引使用情况、表连接操作等。提高查询效率和优化数据库设计。
对于数据库性能评分,根据查询性能、数据完整性、数据一致性等因素综合评估数据库的性能得分,如将性能分为优秀、良好、一般和较差等级。
在一示例中,客户端涉及的脚本为score.py,算法实现原理为调用获取后台数据库性能信息的get_database_performance函数。根据结果得出90/70/50/30分的评分结果。
其中,数据库主机模块包括:
CPU和内存:检查数据库服务器的CPU和内存使用情况,评估系统的性能瓶颈。如果CPU和内存占用率过高,可能需要优化查询、增加硬件资源或者调整数据库配置。
磁盘空间和IO:检查数据库服务器的磁盘空间使用情况和IO性能。确保磁盘空间充足,并评估磁盘IO是否达到预期性能水平。
网络:评估数据库服务器与应用程序之间的网络连接质量和性能。确保网络稳定性和延迟较低。
在本发明一实施例中,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为主键索引检查项的情况下,根据所述数据库信息判断所述数据库下数据表是否设置有主键;根据所述数据库下数据表是否设置有主键的判断结果,生成所述主键索引检查项的分析结果。
对于主键索引检查项,可以采用如下诊断过程:判断MySQL每个库下的每个表是否都存在主键,主键包括唯一索引和PRIMARY KEY。
在一示例中,可以生成相应的优化策略,如数据库{databaseName(数据库名称)}下的表{tableName(表名称)}缺乏主键,建议添加主键。
在本发明一实施例中,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为CPU使用率检查项的情况下,根据所述数据库信息确定CPU使用率大于预设使用率的累计时长;判断所述累计时长是否大于预设时长;根据所述累计时长是否大于预设时长的判断结果,生成所述CPU使用率检查项的分析结果。
对于CPU使用率检查项,可以采用如下诊断过程:在指定时间段内(记该时间段为)计算CPU利用率超过阈值的累计时长,若累计时长是否大于预设时长,则认为数据库实例经常性出现利用率过高。
在一示例中,可以生成相应的优化策略,如CPU利用率在指定时间段持续较长时间超80%,建议您将用户实例通过外部实例迁移工具,迁移到更高CPU配置的大规格数据库。
在本发明一实施例中,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为死锁情况检查项的情况下,根据所述数据库信息确定预设时间区间内出现死锁情况的死锁次数;判断所述死锁次数是否大于预设次数;根据所述死锁次数是否大于预设次数的判断结果,生成所述死锁情况检查项的分析结果。
对于死锁情况检查项,可以采用如下诊断过程:统计上一次健康检查时间点和当前时间点这个时间区间之内,出现死锁的总次数,当死锁的总次数超过阈值时,认为业务出现死锁次数太高,需要业务仔细审核SQL语句。
在一示例中,可以生成相应的优化策略,如在时间段内,您的死锁次数达10次,死锁频率非常高,请您仔细审核SQL语句。
在本发明一实施例中,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为二进制日志检查项的情况下,根据所述数据库信息对二进制日志进行以下任一种或多种判断:目标参数是否设置为指定值、目标日志占用磁盘空间的比例是否大于预设比例、目标日志的增长速度是否大于预设速度;根据所述二进制日志的判断结果,生成所述二进制日志检查项的分析结果。
对于二进制日志检查项(在用户开启log_bin参数的前提条件下),可以采用如下诊断过程:
检查点A:sync_binlog参数是否设置为1,若该参数不是,应提示用户存在主从数据不一致的风险;
检查点B:binlog format参数是否设置为ROW,若该参数取值不为ROW,应提示存在数据不一致的风险;
检查点C:检查当前节点上binlog占用磁盘空间的比例,若比例超过阈值Ll,则提示用户当前binlog的占用磁盘空间比率较大,建议用户手动删除部分无用binlog;
检查点D:计算当前时间点到之前段时间内的binlog增长速度,判断未来7天之内是否可能导致磁盘间爆满,如果可能,提示用户手动删除这部分binlog。
在本发明一实施例中,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为弱密码检查项的情况下,根据所述数据库信息判断当前密码是否与预置密码库中的密码相匹配;根据所述当前密码是否与预置密码库中的密码相匹配的判断结果,生成所述弱密码检查项的分析结果。
对于弱密码检查项,可以采用如下诊断过程:计算常见密码、password值,并制作成简单的密码表判断mysql.user表中的每个密码哈希值是否在密码表中出现,如果出现,则认为该账号下的密码是简单密码。
在一示例中,可以生成相应的优化策略,如数据库用户密码太弱,请使用安全性更强的密码,数据库账号:test。
步骤303,根据所述多个健康检查维度的健康检查结果和所述一个或多个健康检查项的分析结果,生成针对所述数据库的优化策略。
在获得多个健康检查维度的健康检查结果和所述一个或多个健康检查项的分析结果,可以生成相应的优化策略,并向用户呈现。
例如,根据评分结果提出具体的建议和意见,如针对性能较差的问题,可以建议优化查询、增加硬件资源或者调整数据库配置;针对数据一致性问题,可以建议修复或重新设计相关的约束和关系;针对网络连接质量问题,可以建议优化网络配置或调整服务器位置等。
在本发明一实施例中,还包括:
响应于用户操作,按照所述优化策略对所述数据库进行优化。
在向用户呈现优化策略后,用户可以直接授权进行优化,则可以根据优化策略生成相应的数据库指令,对数据库进行优化。
在本发明实施例中,通过创建针对所述数据库的多个健康检查维度和每个健康检查维度下的一个或多个健康检查项,并从所述数据库和所述数据库所在的服务器中,获取所述一个或多个健康检查项对应的数据库信息,通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,并根据所述一个或多个健康检查项的分析结果,生成所述多个健康检查维度的健康检查结果,根据所述多个健康检查维度的健康检查结果和所述一个或多个健康检查项的分析结果,生成针对所述数据库的优化策略,实现了对数据库的主动运维,实时检测数据库的健康状态,能够在故障发生前对数据库进行处理,减少了故障的发生,且无需依赖于人工巡检。
参照图4,示出了本发明一实施例提供的另一种数据库运维的方法的步骤流程图,具体可以包括如下步骤:
步骤401,创建针对所述数据库的多个健康检查维度和每个健康检查维度下的一个或多个健康检查项,并从所述数据库和所述数据库所在的服务器中,获取所述一个或多个健康检查项对应的数据库信息;
步骤402,通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,并根据所述一个或多个健康检查项的分析结果,生成所述多个健康检查维度的健康检查结果。
步骤404,根据所述多个健康检查维度的健康检查结果和所述一个或多个健康检查项的分析结果,生成针对所述数据库的优化策略。
步骤405,响应于用户操作,按照所述优化策略对所述数据库进行优化。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图5,示出了本发明一实施例提供的一种数据库运维的装置的结构示意图,具体可以包括如下模块:
数据库信息获取模块501,用于创建针对所述数据库的多个健康检查维度和每个健康检查维度下的一个或多个健康检查项,并从所述数据库和所述数据库所在的服务器中,获取所述一个或多个健康检查项对应的数据库信息.
健康检查结果生成模块502,用于通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,并根据所述一个或多个健康检查项的分析结果,生成所述多个健康检查维度的健康检查结果。
优化策略生成模块503,用于根据所述多个健康检查维度的健康检查结果和所述一个或多个健康检查项的分析结果,生成针对所述数据库的优化策略。
在本发明一实施例中,还包括:
数据库优化模块,用于响应于用户操作,按照所述优化策略对所述数据库进行优化。
在本发明一实施例中,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为主键索引检查项的情况下,根据所述数据库信息判断所述数据库下数据表是否设置有主键;
根据所述数据库下数据表是否设置有主键的判断结果,生成所述主键索引检查项的分析结果。
在本发明一实施例中,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为CPU使用率检查项的情况下,根据所述数据库信息确定CPU使用率大于预设使用率的累计时长;
判断所述累计时长是否大于预设时长;
根据所述累计时长是否大于预设时长的判断结果,生成所述CPU使用率检查项的分析结果。
在本发明一实施例中,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为死锁情况检查项的情况下,根据所述数据库信息确定预设时间区间内出现死锁情况的死锁次数;
判断所述死锁次数是否大于预设次数;
根据所述死锁次数是否大于预设次数的判断结果,生成所述死锁情况检查项的分析结果。
在本发明一实施例中,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为二进制日志检查项的情况下,根据所述数据库信息对二进制日志进行以下任一种或多种判断:
目标参数是否设置为指定值、目标日志占用磁盘空间的比例是否大于预设比例、目标日志的增长速度是否大于预设速度;
根据所述二进制日志的判断结果,生成所述二进制日志检查项的分析结果。
在本发明一实施例中,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为弱密码检查项的情况下,根据所述数据库信息判断当前密码是否与预置密码库中的密码相匹配;
根据所述当前密码是否与预置密码库中的密码相匹配的判断结果,生成所述弱密码检查项的分析结果。
在本发明实施例中,通过创建针对所述数据库的多个健康检查维度和每个健康检查维度下的一个或多个健康检查项,并从所述数据库和所述数据库所在的服务器中,获取所述一个或多个健康检查项对应的数据库信息,通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,并根据所述一个或多个健康检查项的分析结果,生成所述多个健康检查维度的健康检查结果,根据所述多个健康检查维度的健康检查结果和所述一个或多个健康检查项的分析结果,生成针对所述数据库的优化策略,实现了对数据库的主动运维,实时检测数据库的健康状态,能够在故障发生前对数据库进行处理,减少了故障的发生,且无需依赖于人工巡检。
本发明一实施例还提供了一种电子设备,可以包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上数据库运维的方法。
本发明一实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上数据库运维的方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对所提供的一种数据库运维的方法、装置、电子设备及介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据库运维的方法,其特征在于,包括:
创建针对所述数据库的多个健康检查维度和每个健康检查维度下的一个或多个健康检查项,并从所述数据库和所述数据库所在的服务器中,获取所述一个或多个健康检查项对应的数据库信息;
通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,并根据所述一个或多个健康检查项的分析结果,生成所述多个健康检查维度的健康检查结果;
根据所述多个健康检查维度的健康检查结果和所述一个或多个健康检查项的分析结果,生成针对所述数据库的优化策略。
2.根据权利要求1所述的方法,其特征在于,还包括:
响应于用户操作,按照所述优化策略对所述数据库进行优化。
3.根据权利要求1或2所述的方法,其特征在于,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为主键索引检查项的情况下,根据所述数据库信息判断所述数据库下数据表是否设置有主键;
根据所述数据库下数据表是否设置有主键的判断结果,生成所述主键索引检查项的分析结果。
4.根据权利要求1或2所述的方法,其特征在于,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为CPU使用率检查项的情况下,根据所述数据库信息确定CPU使用率大于预设使用率的累计时长;
判断所述累计时长是否大于预设时长;
根据所述累计时长是否大于预设时长的判断结果,生成所述CPU使用率检查项的分析结果。
5.根据权利要求1或2所述的方法,其特征在于,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为死锁情况检查项的情况下,根据所述数据库信息确定预设时间区间内出现死锁情况的死锁次数;
判断所述死锁次数是否大于预设次数;
根据所述死锁次数是否大于预设次数的判断结果,生成所述死锁情况检查项的分析结果。
6.根据权利要求1或2所述的方法,其特征在于,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为二进制日志检查项的情况下,根据所述数据库信息对二进制日志进行以下任一种或多种判断:
目标参数是否设置为指定值、目标日志占用磁盘空间的比例是否大于预设比例、目标日志的增长速度是否大于预设速度;
根据所述二进制日志的判断结果,生成所述二进制日志检查项的分析结果。
7.根据权利要求1或2所述的方法,其特征在于,所述通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,包括:
在所述健康检查项为弱密码检查项的情况下,根据所述数据库信息判断当前密码是否与预置密码库中的密码相匹配;
根据所述当前密码是否与预置密码库中的密码相匹配的判断结果,生成所述弱密码检查项的分析结果。
8.一种数据库运维的装置,其特征在于,包括:
数据库信息获取模块,用于创建针对所述数据库的多个健康检查维度和每个健康检查维度下的一个或多个健康检查项,并从所述数据库和所述数据库所在的服务器中,获取所述一个或多个健康检查项对应的数据库信息;
健康检查结果生成模块,用于通过对所述数据库信息进行分析,得到所述一个或多个健康检查项的分析结果,并根据所述一个或多个健康检查项的分析结果,生成所述多个健康检查维度的健康检查结果;
优化策略生成模块,用于根据所述多个健康检查维度的健康检查结果和所述一个或多个健康检查项的分析结果,生成针对所述数据库的优化策略。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的数据库运维的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的数据库运维的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310929397.1A CN117131005A (zh) | 2023-07-26 | 2023-07-26 | 一种数据库运维的方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310929397.1A CN117131005A (zh) | 2023-07-26 | 2023-07-26 | 一种数据库运维的方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117131005A true CN117131005A (zh) | 2023-11-28 |
Family
ID=88861865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310929397.1A Pending CN117131005A (zh) | 2023-07-26 | 2023-07-26 | 一种数据库运维的方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117131005A (zh) |
-
2023
- 2023-07-26 CN CN202310929397.1A patent/CN117131005A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4318643B2 (ja) | 運用管理方法、運用管理装置および運用管理プログラム | |
CN110088744B (zh) | 一种数据库维护方法及其系统 | |
US20100262866A1 (en) | Cross-concern code coverage assessment | |
CN112214411B (zh) | 一种容灾系统测试方法、装置、设备及存储介质 | |
US10467590B2 (en) | Business process optimization and problem resolution | |
CN109165121B (zh) | 恢复被误操作的数据的方法及系统 | |
WO2023071039A1 (zh) | 一种故障诊断方法、装置、设备及可读存储介质 | |
CN112540887A (zh) | 故障演练方法、装置、电子设备及存储介质 | |
CN114116422A (zh) | 一种硬盘日志分析方法、硬盘日志分析装置及存储介质 | |
US8543552B2 (en) | Detecting statistical variation from unclassified process log | |
CN110363381B (zh) | 一种信息处理方法和装置 | |
CN117370469A (zh) | 用于在大数据环境中高效数据复制的方法和系统 | |
CN109086094B (zh) | 应用服务自启动的方法、系统、装置及存储介质 | |
CN111090395B (zh) | 一种用于会计行业的电子信息智能存储系统 | |
CN109933798B (zh) | 一种审计日志分析方法及装置 | |
CN117131005A (zh) | 一种数据库运维的方法、装置、电子设备及介质 | |
CN111475556A (zh) | 一种数据采集方法、设备、服务器及可读存储介质 | |
CN111694724A (zh) | 分布式表格系统的测试方法、装置、电子设备及存储介质 | |
CN115186001A (zh) | 一种补丁处理方法和装置 | |
CN114629786A (zh) | 日志实时分析方法、装置、存储介质及系统 | |
CN113312320A (zh) | 一种获取用户操作数据库行为的方法和系统 | |
CN113626236A (zh) | 一种分布式文件系统的故障诊断方法、装置、设备及介质 | |
CN113760856A (zh) | 数据库管理方法及装置、计算机可读存储介质、电子设备 | |
KR102668324B1 (ko) | 인터페이스 관리 방법, 인터페이스 거버넌스 시스템, 및 인터페이스를 관리하는, 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체 | |
Ye et al. | Criticality analysis for cots software components |
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 |