mysql 日誌增長 解決sql日誌增大的辦法

2021-10-20 22:29:04 字數 2528 閱讀 6048

一:

分享]解決sql日誌增大的辦*[望置頂]

--假設test2為資料庫名稱

在查詢分析器中執行:

backup log muonline with no_log

backup log muonline with truncate_only

dbcc shrinkdatabase(muonline)

將上面的語句多次執行,直到日誌檔案縮小。

exec sp_dboption 'muonline','autoshrink','on'

建立作業,每半個小時一次日誌備份,每天一次完全資料庫備份。

在log收縮到正常大小後,將autoshrink選項設定為off。

二:資料庫增大是因為你的日誌增大了,以前大家討論過的,最簡單可行的辦法就是在你資料庫屬性->選項->故障還原裡面選成簡單模式(預設為完全模式),然後選收縮資料庫進行一次收縮,以後你的資料庫基本就不怎麼會增長了

三:1、進入企業管理器,選中資料庫,比如muonline

2、所有任務->分離資料庫

3、到資料庫檔案的存放目錄,將muonline_log.ldf檔案刪除,你怕s的話可以拷出去

4、企業管理器->附加資料庫,選muonline,這個時候你會看見日誌檔案這項是乙個叉,不要緊繼續,此時資料庫就會提示你該資料庫無日誌是否建立乙個新的,確定就是了。

5、記得資料庫重新附加後使用者要重新設定一下。

set nocount on

declare @logicalfilename sysname,

@maxminutes int,

@newsize int

use muonline (你要操作的資料庫名)

select @logicalfilename = 'muonline_log',(日誌檔名)

@maxminutes = 10,(設定每格多長時間寫一次日誌)

@newsize = 30(你想設定的日誌檔案的大小 單位: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

mysql 日誌增長 資料庫日誌增長解決方法

資料庫日誌增長過快解決方法 1 刪除log 1 分離資料庫 企業管理器 伺服器 資料庫 右鍵 分離資料庫 2 刪除log檔案 3 附加資料庫 企業管理器 伺服器 資料庫 右鍵 附加資料庫 此法生成新的log,大小只有500多k 再將此資料庫設定自動收縮 或用 下面的示例分離 pubs,然後將 pub...

mysql 日誌增長 資料庫日誌增長解決方法

資料庫日誌增長過快解決方法 1 刪除log 1 分離資料庫 企業管理器 伺服器 資料庫 右鍵 分離資料庫 2 刪除log檔案 3 附加資料庫 企業管理器 伺服器 資料庫 右鍵 附加資料庫 此法生成新的log,大小只有500多k 再將此資料庫設定自動收縮 或用 下面的示例分離 pubs,然後將 pub...

SQL 2008日誌無法收縮解決方法

sql 2008的庫做了映象,日誌傳送和做了同步複製,發現日誌很大,而且無法收縮。原因 日誌卡死,可能有日誌未完整提交 dbcc opentran 檢視未提交的事務日誌 exec sp repldone xactid null,xact segno null,numtrans 0,time 0,re...