一种SQLServer数据库的日志优化方法及系统与流程

文档序号:11155229阅读:755来源:国知局
一种SQL Server数据库的日志优化方法及系统与制造工艺

本发明涉及SQL Server数据库技术领域,更具体地说,涉及一种SQL Server数据库的日志优化方法及系统。



背景技术:

SQL Server数据库广泛用于各种应用数据处理,但是由于SQL Sever数据库日志增加过快,导致大量占用磁盘空间,对磁盘空间造成无效使用。目前解决此问题最常用方式为将历史数据删除来减小日志,但是这种方式,不能满足用户日后对日志查找的需求。

因此,如何实现减小SQL Server数据库日志,指导企业IT运维人员对SQL Server更好维护,更加有效利用磁盘空间使用是本领域技术人员需要解决的问题。



技术实现要素:

本发明的目的在于提供一种SQL Server数据库的日志优化方法及系统,以实现减小SQL Server数据库日志,指导企业IT运维人员对SQL Server更好的维护,更加有效利用磁盘空间。

为实现上述目的,本发明实施例提供了如下技术方案:

一种SQL Server数据库的日志优化方法,包括:

创建目标数据库,停止运行原始数据库和所述目标数据库;所述原始数据库和所述目标数据库的类型均为SQL Server数据库;

删除所述目标数据库的log文件,并以所述原始数据库的mdf文件替换所述目标数据库的mdf文件;

启动所述目标数据库,对所述目标数据库的物理和逻辑一致性进行检查,若所述目标数据库不存在一致性问题,则将所述目标数据库替换所述原始数据库。

其中,所述创建目标数据库之前,还包括:

判断所述原始数据库的log文件所占内存值是否大于预定阈值;若是,则执行所述创建目标数据库的步骤。

其中,将所述目标数据库替换所述原始数据库之后,还包括:

生成所述原始数据库被所述目标数据库替换的提示信息,并将所述提示信息发送至预定终端。

其中,启动所述目标数据库之后,将所述目标数据库的状态设置为置疑;检查所述目标数据库不存在一致性问题后,将所述目标数据库的状态设置为正常。

其中,将所述目标数据库的状态设置为置疑之后,允许对所述目标数据库的系统目录进行修改;将所述原始数据库的状态设置为正常之后,拒绝对所述目标数据库的系统目录进行修改。

其中,将所述目标数据库替换所述原始数据库之后,还包括:

将所述原始数据库中的log文件进行压缩存储。

一种SQL Server数据库的日志优化系统,包括:

创建模块,用于创建目标数据库,停止运行原始数据库和所述目标数据库;所述原始数据库和所述目标数据库的类型均为SQL Server数据库;

删除模块,用于删除所述目标数据库的log文件;

替换模块,用于以所述原始数据库的mdf文件替换所述目标数据库的mdf文件;

检查模块,用于启动所述目标数据库,对所述目标数据库的物理和逻辑一致性进行检查,若所述目标数据库不存在一致性问题,则将所述目标数据库替换所述原始数据库。

其中,还包括:

判断模块,用于判断所述原始数据库的log文件所占内存值是否大于预定阈值;若是,则触发所述创建模块。

其中,还包括:

生成模块,用于生成所述原始数据库被所述目标数据库替换的提示信息;

发送模块,用于将所述提示信息发送至预定终端。

其中,还包括:

压缩模块,用于将所述原始数据库中的log文件进行压缩存储。

通过以上方案可知,本发明实施例提供的一种SQL Server数据库的日志优化方法及系统,包括:创建目标数据库,停止运行原始数据库和所述目标数据库;所述原始数据库和所述目标数据库的类型均为SQL Server数据库;删除所述目标数据库的log文件,并以所述原始数据库的mdf文件替换所述目标数据库的mdf文件;启动所述目标数据库,对所述目标数据库的物理和逻辑一致性进行检查,若所述目标数据库不存在一致性问题,则将所述目标数据库替换所述原始数据库;

可见,在本实施例中,通过创建一个与原始数据库类型一直的目标数据库,并将原始数据库中的mdf文件覆盖目标数据库,并在检查成功后,通过目标数据库代替原始数据库,目标数据库中的log文件相比原始数据库中的log文件大大缩小,减少磁盘的无效使用,使磁盘空间的使用更加合理。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例公开的一种SQL Server数据库的日志优化方法流程示意图;

图2为本发明实施例公开的一种SQL Server数据库的日志优化系统结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种SQL Server数据库的日志优化方法及系统,以实现减小SQL Server数据库日志,指导企业IT运维人员对SQL Server更好的维护,更加有效利用磁盘空间。

参见图1,本发明实施例提供的一种SQL Server数据库的日志优化方法,包括:

S101、创建目标数据库,停止运行原始数据库和所述目标数据库;所述原始数据库和所述目标数据库的类型均为SQL Server数据库;

其中,所述创建目标数据库之前,还包括:

判断所述原始数据库的log文件所占内存值是否大于预定阈值;若是,则执行所述创建目标数据库的步骤。

具体的,在本实施例中,可以检测当前使用的数据库的日志是否大于预定阈值;若是,则自动执行本方案。并且可以将本方案中创建的新的目标数据库可以命名为prestat,创建结束后将原始数据库和新建的目标数据库停止运行,为执行S102做准备。

S102、删除所述目标数据库的log文件,并以所述原始数据库的mdf文件替换所述目标数据库的mdf文件;

在本方案中,需要将目标数据库中的log文件删除,并将原始数据库的mdf文件覆盖目标数据库的mdf文件,需要说明的是,mdf文件是primary datafile的缩写,是MASTER数据库的数据库文件。MASTER数据库是存储所有SQL Server数据库中信息的核心数据库,将原始数据库中的mdf文件覆盖新建的数据库中,以使新数据库的数据和原数据库的数据保持一致。

S103、启动所述目标数据库,对所述目标数据库的物理和逻辑一致性进行检查,若所述目标数据库不存在一致性问题,则将所述目标数据库替换所述原始数据库。

具体的,启动目标数据库后,目标数据库会自动创建新的log文件,具体包括:

dbcc rebuild_log('prestat','d:\Program Files\Microsoft SQL

Server\MSSQL\Data\prestat_log.ldf')

并通过dbcc语句对目标数据库进行检查:dbcc checkdb('prestat');若发现不一致性问题,则对目标数据库进行修复;若不存在一致性问题,则将目标数据库替换原始数据库进行工作。

在本方案中,启动所述目标数据库之后,将所述目标数据库的状态设置为置疑;检查所述目标数据库不存在一致性问题后,将所述目标数据库的状态设置为正常,具体包括:sp_dboption'prestat','dbo use only','false'。

需要说明的是,在本方案中将所述目标数据库的状态设置为置疑之后,允许对所述目标数据库的系统目录进行修改;将所述原始数据库的状态设置为正常之后,拒绝对所述目标数据库的系统目录进行修改;

具体的,将目标数据库的状态设置为置疑之后,需要允许对新库Prestat的系统目录进行修改,以便获得修改权限,具体包括:

use master

go

sp_configure'allow updates',1

go

reconfigure with override

go

update sysdatabases set status=-32768where dbid=DB_ID('prestat')

本发明实施例公开了一种具体的日志优化方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:将所述目标数据库替换所述原始数据库之后,还包括:

将所述原始数据库中的log文件进行压缩存储。

具体的,用新建的数据库替换原始数据库之后,可将原始数据库进行压缩处理,一方面可以减小原始数据库占用磁盘空间,另一方便可以起到一个备份的作用。

并且在本实施例中,将所述目标数据库替换所述原始数据库之后,还包括:生成所述原始数据库被所述目标数据库替换的提示信息,并将所述提示信息发送至预定终端,以提示用户原始数据库已被新建的数据库所替换。

下面对本发明实施例提供的日志优化系统进行介绍,下文描述的日志优化系统与上文描述的日志优化系统可以相互参照。

参见图2,本发明实施例提供的一种SQL Server数据库的日志优化系统,包括:

创建模块100,用于创建目标数据库,停止运行原始数据库和所述目标数据库;所述原始数据库和所述目标数据库的类型均为SQL Server数据库;

删除模块200,用于删除所述目标数据库的log文件;

替换模块300,用于以所述原始数据库的mdf文件替换所述目标数据库的mdf文件;

检查模块400,用于启动所述目标数据库,对所述目标数据库的物理和逻辑一致性进行检查,若所述目标数据库不存在一致性问题,则将所述目标数据库替换所述原始数据库。

基于上述技术方案,本方案还包括:

判断模块,用于判断所述原始数据库的log文件所占内存值是否大于预定阈值;若是,则触发所述创建模块。

基于上述技术方案,本方案还包括:

生成模块,用于在所述目标数据库的状态设置为正常之后,生成所述原始数据库被所述目标数据库替换的提示信息;

发送模块,用于将所述提示信息发送至预定终端。

基于上述技术方案,本方案还包括:

压缩模块,用于将所述原始数据库中的log文件进行压缩存储。

本发明实施例提供的一种SQL Server数据库的日志优化方法及系统,包括:创建目标数据库,停止运行原始数据库和所述目标数据库;所述原始数据库和所述目标数据库的类型均为SQL Server数据库;删除所述目标数据库的log文件,并以所述原始数据库的mdf文件替换所述目标数据库的mdf文件;启动所述目标数据库,对所述目标数据库的物理和逻辑一致性进行检查,若所述目标数据库不存在一致性问题,则将所述目标数据库替换所述原始数据库;

可见,在本实施例中,通过创建一个与原始数据库类型一直的目标数据库,并将原始数据库中的mdf文件覆盖目标数据库,并在检查成功后,通过目标数据库代替原始数据库,目标数据库中的log文件相比原始数据库中的log文件大大缩小,减少磁盘的无效使用,解决了企业对SQL SER VER数据 库日志过大的问题,维护人员只要定期对SQL Server数据库日志进行压缩和缩小,能更好的维护SQL Server运行,更加合理有效使用磁盘空间。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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