(轉) SQL Server中 ldf 文件過大的解決方法


原文地址:http://blog.itpub.net/35489/viewspace-616459/

在SQL Server中經常遇到事務日志變大的情況,除了將數據庫設置為“自動收縮”外,還可以使用下面的SQL命令進行快速清除數據庫中的事務日志,命令如下: 
- 第一步:清空日志
 
DUMP TRANSACTION
   databasename
   WITH
   NO_LOG
 
-- 第二步:截斷事務日志
 
BACKUP LOG
   databasename
   WITH
   NO_LOG
 
-- 第三步:收縮數據庫
 
DBCC SHRINKDATABASE(databasename)


需要說明幾點:
1. 上面的SQL命令需要按照順序執行;
2. 執行上面的命令通常比直接使用右鍵菜單中的“收縮”命令要快很多

參考資料:
SQL SERVER 數據庫日志已滿,如何收縮數據庫日志
http://blog.csdn.net/faintbear/archive/2005/02/06/283316.aspx
如何收縮數據庫日志
http://www.cndiy8.com/data/web5701/20050228/20050228__3794589.html 

---------------------------------------------------------------------------------------

還一個比較簡單的方法:先把數據分離,然后刪除.ldf的文件,重新附加數據庫 MDF文件.會提示找不到.ldf文件。直接刪除即可,如下圖

刪除后,點擊確定,數據庫被附加上。新生成的ldf文件只有504 KB

 

 

1、分離數據庫后 到目錄下刪除.ldf文件后 到sql server中附加數據庫 (會提示找不到ldf文件,不用管,直接刪除就可以了) 附加成功后 ,ldf文件 504K 經確認可行,並且對網站的內容沒有影響。。。。呵呵 2、用sql語句收縮事務日志文件 不過我還沒有成功過 步驟操作:1. 備份事務日志文件,以使大多數活動虛擬日志文件處於非活動狀態。因此,可在以后的步驟中刪除非活動的虛擬日志文件。為此,請運行與以下 Transact-SQL 語句相似的 Transact-SQL 語句。BACKUP LOG <DatabaseName> TO DISK = '<BackupFile>' 注意:在此語句中,<DatabaseName> 是要備份的數據庫名稱的占位符。在此語句中,<BackupFile> 是備份文件完整路徑的占位符。 例如,運行以下 Transact-SQL 語句。BACKUP LOG TestDB TO DISK='C:\TestDB1.bak' 2. 收縮事務日志文件。為此,請運行與以下 Transact-SQL 語句相似的 Transact-SQL 語句。DBCC SHRINKFILE (<FileName>, <TargetSize>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM