SQLServer刪除log檔案和清空日誌的方案

2021-06-17 00:11:41 字數 3956 閱讀 8122

sqlserver2005刪除log檔案和清空日誌的方案

資料庫在使用過程中會使日誌檔案不斷增加,使得資料庫的效能下降,並且占用大量的磁碟空間。

sql server資料庫都有log檔案,log檔案記錄使用者對資料庫修改的操作。可以通過直接刪除log檔案和清空日誌在清除資料庫日誌。

一、刪除log

1、分離資料庫。分離資料庫之前一定要做好資料庫的全備份,選擇資料庫——右鍵——任務——分離。

勾選刪除連線

分離後在資料庫列表將看不到已分離的資料庫。

2、刪除log檔案

刪除資料庫資訊資訊的ldf檔案:

附加資料庫之後將生成新的日誌檔案log,新的日誌檔案的大小事504k。

也可以通過命令才完成以上的操作:

use master

;

exec 

sp_detach_db

@dbname

='testdb'

;

exec 

sp_attach_single_file_db

@dbname

='testdb'

,@physname

='d:\program files\microsoft sql server\mssql10.sql2008\mssql\data\testdb.mdf'

、清空日誌該命令在sql server 2005和2000支援,sql server 2008不支援該命令。

dump transaction 

testdb

with

no_log

三、收縮資料庫檔案

dbcc 

shrinkfile

('testdb_log'

,1)

四、截斷事務日誌

backup 

log

testdb

with

no_log

該命令在sql server 2008也是不支援,在sql server 2005和2000可以使用。

--

最好備份日誌,以後可通過日誌恢復資料。。。

以下為日誌處理方法

一般不建議做第4,6兩步

第4步不安全,有可能損壞資料庫或丟失資料

第6步如果日誌達到上限,則以後的資料庫處理會失敗,在清理日誌後才能恢復.

--*/

--下面的所有庫名都指你要處理的資料庫的庫名

1.清空日誌

dump

transaction

庫名 with

no_log

2.截斷事務日誌:

backup

log庫名

with

no_log

3.收縮資料庫檔案(如果不壓縮,資料庫的檔案不會減小

企業管理器

--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮檔案

--選擇日誌檔案--在收縮方式裡選擇收縮至xxm,這裡會給出乙個允許收縮到的最小m數,直接輸入這個數,確定就可以了

--選擇資料檔案--在收縮方式裡選擇收縮至xxm,這裡會給出乙個允許收縮到的最小m數,直接輸入這個數,確定就可以了

也可以用sql語句來完成

--收縮資料庫

dbcc

shrinkdatabase(庫名)

--收縮指定資料檔案,1是檔案號,可以通過這個語句查詢到:select * from sysfiles

dbcc

shrinkfile(

1)

4.為了最大化的縮小日誌檔案(如果是sql

7.0,這步只能在查詢分析器中進行)

a.分離資料庫:

企業管理器

--伺服器--資料庫--右鍵--分離資料庫

b.在我的電腦中刪除log檔案

c.附加資料庫:

企業管理器

--伺服器--資料庫--右鍵--附加資料庫

此法將生成新的log,大小只有500多k

或用**:

下面的示例分離 pubs,然後將 pubs 中的乙個檔案附加到當前伺服器。

a.分離

exec

sp_detach_db

@dbname='

庫名'b.刪除日誌檔案

c.再附加

exec

sp_attach_single_file_db

@dbname='

庫名', @physname='

c:\program files\microsoft sql server\mssql\data\庫名.mdf

'5.為了以後能自動收縮,做如下設定:

企業管理器

--伺服器--右鍵資料庫--屬性--選項--選擇"自動收縮"

--sql語句設定方式:

exec

sp_dboption '庫名

', 'autoshrink',

'true

'6.如果想以後不讓它日誌增長得太大

企業管理器

--伺服器--右鍵資料庫--屬性--事務日誌

--將檔案增長限制為xm(x是你允許的最大資料檔案大小)

--sql語句的設定方式:

alter

database

庫名 modify

file

(name

=邏輯檔名,maxsize

=20)

sql server 資料庫使用時間一長就會導致log檔案逐漸變的龐大, 想備份一下資料庫, 想發給誰都很困難

執行下面的語句就可以 清到log檔案只剩下1m左右的空間.

dump transaction 資料庫名 with no_log

dbcc shrinkdatabase('資料庫名',truncateonly)

sqlserver的系統日誌過大,就會引起sqlserver伺服器無法啟動等一系列問題。今天我遇到了這個問題,在網上搜尋了一下,解決方法是刪除就 可以了,可是當前的errorlog正在被sql使用無法刪除啊,要刪除只能停止sql伺服器,難道就沒有別得辦法了嗎?

回答是肯定的:使用以下儲存過程:

exec   sp_cycle_errorlog

注釋每次啟動

sql   server  

時,當前錯誤日誌重新命名為

errorlog.1

;errorlog.1  

成為errorlog.2

,errorlog.2  

成為errorlog.3

,依次類推。

sp_cycle_errorlog  

使您得以迴圈錯誤日誌檔案,而不必停止而後再啟動伺服器。

SQLServer 刪除log檔案和清空日誌的方法

資料庫的效能是dba都需要重點關注的,日誌檔案的增多嚴重影響資料庫的效能,本文將為您介紹sql server刪除日誌檔案的方法,供您參考,希望對您有所幫助。資料庫在使用過程中會使日誌檔案不斷增加,使得資料庫的效能下降,並且占用大量的磁碟空間。sql server資料庫都有log檔案,log檔案記錄使...

收縮 刪除SQlserver資料庫的log日誌檔案

use master goalter database ais20141013114943 set recovery with no wait database後為資料庫名 goalter database ais20141013114943 set recovery 簡單模式 gouse ais2...

SQL Server 2008 清空刪除日誌檔案

1 刪除log 1 分離資料庫 企業管理器 伺服器 資料庫 右鍵 分離資料庫 2 刪除log檔案 3 附加資料庫 企業管理器 伺服器 資料庫 右鍵 附加資料庫 此法生成新的log,大小只有520多k 上面的方法盡量不要用!用下面的好用些!先殺下使用者程序 殺程序 use master godecla...