縮小資料庫日誌檔案

2021-06-16 05:07:15 字數 2051 閱讀 6021

如果在sql資料庫中碰到日誌檔案過大的問題,就可以試下下面的**,可以將日誌檔案縮小到自己想要的大小了。把**copy到查詢分析器裡,,然後修改其中的3個引數(資料庫名,日誌檔名,和目標日誌檔案的大小),執行即可。

set nocount on

declare @logicalfilename sysname,

@maxminutes int,

@newsize int

use     mydb             -- 要操作的資料庫名

select  @logicalfilename = 'mydb_log',  -- 日誌檔名

@maxminutes = 10,               -- limit on time allowed to wrap log.

@newsize = 15                  -- 你想設定的日誌檔案的大小(m)

-- setup / initialize

declare @originalsize int

select @originalsize = size

from sysfiles

where name = @logicalfilename

select 'original size of ' + db_name() + ' log is ' +

convert(varchar(30),@originalsize) + ' 8k pages or ' +

convert(varchar(30),(@originalsize*8/1024)) + 'mb'

from sysfiles

where name = @logicalfilename

create table dummytrans

(dummycolumn char (8000) not null)

declare @counter   int,

@starttime datetime,

@trunclog  varchar(255)

select  @starttime = getdate(),

@trunclog = 'backup log ' + db_name() + ' with truncate_only'

dbcc shrinkfile (@logicalfilename, @newsize)

exec (@trunclog)

-- wrap the log if necessary.

while     @maxminutes > datediff (mi, @starttime, getdate()) -- time has not expired

and @originalsize = (select size from sysfiles where name = @logicalfilename) 

and (@originalsize * 8 /1024) > @newsize 

begin -- outer loop.

select @counter = 0

while  ((@counter < @originalsize / 16) and (@counter < 50000))

begin -- update

insert dummytrans values ('fill log') 

delete dummytrans

select @counter = @counter + 1

end  

exec (@trunclog) 

end  

select 'final size of ' + db_name() + ' log is ' +

convert(varchar(30),size) + ' 8k pages or ' +

convert(varchar(30),(size*8/1024)) + 'mb'

from sysfiles

where name = @logicalfilename

drop table dummytrans

set nocount off

怎樣縮小SQL Server資料庫日誌檔案

問 我的資料庫 實際大小為600mb,日誌檔案實際大小為33mb,但日誌檔案占用空間為2.8gb 我曾經試了幾種方式,shirnk database,truncate log file,都沒辦法將檔案縮小。答 你可以把下面的 copy到查詢 分析器裡,然後修改其中的3個引數 資料庫名,日誌檔名,和目...

教你如何縮小SQL Server資料庫日誌檔案

問題 資料庫實際大小為600mb,日誌檔案實際大小為33mb,但日誌檔案占用空間為2.8gb 試了多種方式,shirnk database,truncate log file,都沒辦法將檔案縮小。無論如何,這應該算sql server的乙個bug吧。解決方法 後來找到下面的 就可以將日誌檔案縮小到自...

如何減小資料庫日誌檔案 ldf

declare dbnvarchar 20 set db 你的資料庫名稱 dump transaction dbwith no log backup log db with no log dbcc shrinkdatabase db 前幾天我的資料庫sql server 報日誌滿錯誤,於是變改了lo...