Sql Server 2008事务日志错误

时间:2012-02-05 05:07:35

标签: database sql-server-2008

select log_reuse_wait_desc from sys.databases where name = 'mydb'

enter image description here

1.  LOG_BACKUP

所有更新和插入查询抛出:

  

ODBC错误:ODBC RC = -1,ODBC   SQLState = 37000,DBMS RC = 9002,DBMS Msg = [Microsoft] [ODBC SQL Server   驱动程序] [SQL Server]数据库'mydb'的事务日志已满。至   找出为什么日志中的空间无法重用,请参阅   sys.databases中的log_reuse_wait_desc列。操作已取消

我的查询: 首先,我删除数据并将数据插入 STATUS 表:

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 个答案:

答案 0 :(得分:1)

“数据库'mydb'的事务日志已满” - 这就是问题所在。

您需要释放磁盘空间。在你做到这一点之前,你不会做太多事情。

您是否有定期的T-LOG维护计划?如果您处于完全恢复模式并且没有运行备份,则事务将继续增长。

缩小数据库的事务日志(请勿在遇到当前情况时正常执行此操作):

是否为您的数据库设置了最大大小?运行此以找出:

sp_helpdb mydb
go

更新 :您应该执行备份事务日志。您可能不得不多次支持它。备份事务日志后,请尝试缩小它。