收縮日誌檔案的指令碼

2021-04-20 02:14:52 字數 2003 閱讀 2855

set nocount

ondeclare @logicalfilename sysname,

@maxminutes

int,

@newsize

intuse marias

-- 要操作的資料庫名

select @logicalfilename = 

' marias_log ' ,

-- 日誌檔名

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

@newsize =100

-- 你想設定的日誌檔案的大小(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) notnull)

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 = (selectsize

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

endexec (@trunclog)

endselect

' 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 的日誌檔案的收縮

sql server 的日誌檔案,當你執行資料庫資料的更新,刪除,新增均會做日誌記錄,如果你的日誌沒清理的話,會越積越大 處理辦法 1。定時執行下面語句來清空日誌 日誌空間 use 你的庫名 godump transaction 庫名 with no log 截斷已提交的事務日誌 dbcc shri...

對日誌檔案進行收縮

第一步 alter database dbname set recovery 第二步 dbcc shrinkfile dbname log 第三步 alter database dbname set recovery full 解釋一下 一般說來 dbcc shrinkfile 資料庫的日誌檔案的邏...

SQL SERVER手動收縮日誌檔案

sql server資料庫日誌檔案增長過快,半年時間由9g增長到150g,不知道是不是日誌原因,伺服器占用記憶體一直很高,10 g。檢視日誌,多是某帳戶登入成功的資訊,這個資訊不知道能不能取消掉。有路過的大神請指教。先分享下手動收縮日誌檔案方法,比較安全的,還有分離 清除 附加,儲存過程清除日誌的方...