SqlServer交易記錄滿的解決方案

來源:互聯網
上載者:User

這是微軟社區精英項目傳過來的一個案例。 我當時給瞭解決方案。

 

問題描述:

環境說明:
作業系統 win2003
資料庫 SQL SERVER 2000 SP4
資料庫資料大小 150GB左右
 
具體故障描述:
串連門戶系統
提示無法串連到設定管理員
去伺服器本地查看
右下角提示
資料庫所在的磁碟已滿
於是把SQL服務停掉
該磁碟立即有十幾GB的空間釋放
重新啟動SQL服務
串連門戶系統
依然提示無法串連設定資料庫
在SQL控制台串連該資料庫也是連不上
 
門戶系統共三台伺服器 :
10.205.1.6 應用系統伺服器 SharePoint
10.205.1.7 門戶DB 伺服器  資料庫伺服器 SQL 2000
10.205.1.5 DC伺服器
出現該錯誤的是10.205.1.7 資料庫伺服器

 

錯誤截屏:

 

 

 

 

 

解決方案:

 

  這個問題初步看起來是SharePoint_Config和tempdb資料庫的記錄檔佔用過大空間,以致於所在磁碟空間滿了。
  要解決這個問題,要稍微麻煩點。因為磁碟空間已滿,SqlServer服務有可能無法正常啟動。先不要讓應用程式串連資料庫,SharePoint也不要串連資料庫。試著啟動SqlServer服務。看看能否啟動起來。如果不能,需要騰出來一點空間來。刪除一些暫時不要的軟體。總之要讓SqlServer服務啟動起來。如果SqlServer服務能起來,就做下面的。
開啟Sql Analyzer, 執行如下語句:
  backup log tempdb with no_log   --清除交易記錄
  go
  backup log SharePoint_Config with no_log   --清除交易記錄
  go
 
   use tempdb
   go

   dbcc shrinkfile (tempdev, 10240)      --調整tempdb的主要資料檔案大小為10240 MB, 可根據需要調整, 這個命令不是必須執行的。
   go

   dbcc shrinkfile (templog, 10240)      --調整tempdb的交易記錄檔大小為10240 MB, 可根據需要調整
   go

--對於SharePoint_Config資料庫, 通常, 它的主要資料檔案的logic name應該是SharePoint_Config, 它的交易記錄資料檔案名是SharePoint_Config_log, 也可能不是這個
--可以用 如下的命令來查它的資料檔案的logic name,
use SharePoint_Config
go
select name from sysfiles;
go

知道了交易記錄檔的logic name, 就寫命令:
 
use SharePoint_Config
go
 
dbcc shrinkfile (SharePoint_Config_log, 10240)      --調整SharePoint_Config資料庫的交易記錄檔大小為10240 MB, 可根據需要調整, SharePoint_Config_log應該是前面的select name from sysfiles查出來的名字。這裡暫時用SharePoint_Config_log。
go

以上能解決當前的問題。

 

更深的問題

為什麼交易記錄會出現佔滿空間?

 

通常交易記錄檔是這樣的檔案名稱: <資料庫名>_log.ldf。它有個初始大小。比如500MB。我們對資料庫的增刪改都會對資料庫中資料作出改動。所有的改動都被SqlServer記錄到交易記錄中了。隨著時間的推移,交易記錄檔<資料庫名>_log.ldf就會慢慢被交易記錄佔滿,當交易記錄檔<資料庫名>_log.ldf被佔滿時,SqlServer會根據某些特定策略來處理,一個常見的做法是增加交易記錄檔<資料庫名>_log.ldf 10%的空間。這避免了交易記錄檔<資料庫名>_log.ldf滿而使資料庫事務失敗。磁碟空間不是無限的。總有一天交易記錄檔<資料庫名>_log.ldf就不能再增加體積了。就出現了上面的情況。

 

什麼才是正確的做法?

 

1.  為交易記錄檔<資料庫名>_log.ldf分配固定的大小, 不能自動成長。其實針對資料庫主檔案<資料庫名>.mdf也是如此。

 

2. 製作資料庫監視任務,交易記錄將滿的時候, 自動備份交易記錄來減小交易記錄佔用的空間.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.