/*********資料庫壓縮方法*********/
/*******************************/
declare @db nvarchar(20)
-- 資料庫名稱
set @db = 'dbname'
-- 清空日誌
dump transaction @db with no_log
-- 截斷事務日誌
backup log @db with no_log
-- 收縮資料庫
dbcc shrinkdatabase (@db)
/*******************************/
----ms sql server 日誌清理
declare @logicalfilename sysname,@maxminutes int,@newsize int
use grades -- 要操作的資料庫名
select @logicalfilename = 'grades_log', -- 日誌檔名
@maxminutes = 10, -- limit on time allowed to wrap log.
@newsize = 1 -- 你想設定的日誌檔案的大小(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
Deepgreen資料庫日誌清理指令碼
資料庫時間久了,難免會產生很多日誌,deepgreen的日誌與greenplum一樣,都存在pg log資料夾下,我們可以使用以下指令碼,配合linux定時任務,儲存固定日期的日誌即可 bin bash filename gp clear.sh start time start time date ...
SqlServer清理資料庫日誌
在sqlserver資料庫資料量提公升和大量的運算元據庫,不免產生很多的資料庫日誌,可以通過sqlserver自帶的作業進行定期的資料庫日誌清理,如下 清空所有資料庫日誌 declare exec sql nvarchar 1200 sql nvarchar 1200 full sql nvarch...
sql server 資料庫日誌清理
sql server 資料庫日誌清理 use master goalter database 資料庫名 set recovery with no wait goalter database 資料庫名 set recovery gouse 資料庫名 godbcc shrinkfile n 資料庫日誌檔...