2012-02-05 65 views
0
select log_reuse_wait_desc from sys.databases where name = 'mydb' 

enter image description hereSQL Server 2008中的事務日誌錯誤

1. LOG_BACKUP 

所有更新和插入查詢拋出:

ODBC Error: ODBC RC=-1, ODBC SQLState=37000, DBMS RC=9002, DBMS Msg=[Microsoft][ODBC SQL Server Driver][SQL Server]The transaction log for database 'mydb' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases. Operation canceled

我的查詢: 首先,我刪除和插入數據狀態表:

String insertQuery = "insert into "+dbmsName+"."+schemaName+".status(siteId,Severity) values(?,?)"; 
String deleteQuery = "delete from "+dbmsName+"."+schemaName+".status"; 

現在我從狀態表和更新直播表中選擇:

String updateQuery = "update "+dbmsName+"."+schemaName+".live set status = ? where new_site_id = ?"; 
String updateAllQuery = "update "+dbmsName+"."+schemaName+".live set status = site_status where new_site_id = ?"; 

現在,我甚至不能使用任何其他更新查詢過。

我該如何解決這個問題?

回答

1

「數據庫'mydb'的事務日誌已滿」 - 這就是問題所在。

您需要釋放磁盤空間。在你這樣做之前,你不會做太多事情。

您是否有定期的T-LOG維護計劃?如果您處於FULL恢復模式並且沒有備份正在運行,那麼交易將繼續增長。

要收縮事務日誌數據庫(遇到你目前的情況只是當不要這樣做正常):

的最大尺寸設置爲你的數據庫?運行此找出:

sp_helpdb mydb 
go 

更新:你應該執行事務日誌備份。您可能必須不止一次備份它。備份事務日誌後,嘗試縮小它。

+0

最大尺寸是無限的 – kinkajou 2012-02-05 05:23:36