SQL SERVER 資料庫日誌收縮整理 三種方法軼事分離資料庫而是清空日誌三是截斷日誌

iSQlServer發表於2009-07-14

/*---------------------------------------------------------------------------------
資料庫壓縮整理
Welly 2007 -12-03
-----------------------------------------------------------------------------------*/


一、日誌檔案過大,可以通過分離資料庫來實現

為了最大化的縮小日誌檔案(如果是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'    


二.下面的刪除日誌,然後壓縮資料庫的方法和方法一有什麼區別?


刪除(清空)日誌,然後壓縮日誌到指定檔案大小,一下兩句同時執行才可,否則日誌檔案不減少

DUMP   TRANSACTION   資料庫名   WITH   NO_LOG   
    
DBCC SHRINKFILE(書庫庫日誌檔案的邏輯名稱,10)  --收縮read126_log   10M日誌

減小事務日誌的物理大小需要收縮日誌檔案。通過刪除一個或多個不活動的虛擬日誌檔案來收縮事務日誌,從而減小其物理大小。
包含任何活動日誌記錄的虛擬日誌檔案(即“活動的虛擬日誌檔案”)是邏輯日誌的一部分,不能將其刪除。
注意:  
如果事務日誌最近未被截斷,則在截斷日誌之前無法收縮日誌。有關詳細資訊,請參閱使日誌記錄保持活動狀態的因素。

 

三。自動收縮日誌,具體收縮到多大?何事收縮?

企業管理器--伺服器--右鍵資料庫--屬性--選項--選擇"自動收縮"   
    
  --SQL語句設定方式:   
  EXEC   sp_dboption   '資料庫名',   'autoshrink',   'TRUE'

四。截斷事務日誌後進行收縮事務日誌
   截斷並不減小物理日誌檔案的大小。減小日誌檔案的物理大小需要收縮檔案
  BACKUP   LOG   資料庫名   WITH   NO_LOG    

  DBCC SHRINKFILE(庫日誌檔案的邏輯名稱,10)  --收縮read126_log   10M日誌

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-609101/,如需轉載,請註明出處,否則將追究法律責任。

相關文章