MSSQL 清空日志 删除日志文件

MSSQL 清空日志 删除日志文件,第1张

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

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

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

分离后在数据库列表将看不到已分离的数据库 删除数据库的LOG文件数据库文件夹下的对应数据库的 ldf文件 附加数据库 附加的时候会提醒找不到log文件 到时附加上后会自动创建一个新的日志文件 从而达到清理数据库的目的

二 sql语句清除mssql日志 DUMP TRANSACTION TestDB WITH NO_LOG 清除日志 DBCC SHRINKFILE ( TestDB_log ) 收缩数据库文件 BACKUP LOG TestDB WITH NO_LOG 截兄冲断事务日志 该命令在SQL Server 也桐滑是不支持 在SQL Server 和 可以使用

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

declare @logfilename varchar( )  declare @datafilename varchar( ) select @logfilename=physical_name from sys database_files where type= select @datafilename=physical_name from sys database_files where type=

然后切换到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 是禁用的我们需要启用它

lishixinzhi/Article/program/MySQL/201311/29584

数据库的性能是DBA都需要重点关注的,纯知日志文件的增多严重影响数据库的性能,本文将为您介绍SQL Server删除日志文件的方法,供您参考,希望对您有所帮助。

数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间。SQL Server数据库都有log文件,log文件记录用户对数据库修改的 *** 作。可以通过直接删除log文件和清空日志在清除数据库日志。

1、删除LOG

1.1 分离数据库

分离数据库之前一定要做好数据库的全备份,选择数据库——右键——任务——分离。

勾选删除连接

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

1.2 删除LOG文件

1.3 附加数据库

附加的时候会提醒找不到log文件。

删除数据库信息信息的ldf文件:

附加数据库之后将生成新的日志文件log,新的日志文件的大小事504K。

1.4 也可以通过命令才完成以上的 *** 作

use master

exec sp_detach_db @dbname='数据库名'

exec sp_attach_single_file_db @dbname='数据库名',@physname='D:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\TestDB.mdf'

Sp_detach_db:分离数据库;

sp_attach_single_file_db:做升消附加单个数据库文件;在上述代码中只附加了数据文笑蔽件,而未附加日志文件,言下之意就是删除了日志文件。

该命令在SQL Server 2005和2000支持,SQL Server 2008不支持该命令。

2. 清空日志

DUMP TRANSACTION 数据库名 WITH NO_LOG

3. 收缩数据库文件

DBCC SHRINKFILE ('TestDB_log',1)

SQL Server中“数据收缩”详解

4. 截断事务日志

BACKUP LOG TestDB WITH NO_LOG

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12261547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存