基于shell脚本实现的数据库自动扩容方法及装置与流程

文档序号:11386730阅读:301来源:国知局
本发明涉及数据库扩容
技术领域
:,更具体地说,涉及一种基于shell脚本实现的数据库自动扩容方法及装置。
背景技术
::k-db数据库作为新兴产品,凭借强大的功能和稳定的性能受到越来越多客户的认可。现有的k-db数据库表空间扩容操作都是人工进行表空间使用率确认,当确认表空间使用率超过一定比例后,人工实现对应的扩容操作。可见,现有技术中整个扩容过程均为人工操作,如果工作人员由于某种原因未能及时对表空间使用率进行监控导致表空间写满,数据库就会hang住导致无法进行数据写入和业务处理。综上所述,现有技术中用于实现数据库扩容的技术方案存在可能出现由于工作人员未及时监控表空间使用率导致表空间写满,进而导致数据库无法正常工作的情况的问题。技术实现要素:本发明的目的是提供一种基于shell脚本实现的数据库自动扩容方法及装置,以解决现有技术中用于实现数据库扩容的技术方案存在的可能出现由于工作人员未及时监控表空间使用率导致表空间写满,进而导致数据库无法正常工作的情况的问题。为了实现上述目的,本发明提供如下技术方案:一种基于shell脚本实现的数据库自动扩容方法,包括:定期查询数据库中的表空间使用率,并在查询到大于使用率阈值的表空间使用率时确定该表空间使用率对应的表空间为待扩容表空间;确定所述待扩容表空间当前的数据文件存储路径及需要对所述待扩容表空间进行扩容的扩容容量;判断与所述数据文件存储路径对应的存储模块剩余容量是否大于或者等于所述扩容容量,如果是,则利用所述存储模块剩余容量实现所述待扩容表空间的扩容,如果否,则拒绝为所述待扩容表空间进行扩容。优选的,确定需要对所述待扩容表空间进行扩容的扩容容量,包括:确定所述待扩容表空间的容量大小与预设扩容比例的乘积为扩容容量。优选的,判断与所述数据文件存储路径对应的存储模块剩余容量是否大于或者等于所述扩容容量,包括:如果所述数据文件存储路径对应kas磁盘,则执行sql语句查询所述kas磁盘剩余容量,并判断该剩余容量是否大于或者等于所述扩容容量;如果所述数据文件存储路径对应文件系统,则执行os命令计算所述文件系统剩余容量,并判断该剩余容量是否大于或者等于所述扩容容量。优选的,确定出与所述数据文件存储路径对应的存储模块剩余容量小于所述扩容容量后,还包括:生成对应的异常告警信息,并将该异常告警信息发送至指定移动终端。优选的,生成对应的异常告警信息之后,还包括:将所述异常告警信息写入日志记录中以供查询。一种基于shell脚本实现的数据库自动扩容装置,包括:查询模块,用于:定期查询数据库中的表空间使用率,并在查询到大于使用率阈值的表空间使用率时确定该表空间使用率对应的表空间为待扩容表空间;确定模块,用于:确定所述待扩容表空间当前的数据文件存储路径及需要对所述待扩容表空间进行扩容的扩容容量;判断模块,用于:判断与所述数据文件存储路径对应的存储模块剩余容量是否大于或者等于所述扩容容量,如果是,则利用所述存储模块剩余容量实现所述待扩容表空间的扩容,如果否,则拒绝为所述待扩容表空间进行扩容。优选的,所述确定模块包括:确定单元,用于:确定所述待扩容表空间的容量大小与预设扩容比例的乘积为扩容容量。优选的,所述判断模块包括:判断单元,用于:如果所述数据文件存储路径对应kas磁盘,则执行sql语句查询所述kas磁盘剩余容量,并判断该剩余容量是否大于或者等于所述扩容容量;如果所述数据文件存储路径对应文件系统,则执行os命令计算所述文件系统剩余容量,并判断该剩余容量是否大于或者等于所述扩容容量。优选的,还包括:报警模块,用于:确定出与所述数据文件存储路径对应的存储模块剩余容量小于所述扩容容量后,生成对应的异常告警信息,并将该异常告警信息发送至指定移动终端。优选的,还包括:记录模块,用于:生成对应的异常告警信息之后,将所述异常告警信息写入日志记录中以供查询。本发明提供了一种基于shell脚本实现的数据库自动扩容方法及装置,其中该方法包括:定期查询数据库中的表空间使用率,并在查询到大于使用率阈值的表空间使用率时确定该表空间使用率对应的表空间为待扩容表空间;确定所述待扩容表空间当前的数据文件存储路径及需要对所述待扩容表空间进行扩容的扩容容量;判断与所述数据文件存储路径对应的存储模块剩余容量是否大于或者等于所述扩容容量,如果是,则利用所述存储模块剩余容量实现所述待扩容表空间的扩容,如果否,则拒绝为所述待扩容表空间进行扩容。本申请中通过shell脚本自动实现上述表空间使用率的查询及对应数据库扩容等步骤,从而实现了对于空间使用率的实时监控,避免了由于工作人员未及时监控表空间使用率导致表空间写满,进而导致数据库无法正常工作的情况出现,保证了数据库能够正常工作。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本发明实施例提供的一种基于shell脚本实现的数据库自动扩容方法的流程图;图2为本发明实施例提供的一种基于shell脚本实现的数据库自动扩容装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参阅图1,其示出了本发明实施例提供的一种基于shell脚本实现的数据库自动扩容方法的流程图,本申请中的数据库可以是k-db数据库,也可以是其他具有扩容需求的数据库,均在本发明的保护范围之内。上述方法可以包括:s11:定期查询数据库中的表空间使用率,并在查询到大于使用率阈值的表空间使用率时确定该表空间使用率对应的表空间为待扩容表空间。其中表空间使用率即为表空间中已经被占用的容量占该表空间全部容量的百分比;使用率阈值可以根据实际需要进行设定,如可以设定为95%。需要说明的是,定时查询数据库中的表空间使用率中的定时可以通过操作系统的定时任务功能实现,具体来说,可以根据数据库的业务繁忙程度定义定时查询表空间使用率的时间间隔,例如可以每隔十个小时执行一次查询表空间使用率的步骤,对应的执行语句可以包括:crontab–e00*/10***'/root/script/tbs_add.sh'2>&1>/dev/null以达到监控表空间使用率并在该使用率超标(即大于使用率与之)后直接扩容的目的。通过在shell脚本中编程进而利用编程得到的执行语句查询到表空间使用率之后,还可以对表空间使用率按照由大到小进行排列,从而可以由最大的表空间使用率开始依次判断其是否大于使用率阈值,确定出第一个不大于使用率阈值的表空间使用率,则可以确定排列在该表空间使用率之前的表空间使用率均大于使用率阈值,而排列在该表空间使用率之后的表空间使用率均不大于使用率阈值,从而大大加快了确定待扩容表空间的速度。s12:确定待扩容表空间当前的数据文件存储路径及需要对待扩容表空间进行扩容的扩容容量。需要说明的是,数据库的表空间是由一个或者多个数据文件构成的,一个或者多个数据文件的总大小即为表空间的容量大小,表空间是逻辑结构,数据文件是物理介质。本申请中确定待扩容表空间当前的数据文件存储路径也即确定出构成待扩容表空间的数据文件的存储路径,具体来说,如果本申请中的数据库指k-db数据库,则可以通过k-db数据库的dbms_metadata.get_ddl函数获取待扩容表空间的数据文件存储位置(也即数据文件存储路径),然后通过shell编程中的字符截取功能获取待扩容表空间的数据文件存储位置及类型,例如:通过dbms_metadata.get_ddl获取待扩容表空间的数据文件存储位置为+data/orcl/datafile/test.dbf;在shell编程中将作如下编程:var=`+data/orcl/datafile/test.dbf`;通过字符串截取功能可得到数据文件的存储路径:echo${var%/*},截取后结果为+data/orcl/datafile。而扩容容量可以根据实际需要进行设定,可以是预先设定的一个数值,也可以是根据待扩容表空间的全部容量设定的数值,均在本发明的保护范围之内。s13:判断与数据文件存储路径对应的存储模块剩余容量是否大于或者等于扩容容量,如果是,则利用存储模块剩余容量实现待扩容表空间的扩容,如果否,则拒绝为待扩容表空间进行扩容。由数据文件存储路径确定出数据文件存储在哪个存储模块中,进而判断该存储模块未被占用的剩余容量是否大于或者等于扩容容量,也即存储模块的剩余容量是否足够支持待扩容表空间的扩容,如果是,则直接利用存储模块的这部分剩余实现待扩容表空间的扩容,如果否,则拒绝为待扩容表空间扩容。其中实现扩容的sql语句可以是:altertablespacetestadddatafile‘+data/orcl/datafile/待扩容表空间的名称+时间戳’size待扩容表空间的容量大小/5mb。本申请中通过shell脚本自动实现上述表空间使用率的查询及对应数据库扩容等步骤,从而实现了对于空间使用率的实时监控,避免了由于工作人员未及时监控表空间使用率导致表空间写满,进而导致数据库无法正常工作的情况出现,保证了数据库能够正常工作。具体来说,通过部署本申请公开的上述技术方案,可以实现数据库扩容的全程自动化运维,在对应存储模块剩余容量足够支持扩容的情况下无需人工干预;其次可以通过结合操作系统的crontab定时任务功能周期性的调用shell脚本实现表空间使用率的查询,从而做到及时监控,以在表空间不足后就可以快速发现并及时扩容,避免因表空间不足造成的数据库hang死的现象。另外在完成对待扩容表空间的扩容后,还可以查询该待扩容表空间当前的表空间使用率,并判断该表空间使用率是否大于使用率阈值,如果是,则说明扩容失败,需要再次扩容或者通知工作人员进行处理,如果否,则说明扩容成功。本发明实施例提供的一种基于shell脚本实现的数据库自动扩容方法,确定需要对待扩容表空间进行扩容的扩容容量,可以包括:确定待扩容表空间的容量大小与预设扩容比例的乘积为扩容容量。需要说明的是,预设扩容比例可以根据实际需要进行设定,如可以设定为20%,从而实现有效扩容。本发明实施例提供的一种基于shell脚本实现的数据库自动扩容方法,判断与数据文件存储路径对应的存储模块剩余容量是否大于或者等于扩容容量,可以包括:如果数据文件存储路径对应kas磁盘,则执行sql语句查询kas磁盘剩余容量,并判断该剩余容量是否大于或者等于扩容容量;如果数据文件存储路径对应文件系统,则执行os命令计算文件系统剩余容量,并判断该剩余容量是否大于或者等于扩容容量。需要说明的是,针对k-db数据库,其建库有裸设备、文件系统和kas磁盘建库三种方式,但是因为裸设备建库方式当扩容表空间时,需要手动增加裸设备所以无法实现裸设备建库方式表空间的自动库容;因此本申请主要适用于基于文件系统和kas磁盘方式建库的k-db数据库的表空间自动扩容。其中可以通过数据文件存储路径判断其存储在上述哪种存储模块中,如果数据文件存储路径是“+”开头则说明其对应kas磁盘,也即数据文件存储在kas磁盘中,否则则说明其对应文件系统,也即数据文件存储在文件系统中,进而按照本实施例中提供的上述方式针对不同的存储模块实现剩余容量的查询及对应判断,有效保证了本申请公开的技术方案的顺利实现。本发明实施例提供的一种基于shell脚本实现的数据库自动扩容方法,确定出与数据文件存储路径对应的存储模块剩余容量小于扩容容量后,还可以包括:生成对应的异常告警信息,并将该异常告警信息发送至指定移动终端。异常告警信息可以包括有存储模块剩余容量及扩容容量,从而能够使得与预先根据实际需要指定的指定移动终端对应的工作人员及时获知到对应告警,进而执行对应的处理。本发明实施例提供的一种基于shell脚本实现的数据库自动扩容方法,生成对应的异常告警信息之后,还可以包括:将异常告警信息写入日志记录中以供查询。将异常告警信息写入日志记录中可以供工作人员随时查询,此时异常告警信息可以包括存储模块剩余容量、扩容容量及当前时间等。本发明实施例还提供了一种基于shell脚本实现的数据库自动扩容装置,如图2所示,可以包括:查询模块11,用于:定期查询数据库中的表空间使用率,并在查询到大于使用率阈值的表空间使用率时确定该表空间使用率对应的表空间为待扩容表空间;确定模块12,用于:确定待扩容表空间当前的数据文件存储路径及需要对待扩容表空间进行扩容的扩容容量;判断模块13,用于:判断与数据文件存储路径对应的存储模块剩余容量是否大于或者等于扩容容量,如果是,则利用存储模块剩余容量实现待扩容表空间的扩容,如果否,则拒绝为待扩容表空间进行扩容。本发明实施例提供的一种基于shell脚本实现的数据库自动扩容装置,确定模块可以包括:确定单元,用于:确定待扩容表空间的容量大小与预设扩容比例的乘积为扩容容量。本发明实施例提供的一种基于shell脚本实现的数据库自动扩容装置,判断模块可以包括:判断单元,用于:如果数据文件存储路径对应kas磁盘,则执行sql语句查询kas磁盘剩余容量,并判断该剩余容量是否大于或者等于扩容容量;如果数据文件存储路径对应文件系统,则执行os命令计算文件系统剩余容量,并判断该剩余容量是否大于或者等于扩容容量。本发明实施例提供的一种基于shell脚本实现的数据库自动扩容装置,还可以包括:报警模块,用于:确定出与数据文件存储路径对应的存储模块剩余容量小于扩容容量后,生成对应的异常告警信息,并将该异常告警信息发送至指定移动终端。本发明实施例提供的一种基于shell脚本实现的数据库自动扩容装置,还可以包括:记录模块,用于:生成对应的异常告警信息之后,将异常告警信息写入日志记录中以供查询。本发明实施例提供的一种基于shell脚本实现的数据库自动扩容装置中相关部分的说明请参见本发明实施例提供的一种基于shell脚本实现的数据库自动扩容方法中对应部分的详细说明,在此不再赘述。另外本申请公开的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1