SQLServer日志文件清除方法

WBOY
풀어 주다: 2016-06-07 15:51:52
원래의
1566명이 탐색했습니다.

近日,因发现某系统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有深入的了解,具体可以研究的微软的相关文档。



원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿