TFS TF30042 資料庫已滿 處理方法

2021-09-30 15:06:52 字數 1549 閱讀 2079

今天早上,公司打來**,說tfs(team foundation server)微軟源**管理軟體簽入不了,報錯:tf30042 資料庫已滿。

經過差不多半個小時的處理,基本上好了,再次總結一下:

根據提示,我先檢查磁碟空間,發現都有幾十g(公司的tfs資料庫比較大,光壓縮備份就有20g以上),足夠用來備份。

檢查完硬碟空間後,接著檢查資料庫空間,發現日誌檔案的確滿了,按照常規思路,做了一次日誌備份。正常來說,這已經能清空日誌了。但是發現還是不行。為此也頭疼了一下。看看恢復模式,是完整的,然後我就換成大容量日誌,其實這一步我覺得有點多餘,因為作為源**管理,頻繁簽出簽入是很正常,但是幾乎沒有大容量插入的,所以換這個模式作用不大,只是作為「試探性」的動作而已。

後來看到網上的提示說檢查一下sqlserver的錯誤日誌,再次說明一下,很多dba書籍上對問題檢查都是這樣的順序:1、檢查windows錯誤日誌;2、檢查sqlserver的錯誤日誌然後再去做對應的處理。我由於經驗不足,直接跳過了,反倒是問題處理延緩了。在檢查了錯誤日誌後,的確發現一些有用資訊:

根據【訊息】,我去資料庫用以下**查詢:

select name, log_reuse_wait_desc from sys.databases  where 

log_reuse_wait_desc = 'replication'

發現只有一條記錄,就是我的tfs資料庫:tfs_hkitcollection。然後到msdn上查。發現replication這個狀態是因為還原了某些發布的資料庫或者沒有正確移除而導致的,而我的伺服器上沒有任何複製資料庫,但在我接手之前我就不清楚了。還是先解決問題

執行:

sp_removedbreplication '指定資料庫'
根據聯機叢書對這個儲存過程的解釋:

只有當其他刪除複製物件的方法都失敗後,才應當使用此過程。

執行完後,在查詢上面的語句:

select name, log_reuse_wait_desc from sys.databases  where name='tfs_hkitcollection'
發現log_reuse_wait_desc這一列已經變回log backup,證明處理成功,然後我再做一次日誌備份。資料庫tfs就可以訪問了。

到此為止,問題算是處理完畢。另外,如果有必要,可以收縮一下資料庫。

--檢查當前資料庫是否可以用於複製,1 = true,0 = false,可以更改db_name()來檢查其他資料庫。2008之前不知道可否使用。

select databasepropertyex ( db_name() , 'ispublished' )
至於複製,超過本文範圍,本文主要記錄處理心得,希望有同樣情況的人能得到解決,也作為自己的乙個記錄。

TFS TF30042 資料庫已滿 處理方法

今天早上,公司打來 說tfs team foundation server 微軟源 管理軟體簽入不了,報錯 tf30042 資料庫已滿。經過差不多半個小時的處理,基本上好了,再次總結一下 根據提示,我先檢查磁碟空間,發現都有幾十g 公司的tfs資料庫比較大,光壓縮備份就有20g以上 足夠用來備份。檢...

資料庫連線已滿

從資料庫自身來看 加大max connection試試 可以減小wait timeout的值 10秒應該可以的 檢查程式是否有關閉資料庫連線的bug,如果只開啟連線而不關閉也會出現此問題的。檢查下程式有沒有mysql close 從開發類 dba的角度 看 是否如果有表lock了。多半不是訪問量太大...

SQL資料庫日誌已滿

sql資料庫系統在使用一段時間後,日誌會越積越大,尤其是對於資料庫檔案本身就很大 同時dml操作較頻繁的時候,日誌檔案增大的速度會更快。有時候,我們會遇到日誌已滿的提示,即始不提示,也會發現資料備份時消耗的時間會越來越長,甚至會備份失敗。首先,清空日誌 dump transaction 庫名 wit...