gpt4 book ai didi

sql-server - 数据库事务日志满的潜在原因及解决方法

转载 作者:搜寻专家 更新时间:2023-10-30 21:40:43 25 4
gpt4 key购买 nike

<分区>

在我的团队 ASP.NET 应用程序的数据访问层中,我通过使用 .NET SQLClient 针对我们的数据库运行存储过程。添加新代码以允许对数据库进行插入操作后,我测试了代码,并收到以下异常:

The transaction log for database 'DBName' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases

我确认在尝试从 MS SQL Server Management Studio 中执行插入操作时收到了相同的消息。我很担心,因为我最近在两个数据库中添加了三个两个触发器,以根据对某些表的插入和更新执行一些数据插入,我认为我可能已经招致了无限循环或类似性质的事情。

但是,根据此问题的其他在线实例,它似乎不是通常由触发器或旋转查询引起的问题。我查询了 log_reuse_waitlog_reuse_wait_desc列并返回以下内容:

2 | LOG_BACKUP

另外,查询SELECT [name], recovery_model_desc, log_reuse_wait_desc<br/>
FROM sys.databases
返回:

name | recovery_model_desc| log_reuse_wait_desc

DBName| FULL | LOG_BACKUP

其中第一列是log_reuse_wait第二个是log_reuse_wait_desc .基于 msdn 上代码的定义,我需要进行日志备份,然后日志可以自动截断,以便对数据库进行进一步的操作。这是一个正确的假设吗?这可能是由错误编码的触发器引起的,还是更多的例行维护任务,由数据库上的大量事务引起?

编辑:

查询select type_desc, size, max_size from sys.database_files返回:

   type_desc | size | max_size
1| ROWS | 512 | -1
2| LOG | 64 | -1

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com