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 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 = ?";
现在我甚至无法使用任何其他更新查询。
我该如何解决这个问题?
答案 0 :(得分:1)
“数据库'mydb'的事务日志已满” - 这就是问题所在。
您需要释放磁盘空间。在你做到这一点之前,你不会做太多事情。
您是否有定期的T-LOG维护计划?如果您处于完全恢复模式并且没有运行备份,则事务将继续增长。
缩小数据库的事务日志(请勿在遇到当前情况时正常执行此操作):
是否为您的数据库设置了最大大小?运行此以找出:
sp_helpdb mydb
go
更新 :您应该执行备份事务日志。您可能不得不多次支持它。备份事务日志后,请尝试缩小它。