一种用于数据库服务器的运维管理系统和方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及一种用于数据库服务器的运维管理系统和方法。
【背景技术】
[0002]随着业务量的剧增,企业服务器数量越来越多,当服务器到达几百台甚至上千台之后,服务器日常管理也逐渐繁杂。每天如果通过人工去频繁的更新或者部署及管理这些服务器,势必会浪费大量的时间,而且人为的操作也会造成某些疏忽和遗漏。依靠纯手工,重复的进行数据库软件的部署与维护、管理,耗费大量的人力物力,效率却不高;人工大量部署的时候,难免造成某些疏忽和遗漏,严重影响数据库环境的质量,可能直接导致生产环境异常;缺乏高效的运维管理工具,有时候即使加班加点地维护、部署、管理,也经常会因设备出现故障而导致业务的中断,严重影响企业的正常运转。
【发明内容】
[0003]本发明的目的在于提供一种用于数据库服务器的运维管理系统和方法以通过一种自动化的方式来实现对数据库服务器的运维管理。
[0004]本发明为了达到上述目的,采用的技术方案是:一种用于数据库服务器的运维管理系统,其特征在于,包括前端用户界面、后端业务处理模块和配置中心数据库,所述后端业务处理模块连接于所述前端用户界面,所述配置中心数据库连接于所述后端业务处理模块,其中,用户在所述前端用户界面的输入触发所述后端业务处理模块调用后端处理函数来对数据库服务器执行远程操作,并返回操作结果显示在所述前端用户界面,所述配置中心数据库用于存储所述后端处理函数。
[0005]优选地,还包括任务调度模块,用于处理定时任务。
[0006]优选地,还包括报警模块,用于当所述操作结果为不成功时,发送报警邮件。
[0007]优选地,所述后端业务处理模块调用paramiko类来对所述数据库服务器执行所述远程操作。
[0008]优选地,所述前端用户界面和所述后端业务处理模块之间通过ajax技术进行交互通信。
[0009]相应地,本发明还提供一种用于数据库服务器的运维管理方法,其特征在于,包括以下步骤:
[0010]步骤S1:前端用户界面接收来自用户的输入;
[0011]步骤S2:所述用户的所述输入触发后端业务处理模块调用后端处理函数来对数据库服务器执行远程操作;
[0012]步骤S3:所述数据库服务器将所述远程操作的操作结果返回并显示在所述前端用户界面。
[0013]优选地,所述运维管理方法还包括处理定时任务的步骤。
[0014]优选地,所述运维管理方法还包括当所述操作结果为不成功时,发送报警邮件的步骤。
[0015]优选地,所述后端业务处理模块调用paramiko类来对所述数据库服务器执行所述远程操作。
[0016]优选地,所述前端用户界面和所述后端业务处理模块之间通过ajax进行交互通
?目Ο
[0017]实施本发明实施例,具有如下有益效果:本发明提供的用于数据库服务器的运维管理系统和方法,把DBA从繁琐的基于Shell的例行操作中解放出来,节省公司的人力成本,提高工作效率;以平台化,标准化操作去规范化处理和跟踪指南,减少手工在生产环境执行的疏忽,使运维的工作更加规范化;有详细的报错提醒和运行环境性能指标的查询功能,方便问题的跟踪和处理;同时针对开发,提供了 self-service功能,包括mysql慢查询查看,DDL半自动审核入库等功能。
【附图说明】
[0018]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019]图1为本发明一实施例提供的用于数据库服务器的运维管理系统的结构框图。
[0020]图2为本发明一实施例提供的用于数据库服务器的运维管理系统的结构框图。
[0021]图3为本发明一实施例提供的用于数据库服务器的运维管理方法的流程图。
【具体实施方式】
[0022]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0023]图1为本发明一实施例提供的用于数据库服务器的运维管理系统的结构框图。如图1所示,用于数据库服务器的运维管理系统100包括前端用户界面110、后端业务处理模块120和配置中心数据库130,所述后端业务处理模块120连接于所述前端用户界面110,所述配置中心数据库130连接于所述后端业务处理模块120,其中,用户在所述前端用户界面110的输入触发所述后端业务处理模块120调用后端处理函数来对数据库服务器执行远程操作,并返回操作结果显示在所述前端用户界面110,所述配置中心数据库130用于存储所述后端处理函数。
[0024]具体地,在本实施例中,前端用户界面110采用html界面,通过Bootstrap布局,并jinjia2模板。
[0025]进一步地,在本实施例中,前端用户界面110和后端业务处理模块120之间通过ajax进行交互通信。AJAX是一种用于创建快速动态网页的技术,通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新,这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新,传统的网页(不使用AJAX)如果需要更新内容,必须重载整个网页页面。
[0026]进一步地,所述后端业务处理模块120调用paramiko类来对所述数据库服务器执行所述远程操作。其中,数据库服务器是指在数据中心注册的Mysql服务器。对线上数据库基于安全方面的考虑,这里没有采用mysql-h的方式来执行远程操作,而是采用paramiko类,基于SSH 0S认证,远程到本机执行相关操作,执行完后,不论对错,都将执行结果,返回给flask html前端界面。
[0027]进一步地,后端业务处理模块通过paramiko类来对所述数据库服务器执行所述远程操作可以实现以下功能:
[0028]1.DB用户授权:为常用的业务使用mysql添加DB账号的授权;
[0029]2.DB和表的迀移:实现Mysql的数据库和表在多个server的迀移;
[0030]3.DBA DML和DDL操作:DBA可以在前端用户界面上进行数据定义和数据操作;
[0031]4.开发DDL提交和DBA审核入库:在前端用户界面上提交DDL入库申请,系统会自动初步审核DDL是否符合Mysql平台规范,若不规范,会提示不规范原因。若符合规范,开发环境自动入库,若是线上环境,DBA会收到申请邮件,然后在界面上完成实际入库操作,并自动邮件通知开发已完成;
[0032]5.慢查询日志查询功能:提供在前端用户界面上针对域和数据库服务器的Mysql慢查询日志查询和汇总功能;
[0033]6.DB备份管理:代替crontab以Schedule调度中心的模式,去集中管理Mysql的备份,包括备份设置(备份时间周期和备份方法),备份成功或失败日志查看,备份消耗时间等;
[0034]图2为本发明一实施例提供的用于数据库服务器的运维管理系统的结构框图。如图2所示,用于数据库服务器的运维管理系统100还包括任务调度模块140,用于处理定时任务,例如,数据库备份和远端的数据抽取等,其通过Apscheduler定时任务框架来实现。
[0035]进一步地,用于数据库服务器的运维管理系统100还包括报警模块(未示出),用于当所述操作结果为不成功时,发送报警邮件。
[0036]有利地,本发明提供的用于数据库服务器的运维管理系统,把DBA从繁琐的基