問題:資料庫實際大小為600mb, 日誌檔案實際大小為33mb, 但日誌檔案占用空間為2.8gb!試了多種方式,shirnk database, truncate log file, 都沒辦法將檔案縮小。無論如何,這應該算sql server的乙個bug吧。
解決方法:
後來找到下面的**,就可以將日誌檔案縮小到自己想要的大小了。把**copy到查詢分析器裡,,然後修改其中的3個引數(資料庫名,日誌檔名,和目標日誌檔案的大小),執行即可。
-----set nocount on
declare @logicalfilename sysname,
@maxminutes int,
@newsize int
use 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) 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
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日誌檔案
前幾天也碰到日誌檔案過大的問題,資料庫實際大小為600m,日誌檔案實際大小為33m,但日誌檔案占用空間為2.8g 試了多種方式,shirnk database,truncate log file,都沒辦法將檔案縮小。無論如何,這應該算sql server的乙個bug吧。後來找到下面的 就可以將日誌檔...
縮小SQL SERVER日誌檔案
sql server 2000 會有日誌檔案由於時間的積累越來越大的問題 資料庫實際大小為15m,日誌檔案實際大小為625kb 匯出的日誌檔案 但日誌檔案實際占用空間為200mb 預設設定是檔案日誌會自動增長 如果想在資料庫屬性那裡,直接將當前的日誌檔案的儲存空間改小,是不行的。解決方法 找到下面的...
縮小SQL SERVER日誌檔案
sql server 2000 會有日誌檔案由於時間的積累越來越大的問題 資料庫實際大小為15m,日誌檔案實際大小為625kb 匯出的日誌檔案 但日誌檔案實際占用空間為200mb 預設設定是檔案日誌會自動增長 如果想在資料庫屬性那裡,直接將當前的日誌檔案的儲存空間改小,是不行的。解決方法 找到下面的...