• 快捷搜索
  • 全站搜索

大型数据中心数据库表容量管理工具实现

2016-09-27 15:41:31作者:中国农业银行数据中心 张乾尊 耿辉编辑:金融咨询网
随着金融产品不断丰富,数据库管理系统的数量也在迅速增加。传统运维管理已不能满足精准分析和数据库评估需要。如何利用运维自动化工具对数据库系统进行精细化管理,成为亟待解决的问题。本文以农业银行数据中心为例,探讨数据库系统自动化运维管理方法的思路和实践。

随着金融产品不断丰富,数据库管理系统的数量也在迅速增加。传统运维管理通过监控软件对数据库级别的整体容量信息进行采集和监控,只能大致了解数据库整体性能,并无相应的监控采集分析工具对数据库内部细节变化进行追踪和分析,不利于系统管理员精准分析和评估数据库运行状况,导致生产运维中存在较大的潜在风险。如何利用运维自动化工具对数据库系统进行精细化管理,成为亟待解决的问题。本文以农业银行数据中心为例,探讨数据库系统自动化运维管理方法的思路和实践。
  
一、数据库管理现状

  在传统数据库运维管理模式下,系统运维人员通过两种方式获得数据库的运行状况。一是利用数据库实时监控工具,监控数据库整体运行层面的指标,包括数据库空问、数据库日志信息、查询事物的运行情况、数据库锁使用情况、内存和CPU使用情况、磁盘I/O等;二是对数据库系统进行周期性检查,先人工登录数据库系统采集数据库整体性能指标、数据库典型表或重要表的容量变化情况、数据库配置规范性、数据库日志变化等内容,再进行分析,进而发现数据库的潜在问题。

  长期以来,上述两种方式有效保障了数据库系统安全稳定运行,但由于数据库实例数量的不断增长和系统运行连续性要求的不断提高,现有工具已无法满足数据库运维管理的实际需求,主要表现在以下三个方面。

  首先,对于规模快速增长的数据库系统,采用传统运维管理模式需要运维人员大量重复手工操作,人力、时间成本较高,存在误操作风险和操作记录难以追溯等问题。

  其次,由于数据库实例数量的增加,定期巡检周期间隔较长,无法及时发现数据库表容量变化导致的问题:通常在数据库性能或功能已经出现问题后,才对数据库中各个表和配置参数进行排查分析,寻找触发问题的具体原因,这就无法保障问题事件处理的时效性。

  再次,数据库监控局限于整体情况、数据库空间、日志信息等数据库宏观运行指标,对数据库容量等微观指标变化没有进行有效监控。例如当数据库系统中个别表的记录数或占用空间情况发生变化时,会导致整个数据库系统性能急剧下降,管理员无法通过现有工具准确获取数据库表级别的使用情况和变化趋势,无法及时发现数据库表容量变化导致的问题。

  为解决以上三方面问题,需通过自动化表容量管理工具,实现对数据库系统表容量的自动化数据采集和分析,及时掌握数据库微观层面的动态变化.进一步提升运维管理精细化水平。
  
二、数据库容量管理工具

  农业银行数据中心通过对数据库相关系统表分析研究.开发了一种数据库容量管理工具。该工具通过编写数据库存储过程,定时采集信息并保存到数据库.进而形成由点到线的数据采样,并以图形化方式直观呈现数据库表和索引的变化趋势.实现对表容量的统计和管控。

  1.容量管理

  数据库用户表和索引的统计信息存储于相关系统表中,为满足数据库运维需要,农业银行数据中心设计了部分采集统计信息存储过程,即通过集中格式化存储至数据库,用于直观反映数据库系统中各个表和索引的统计信息。采集的信息可根据需要不断增加,易于扩展。

  如图1所示,数据库表采集信息包括表的行数(rowcount)、转移的行数(forwrowcnt)、已删除的行数(delrowcount)、表分配页数(oampagecn)、OAM页和表分配页数(oamapgcnt)、数据页聚簇度(dpcr)、表空间使用率(sput)。表的索引采集信息包括索引名称(index name)、索引数据页聚簇度(dpcr)、索引页聚簇度(ipcr)、索引空间使用率(sput)、索引页使用率(page utility)。

图片1.jpg

  如图2所示,每日在非业务高峰期,各数据库实例服务器由脚本自动调用执行上述存储过程,采集数据表信息和索引信息。通过自动化运维工具,将采集的信息自动发送至数据分析器,由分析器程序对数据进行处理,获得格式化的数据信息,再通过运维管理系统保存至性能数据库。数据库管理员根据需要使用图形化工具,按照设定的时间区问生成一个表容量的时间变化趋势图,清晰地展示数据库中表的各项指标的变化趋势,评估表的数据增长量对整个数据库实例的影响。

图片2.jpg

  该工具通过对相关数据采集进行脚本化处理,实现了自动化的数据采集和分析,在整个过程中无需人工干预,避免了误操作风险,确保了采集数据库信息的正确性,在节省人工成本的同时提高了运维效率。

  此外,该工具可根据实际运维需求,进行数据采集脚本的定制化开发,实现对数据库相关信息的全自动化采集。数据采集后,可按照实际需求开发历史采样数据的前端分析工具,通过分析工具清楚地查看各个数据库表和索引的变化趋势,有效提高数据库系统的自动化运维管理水平。

  2.表容量分析管理工具

   在日常运维过程中,常会接到某应用系统使用人员反映某业务查询功能返回结果缓慢、甚至出现超时的问题。众所周知,数据库中表和索引的微观变化不会立即影响整个数据库的性能,但随着业务量和时间的累计,这个影响终会显现。下面,通过数据库性能问题处置场景展示表容量管理工具的部分功能。

  (1)数据库表记录TOP 10

  如图3所示,通过工具查询该数据库实例中表记录数排名前10位的排序情况,显示前3张表的记录数比较大,达到了3000万级别。由于大容量表的存在可能会引起数据库表操作效率大幅下降,故通过分析前3张表一般可以直接找出影响数据库性能的原因。

图片3.jpg

   (2)表记录数变化趋势分析

  通过统计数据库实例中前3个表的记录数,形成一个表容量的变化趋势图(如图4所示)。

图片4.jpg

  图4显示了2014年8月表A、表B和表C三个数据库表记录数量的变化趋势,对其进行分析,结果见表1。

 图片5.jpg

  综上所述,表A记录数增长幅度比较大,可能存在问题,需对表A相关的索引指标进行进一步分析。

   (3)表索引空问利用率变化趋势分析

  针对上述业务查询功能返回结果缓慢、查询效率降低的问题,进一步关注影响数据库表查询效率相关指标。首先是表索引空间利用率指标,通过统计数据库表A的3个索引空间1个月的利用率情况,形成变化趋势(如图5所示)。

  图片6.jpg

  对图5进行分析后,得到分析结论(见表2)。

图片7.jpg

  经与应用人员确认,在8月20日该业务进行了分行推广,导致表A记录增加明显,但未自动对相关索引进行重组优化,致使索引B的空问利用率下降严重。针对这一问题,系统运维人员通过变更对本表实施了索引重组,应用人员验证后,确认问题解决。为了防止类似问题发生,系统运维人员选择非业务时问窗口对本表进行周期性的自动索引重组。
  
三、表容量管理工具展望

   目前,数据库表容量管理工具已在农业银行数据中心开放平台推广使用。系统运维人员通过该工具对数据库表容量变化情况进行多维度统计分析,发现潜在问题并及时解决,实现了数据库层面从被动运维向主动运维的深刻转变。该工具对数据库表各种统计指标进行采集和保存,实现了高效的统计分析,有助于系统运维人员及时分析解决问题,大大减少了问题影响时间,有效提高了问题处置效率。

  今后,数据库表相关统计指标采集方面,除了已采集的数据库表相关统计指标外,还可根据实际运维需求,有针对性地采集数据库表的其他微观指标,更为直观地反映数据库表运行趋势。在自动分析工具方面,在以时间维度为统计展示指标的基础上,后续将继续扩展和完善统计方式,逐步实现自动学习各统计指标周期性变化情况,最终实现对统计指标偏离合理变化区间的实时报警,实时关注数据库的运行状况,不断提高数据库系统的智能化、精细化管理水平。

(文章来源:《中国金融电脑》杂志)

扫码即可手机
阅读转发此文

本文评论

相关文章