--
清除日誌:
declare
@logicalfilename
sysname,
@maxminutes
int,
@newsize
intuse
szwzcheck
--要操作的資料庫名
select
@logicalfilename='
szwzcheck_log
',
--日誌檔名
@maxminutes=10
,
--limit on time allowed to wrap log.
@newsize=20
--你想設定的日誌檔案的大小(m)
--setup / initialize
declare
@originalsize
intselect
@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
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
) 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
setnocount
off--
把szwzcheck換成你資料庫的名字即可,在查詢分析器裡面執行。
--收縮日誌:企業管理器--所有任務--收縮資料庫--檔案--選日誌檔案收縮
Sql清除日誌
問題補充 sql的日誌可以清除嗎?方法2 6都可以 1 收縮資料庫檔案 如果不壓縮,資料庫的檔案不會減小 企業管理器 右鍵你要壓縮的資料庫 所有任務 收縮資料庫 收縮檔案 選擇日誌檔案 在收縮方式裡選擇收縮至xxm,這裡會給出乙個允許收縮到的最小m數,直接輸入這個數,確定就可以了 選擇資料檔案 在收...
縮小SQL日誌
縮小sql日誌 exec p pdb test create proc p pdb dbname sysname,要壓縮的資料庫名 bkdatabase bit 1,因為分離日誌的步驟中,可能會損壞資料庫,所以你可以選擇是否自動資料庫 bkfname nvarchar 260 備份的檔名,如果不指定...
清除Sql日誌
今天 剛上班不久,業務部就反應 的資料從凌晨兩點後就沒有更新了 初步估計是脆弱的資料庫伺服器又出問題了 果然,剛登陸上資料庫伺服器,系統就彈出提示,xx資料庫日誌已經滿,請備份資料庫日誌.這個想來正常,昨天檢視該資料庫日誌檔案的時候已經是6g多了,只是沒想到來得這麼快,廢話少說,馬上動手 根據以往的...