最近的项目主要做数据的归档,把数据从一个数据库拉到另一个数据库,造成新数据库的日志文件非常大;或者数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间。于是想把日志文件删除。最简单就是先分离数据库-》删除日志文件-》最后附加数据,我这里需要在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;
找茬找不同_没事来全民找茬锻炼你的观察力吧免费下载
KinexPlayAR体感动作游戏免费下载
硬币塔王免费下载
越狱 越狱 模拟器免费下载
吃鸡枪战史上最刺激的单机射击游戏免费下载
毛线空间拼图世界免费下载
摩托车山地障碍物越野赛免费下载
无限旅程免费下载
复古传奇手游下载v1.5.707 安卓版
战夜大战皇家射手先生游戏(fightbattle royale)下载v1.0 安卓版
恋爱忍法帖游戏下载v1.0.0 安卓版
江湖生意经官方版下载v4.0.0 安卓版
翻转工厂最新版下载v1.0.1 安卓版
中华节日官方版
手机三国2手机版下载v3.1 官方安卓版
挑战巅峰游戏
华宇网页自动刷新工具下载2018绿色版
2022五音助手最新版下载v1.16.0 官方版
directshow(流媒体处理开发包)下载
ePub阅读器LovelyReader下载绿色最新版
光云浏览器下载v1.0.0 官方版
wo mic client最新版下载v3.2 免费版
kool vr(酷家乐家装vr软件)下载v2.0 最新免费版
百度文库阅读下载器(免券免积分)下载v2.0 绿色版