ホームページ  >  記事  >  データベース  >  SQLServer日志文件清除方法

SQLServer日志文件清除方法

WBOY
WBOYオリジナル
2016-06-07 15:51:521515ブラウズ

近日,因发现某系统SQLServer数据库的日志文件较大,需要对其进行清理。本来以为是个很简单的事情,SQL Server Management Studio中有现成的菜单功能,点两下鼠标就行了。但在实际操作中却发现不起作用。因为涉及到数据,担心误操作导致不可挽回的损失,所以

近日,因发现某系统SQLServer数据库的日志文件较大,需要对其进行清理。本来以为是个很简单的事情,SQL Server Management Studio中有现成的菜单功能,点两下鼠标就行了。但在实际操作中却发现不起作用。因为涉及到数据,担心误操作导致不可挽回的损失,所以还是上网研究了一下,并单独测试没问题后,才敢对实际数据库下手。

具体的操作过程应该是这样的:

一、挑一个夜深人静的时候,先备份一下数据库。

夜深人静之时,系统一般会比较空闲,可能从容地下手,有数据库备份,万一第二天早上发现有问题,至少可以恢复到昨天的工作点,风险比较小。

二、打开SQL Server Management Studio(SSMS),打开查询页面,执行以下SQL语句:

DUMP TRANSACTION [数据库名] WITH   NO_LOG

该语句的作用是清空指定数据库的日志。

三、在SSMS中相应数据库名称下点右键,菜单中选择“任务-收缩-文件”,在打开的“收缩文件”窗口中,文件类型选择“日志”,并选择相应的日志文件名(如果有多个可选的话),在“收缩操作”项下有3个可选项:

1、释放未使用的空间。

会把文件中未使用的空间释放给操作系统,将将文件收缩到最后分配的区。这个选项感觉作用不大,因为要考虑清理日志文件时,它已经是很大了,分配的空间当然也都是用掉的。

2、在释放未使用的空间前重新组织页,将文件收缩到(需设置文件大小);

这种方法等效于执行指定目标文件大小的:DBCC SHRINKFILE。必须在后面的文本框中输入日志文件的大小,可以为0。

3、通过将数据迁移到同一文件组中的其它文件来清空文件。

此方法相当于执行带EMPTYFILE选项的DBCC SHRINKFILE。

这里我选择使用了第2个选项。

当然,这里只是提供了一种可成功实现的实用方法。对于更复杂的应用场景,需要对DUMP TRANSACTION和DBCC SHRINKFILE有深入的了解,具体可以研究的微软的相关文档。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。