出處:http://charlesbc.blogspot.tw/2011/01/sql-server-log.html
SQL Server Log 檔案太大了!
昨天去上課。晚上下課一回來,同事就抱怨系統太慢了。
今天早上剛好是民國100年元旦,就來公司檢查有無百年蟲問題吧。順便 Check 一下系統太慢的問題。
一檢查,SQL Server 磁碟沒空間了。當下就知道為什麼慢了。
當務之急,就是將超大的資料庫 log 檔備份並 shink。
今天早上剛好是民國100年元旦,就來公司檢查有無百年蟲問題吧。順便 Check 一下系統太慢的問題。
一檢查,SQL Server 磁碟沒空間了。當下就知道為什麼慢了。
當務之急,就是將超大的資料庫 log 檔備份並 shink。
SQL Server 2005
以前在 SQL Server 2005 指令會這樣下use master go --備份目前的 log backup log DatabaseName to disk='c:\db.log' WITH NOFORMAT --將 log 清除 BACKUP LOG DatabaseName WITH TRUNCATE_ONLY --找到 DatabaseNameLog 的值 use DatabaseName go select name from sys.database_files where type_desc = 'log' --縮減 log file 到 1MB DBCC SHRINKFILE(DatabaseNameLog, 1)
SQL Server 2008
到了 SQL Server 2008,Trancate_only 的指令正式被取消了。由於資料庫的復原模式為簡單的情形下是不記錄所有的 log資料的。我們可以利用這一點清除 log 資料。因此,替代的方法,是將資料庫的復原模式先換成簡單模式,再調整為完整。指令如下use master go --備份目前的 log backup log DatabaseName to disk='c:\db.log' WITH NOFORMAT --將資料庫復原模式切換到簡單模式 ALTER DATABASE DatabaseName SET RECOVERY SIMPLE WITH NO_WAIT --找到 DatabaseNameLog 的值 use DatabaseName go select name from sys.database_files where type_desc = 'log' --縮減 log file 到 1MB DBCC SHRINKFILE(DatabaseNameLog, 1) --將資料庫復原模式切換到完整模式 USE [master] GO ALTER DATABASE [DatabaseName] SET RECOVERY FULL WITH NO_WAIT
沒有留言:
張貼留言