一种释放数据库空间的方法和系统与流程

文档序号:12465176阅读:171来源:国知局
一种释放数据库空间的方法和系统与流程

本发明主要涉及数据库处理技术领域,具体涉及一种释放数据库空间的方法和系统。



背景技术:

系统中对数据库增加及删除的设计方案直接关系到整个系统存储容量空间是否能正常的运行,例如,车辆卡口的应用系统,用于记录过车图片,采用mongoDB块文件存储机制,每天卡口过车总量约8-15万不等,每条过车记录产生的过车图片、车牌图片大小为0.3M,3个月的记录大约在1100万左右,合计图片大小约3.3T。出于磁盘空间的限制,只保存数据3个月,超过3个月的数据和图片需要清理,清除历史数据后,但mongoDB数据文件依然占据原来存储空间的大小,导致数据磁盘空间无法被释放,从而新数据无法继续存储,影响到系统正常使用。



技术实现要素:

本发明所要解决的技术问题是提供一种释放数据库空间的方法和系统,能够根据设定的时间要求自行删除在前的数据库,解决了原存储空间无法释放的问题,从而确保系统长期正常运行。

本发明解决上述技术问题的技术方案如下:一种释放数据库空间的方法,包括如下步骤:

步骤S1:接收待存储数据,并记录待存储数据的接收时间;

步骤S2:根据设置的创建规则和记录的接收时间确定是否创建新数据库,如果创建新数据库,则将待存储数据存入新数据库,否则存入原数据库;

步骤S3:根据预设的时间格式设置已创建的数据库的标签;

步骤S4:建立数据库列表,并根据标签中的时间信息将数据库进行排序;

步骤S5:根据预定的数据库删除参数将排序在前的n个数据库进行删除,来释放数据库存储空间,其中n为正整数。

本发明的有益效果是:通过接收数据的时间,自动判断是否创建新数据库,并能够根据设定的数据库删除参数自行删除在前多个数据库,保持现有数据库数量处于恒定状态,并解决了原存储空间无法释放的问题,从而确保应用系统长期正常运行,不受存储空间限制。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,所述步骤S2包括:

步骤S201:设置创建规则,所述创建规则为属于同一接收数据周期内可创建x个数据库,其中x为预设的数据库创建数量,x为正整数;

步骤S202:根据创建规则和本次待存储数据的接收时间来判断是否创建新数据库,如果本次接收时间与最近一次接收数据的时间属于所述设定的同一接收数据周期内,则不创建数据库,将待存储数据存入原数据库,否则创建新数据库,将待存储数据存入新数据库。

采用上述进一步方案的有益效果是:能够根据需要来设定某个周期内是否创建新数据库以及创建数据库的数量。

进一步,所述步骤S3中,所述标签的格式为“数据库名_年月日”。

采用上述进一步方案的有益效果是:该标签的格式便于后期对标签排序和管理数据库。

进一步,所述步骤S4中,根据标签中的时间信息将数据库进行升序排序。

采用上述进一步方案的有益效果是:可将创建的日期较早的数据库排序在前面,便于后期对数据库进行删除。

进一步,所述步骤S5包括:

步骤S501:对数据库删除参数进行设定,所述数据库删除参数包括预定时间期限和预定剩余数据库数量;

步骤S502:在排序后的数据库列表中筛选符合预定时间期限的数据库的标签;

步骤S503:根据预定剩余数据库数量计算出删除数量n,并根据删除数量n从符合预定时间期限的数据库的标签中找到排序在前的n个数据库的标签,并将所述标签对应的数据库进行删除,来释放数据库存储空间。

采用上述进一步方案的有益效果是:根据预定剩余数据库数量,将日期在前的不需要的数据库进行删除,从而保持现有数据库数量处于恒定状态,利于系统长期运行,不受存储空间限制。

进一步,所述步骤S503中,根据预定剩余数据库数量计算出删除数量n的具体方法为:统计数据库列表中所有数据库的数量a,并根据公式a-b=n,得到需删除数据库的删除数量n,其中,b表示预定剩余数据库数量。

采用上述进一步方案的有益效果是:能够快速的计算出需删除数据库数量。

本发明解决上述技术问题的另一技术方案如下:一种释放数据库空间的系统,包括:

时间记录模块,用于接收待存储数据,并记录待存储数据的接收时间;

数据库创建模块,用于根据设置的创建规则和记录的接收时间确定是否创建新数据库,如果创建新数据库,则将待存储数据存入新数据库,否则存入原数据库;

标签设置模块,用于根据预设的时间格式设置已创建的数据库的标签;

排序模块,用于建立数据库列表,并根据标签中的时间信息将数据库进行排序;

数据库删除模块,用于根据预定的数据库删除参数将排序在前的n个数据库进行删除,来释放数据库存储空间,其中n为正整数。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,所述数据库创建模块包括:

规则创建单元,用于设置创建规则,所述创建规则为属于同一接收数据周期内可创建x个数据库,其中x为预设的数据库创建数量,x为正整数;

数据库创建单元,用于根据创建规则和本次待存储数据的接收时间来判断是否创建新数据库,如果本次接收时间与最近一次接收数据的时间属于所述设定的同一接收数据周期内,则不创建数据库,将待存储数据存入原数据库,否则创建新数据库,将待存储数据存入新数据库。

进一步,所述数据库删除模块包括:

参数设定单元,用于对数据库删除参数进行设定,所述数据库删除参数包括预定时间期限和预定剩余数据库数量;

筛选单元,用于在排序后的数据库列表中筛选符合预定时间期限的数据库的标签;

数据库删除单元,用于根据预定剩余数据库数量计算出删除数量n,并根据删除数量n从符合预定时间期限的数据库的标签中找到排序在前的n个数据库的标签,并将所述标签对应的数据库进行删除,来释放数据库存储空间。

进一步,所述数据库删除单元中,根据预定剩余数据库数量计算出删除数量n的具体方法为:统计数据库列表中所有数据库的数量a,并根据公式a-b=n,得到需删除数据库的删除数量n,其中,b表示预定剩余数据库数量。

附图说明

图1为本发明实施例提供的释放数据库空间的方法实施例的方法流程图;

图2为本发明实施例提供的释放数据库空间的系统实施例的模块框图;

图3为本发明一实施例中数据库创建模块的模块框图;

图4为本发明一实施例中数据库删除模块的模块框图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

数据库增加与删除在应用系统中起着关键的作用,特别是一种车辆卡口的应用系统,其用于记录过车图片,每天存储上万条过车图片,目前采用mongoDB块文件存储机制。mongoDB块文件存储机制为:mongoDB数据库在数据存储时为避免产生过多磁盘碎片,采用块存储的机制,即预先在硬盘中申请一个文件块用于存储数据(默认2G大小,如启动参数中加入-smallfile则为500M左右),随着存储的数据量的递增原有的数据文件块使用完后再重新向磁盘申请空间,创建新的数据文件块,当MongoDB数据库对存储的数据进行删除操作时,相应的被删除的数据在文件块中会被MongoDB数据库服务做已删除的标记,而新的数据写入以后,必须完全跟数据文件块中原有被删除数据所占用的空间一样大小才能复用,否则,新插入的一条数据,跟原来被删除的任何一条历史数据所占空间不一样时,新插入数据会占据数据文件块中新的存储空间,由于新数据或者车辆图片大小,无法确保跟历史数据一样大,结果就导致新插入的数据和图片不断申请并占用新的文件块,当硬盘空间不足时,就无法继续存入数据。当对mongoDB中的数据库做DropDataBase操作(MongoDB数据库的删除数据库操作命令)以后,数据库对应的文件块才被从硬盘中删除,基于上述mongoDB的存储机制,本发明根据数据存储时间来对应用系统中存储机制进行改机,根据数据存储时间来对数据库的新增与删除进行合理设计,从而确保应用系统长期正常运行,不受存储空间限制。

图1为本发明实施例提供的释放数据库空间的方法实施例的方法流程图。如图1所示,一种释放数据库空间的方法,包括如下步骤:

步骤S1:接收待存储数据,并记录待存储数据的接收时间;例如,待存储数据为过车卡口处拍摄的车辆图片;

步骤S2:根据设置的创建规则和记录的接收时间确定是否创建新数据库,如果创建新数据库,则将待存储数据存入新数据库,否则存入原数据库;

步骤S3:根据预设的时间格式设置已创建的数据库的标签;

步骤S4:建立数据库列表,并根据标签中的时间信息将数据库进行排序;

步骤S5:根据预定的数据库删除参数将排序在前的n个数据库进行删除,来释放数据库存储空间,其中n为正整数。

上述实施例中,通过接收数据的时间,自动判断是否创建新数据库,并能够根据设定的数据库删除参数自行删除在前多个数据库,保持现有数据库数量处于恒定状态,并解决了原存储空间无法释放的问题,从而确保系统长期正常运行,不受存储空间限制。

可选地,作为本发明的一个实施例,所述步骤S2包括:

步骤S201:设置创建规则,所述创建规则为属于同一接收数据周期内可创建x个数据库,其中x为预设的数据库创建数量,x为正整数;例如,同一天只创建一个数据库;

步骤S202:根据创建规则和本次待存储数据的接收时间来判断是否创建新数据库,如果本次接收时间与最近一次接收数据的时间属于所述设定的同一接收数据周期内,则不创建数据库,将待存储数据存入原数据库,否则创建新数据库,将待存储数据存入新数据库。

上述实施例中,能够根据需要来设定某个周期内是否创建新数据库以及创建数据库的数量。

具体的,在所述步骤S3中,所述标签的格式为“数据库名_年月日”。该标签的格式便于后期对标签排序和管理数据库。例如,vehicleimg_yyyymmdd,vehicleimg为数据库名,yyyymmdd为年月日。

具体的,所述步骤S4中,根据标签中的时间信息将数据库进行升序排序。可将创建的日期较早的数据库排序在前面,便于后期对数据库进行删除。

可选地,作为本发明的一个实施例,所述步骤S5包括:

步骤S501:对数据库删除参数进行设定,所述数据库删除参数包括预定时间期限和预定剩余数据库数量;

步骤S502:在排序后的数据库列表中筛选符合预定时间期限的数据库的标签;例如,预定时间期限为最近90天内,则筛选出排序在前的最近90天内创建的数据库的标签;

步骤S503:根据预定剩余数据库数量计算出删除数量n,并根据删除数量n从符合预定时间期限的数据库的标签中找到排序在前的n个数据库的标签,并将所述标签对应的数据库进行删除,来释放数据库存储空间。

上述实施例中,根据预定剩余数据库数量,将日期在前的不需要的数据库进行删除,从而保持现有数据库数量处于恒定状态,利于系统长期运行,不受存储空间限制。

可选地,作为本发明的一个实施例,所述步骤S503中,根据预定剩余数据库数量计算出删除数量n的具体方法为:统计数据库列表中所有数据库的数量a,并根据公式a-b=n,得到需删除数据库的删除数量n,其中,b表示预定剩余数据库数量。

上述实施例中,能够快速的计算出需删除数据库数量。

图2为本发明实施例提供的释放数据库空间的系统实施例的模块框图。如图2所示,一种释放数据库空间的系统,包括:时间记录模块,用于接收待存储数据,并记录待存储数据的接收时间;数据库创建模块,用于根据设置的创建规则和记录的接收时间确定是否创建新数据库,如果创建新数据库,则将待存储数据存入新数据库,否则存入原数据库;标签设置模块,用于根据预设的时间格式设置已创建的数据库的标签;排序模块,用于建立数据库列表,并根据标签中的时间信息将数据库进行排序;数据库删除模块,用于根据预定的数据库删除参数将排序在前的n个数据库进行删除,来释放数据库存储空间,其中n为正整数。

具体的,在标签设置模块中,所述标签的格式为“数据库名_年月日”。该标签的格式便于后期对标签排序和管理数据库。

具体的,在排序模块中,根据标签中的时间信息将数据库进行升序排序。可将创建的日期较早的数据库排序在前面,便于后期对数据库进行删除。

可选地,作为本发明的一个实施例,如图3所示,所述数据库创建模块包括:规则创建单元,用于设置创建规则,所述创建规则为属于同一接收数据周期内可创建x个数据库,其中x为预设的数据库创建数量,x为正整数;数据库创建单元,用于根据创建规则和本次待存储数据的接收时间来判断是否创建新数据库,如果本次接收时间与最近一次接收数据的时间属于所述设定的同一接收数据周期内,则不创建数据库,将待存储数据存入原数据库,否则创建新数据库,将待存储数据存入新数据库。

上述实施例中,能够根据需要来设定某个周期内是否创建新数据库以及创建数据库的数量。

可选地,作为本发明的一个实施例,如图4所示,所述数据库删除模块包括:参数设定单元,用于对数据库删除参数进行设定,所述数据库删除参数包括预定时间期限和预定剩余数据库数量;筛选单元,用于在排序后的数据库列表中筛选符合预定时间期限的数据库的标签;数据库删除单元,用于根据预定剩余数据库数量计算出删除数量n,并根据删除数量n从符合预定时间期限的数据库的标签中找到排序在前的n个数据库的标签,并将所述标签对应的数据库进行删除,来释放数据库存储空间。

上述实施例中,根据预定剩余数据库数量,将日期在前的不需要的数据库进行删除,从而保持现有数据库数量处于恒定状态,利于系统长期运行,不受存储空间限制。

可选地,作为本发明的一个实施例,所述数据库删除单元中,根据预定剩余数据库数量计算出删除数量n的具体方法为:统计数据库列表中所有数据库的数量a,并根据公式a-b=n,得到需删除数据库的删除数量n,其中,b表示预定剩余数据库数量。

上述实施例中,能够快速的计算出需删除数据库数量。

本发明通过接收数据的时间,自动判断是否创建新数据库,并能够根据设定的数据库删除参数自行删除在前多个数据库,保持现有数据库数量处于恒定状态,并解决了原存储空间无法释放的问题,从而确保系统长期正常运行,不受存储空间限制。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1