【问题标题】:Sql Server 2008 transaction log ErrorSql Server 2008 事务日志错误
【发布时间】:2012-02-05 05:07:35
【问题描述】:
select log_reuse_wait_desc from sys.databases where name = 'mydb'

1.  LOG_BACKUP

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

ODBC 错误:ODBC RC=-1,ODBC SQLState=37000,DBMS RC=9002,DBMS 消息=[Microsoft][ODBC SQL Server 驱动程序][SQL Server]数据库“mydb”的事务日志已满。到 找出日志中的空间不能被重用的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。操作已取消

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

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 = ?";

现在我什至不能使用任何其他更新查询。

我该如何解决这个问题?

【问题讨论】:

    标签: database sql-server-2008


    【解决方案1】:

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

    您需要释放磁盘空间。除非你这样做,否则你将无法做太多事情。

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

    为你的数据库收缩事务日志(一般不要这样做,只是遇到你现在的情况):

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

    sp_helpdb mydb
    go
    

    更新:您应该执行事务日志备份。您可能需要多次备份它。备份事务日志后,尝试缩小它。

    【讨论】:

      猜你喜欢
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多