MSSQL 清空日志 删除日志文件

  次阅读 作者:智能小宝 来源:互联网 2016-03-01 10:08 我要评论(0)

最近的项目主要做数据的归档,把数据从一个数据库拉到另一个数据库,造成新数据库的日志文件非常大;或者数据库在使用过程中会使日志文件不断 增加,使得数据库的性能下降,并且占用大量的磁盘空间。于是想把日志文件删除。最简单就是先分离数据库-》删除日志文件-》最后附加数据,我这里需要在 SSIS中调用,所以已sql脚本为主。

两种简单的清除日志的方法:

一分离附加法:

1、首先把数据库分离,分离数据库之前一定要做好数据库的全备份,选择数据库——右键——任务——分离,其中药勾选删除连接!

分离后在数据库列表将看不到已分离的数据库

2、删除数据库的LOG文件数据库文件夹下的对应数据库的 ldf文件

3、附加数据库,附加的时候会提醒找不到log文件。到时附加上后会自动创建一个新的日志文件,从而达到清理数据库的目的

二、sql语句清除mssql日志

DUMP TRANSACTION TestDB WITH NO_LOG清除日志

DBCC SHRINKFILE ('TestDB_log',1)收缩数据库文件

BACKUP LOG TestDB WITH NO_LOG截断事务日志

该命令在SQL Server 2008也是不支持,在SQL Server 2005和2000可以使用。

首先我们需要获取数据库文件的路径:

declare @logfilename varchar(100)

declare @datafilename varchar(100)

select @logfilename=physical_name from sys.database_files where type=1

select @datafilename=physical_name from sys.database_files where type=0

然后切换到master下,分离数据库

use master

exec sp_detach_db @dbname='TestVFA';

紧接下来就是删除数据库 日志文件

----Remove file

DECLARE @Result int

DECLARE @FSO_Token int

EXEC @Result = sp_OACreate 'Scripting.FileSystemObject', @FSO_Token OUTPUT

EXEC @Result = sp_OAMethod @FSO_Token, 'DeleteFile', NULL, @logfilename

EXEC @Result = sp_OADestroy @FSO_Token

最后就是附加数据库

exec sp_attach_single_file_db @dbname='TestVFA',@physname=@datafilename

注意:默认Ole Automation Procedures 是禁用的我们需要启用它

exec sp_configure 'show advanced options', 1;

RECONFIGURE;

exec sp_configure 'Ole Automation Procedures',1;

RECONFIGURE;

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...