數據庫city日誌已滿。請備份該數據庫的事務日誌以釋放一些日誌空間

今天早上一看服務器硬盤沒有空間了,細查數據庫日誌達18G 運行上次在網上找的文章修改數據庫日誌大小,,提示”數據庫city日誌已滿。請備份該數據庫的事務日誌以釋放一些日誌空間。” 網上查了下相關資料,找到下面這個最好用的,把原來的18g數據庫日誌文件壓縮到了100M 效果非常明顯.(本人只試過了前三步就OK了,後面的方法未驗證)
–壓縮日誌及數據庫文件大小
/*–特別注意
請按步驟進行,未進行前面的步驟,請不要做後面的步驟
否則可能損壞你的數據庫.
–*/

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   =   ‘pubs’
b.刪除日誌文件
c.再附加
EXEC   sp_attach_single_file_db   @dbname   =   ‘pubs’,
@physname   =   ‘c:\Program   Files\Microsoft   SQL   Server\MSSQL\Data\pubs.mdf’
5.爲了以後能自動收縮,做如下設置:
企業管理器–服務器–右鍵數據庫–屬性–選項–選擇”自動收縮”
–SQL語句設置方式:
EXEC   sp_dboption   ‘數據庫名’,   ‘autoshrink’,   ‘TRUE’
6.如果想以後不讓它日誌增長得太大
企業管理器–服務器–右鍵數據庫–屬性–事務日誌
–將文件增長限制爲xM(x是你允許的最大數據文件大小)
–SQL語句的設置方式:
alter   database   數據庫名   modify   file(name=邏輯文件名,maxsize=20)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章