数据库中事务日志已满的潜在原因和解决方案[关闭]

     2023-02-16     229

关键词:

【中文标题】数据库中事务日志已满的潜在原因和解决方案[关闭]【英文标题】:Potential causes and solutions for the transaction log in database being full [closed] 【发布时间】:2012-12-08 04:38:43 【问题描述】:

在我的团队 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 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

【问题讨论】:

你知道你对这个数据库的备份策略吗? “select type_desc, size, max_size from sys.database_files”返回什么? 是的,这就是文档所说的以及您需要做的。如果触发器添加、更新或删除,则将被记录。如果触发器不必要地添加、更新或删除,则将被不必要地记录。问题是你需要一个完整的恢复模型吗? 我相信每天都有一个自动备份的任务集,生成一个 .bak 文件。恢复模型列指示它是“完整”备份?我想。我看了看,我相信服务器已经用完了磁盘空间,所以可能阻止了根据需要生成备份,因此不允许截断事务日志? 除了 FULL 之外,还有哪些其他选项?备份与数据库相关的所有内容不是最佳做法吗?还是 FULL 也存储其他信息? 【参考方案1】:

如果您的数据库处于完全恢复模式,则日志不会被截断(截断是一个糟糕的词,我希望他们选择其他内容)直到执行日志备份。基本上,当您将数据库置于 FULL 恢复模式时,您就是在告诉 SQL Server 您需要时间点恢复。为了做到这一点,SQL Server 需要来自上次完整(或差异)备份的完整日志链,并且为了做到这一点,它不会重新使用(“截断”)日志空间,直到您备份了日志.

这是处于完全恢复模式的数据库的例行操作问题。如果您不需要时间点恢复,请将您的数据库设置为 SIMPLE 恢复模式 - 这将自动重用日志空间,但您只能恢复到上次的完整/差异备份。

如果您确实需要时间点恢复,那么您需要(嗯,您的 DBA 团队需要)设置一个定期执行日志备份的维护计划。

【讨论】:

谢谢,我相信这告诉我我需要什么。

数据库事务jeeps日志已满,原因为replication?

...然后进行复制和粘贴操作,用不了多久数据系统就会提示数据库事务jeeps日志已满,原因为replication,请问这种问题是怎么造成的?是打开蓝色字体的电话和地址造成的?还是多次进行复制粘贴造成呢?怎样去规避?请大神详解在... 查看详情

数据库事务jeeps日志已满,原因为replication

...Thetransactionlogfordatabase'***'isfulldueto'REPLICATION'(数据库“***”的事务日志已满,原因为“REPLICATION”).CDC以及复制的基本原理粗略地讲,对于日志的使用步骤如下:1,每当基础表(开启了CDC或者replication的表)产生事务性... 查看详情

事务日志已满,原因为“active_transaction”

...:http://www.cnblogs.com/dunitian/p/4822808.html#tsql异常处理汇总-数据库系列 http://www.cnblogs.com/dunitian/p/4522990.html我这种情况应该算是情况之一吧先贴图:看看磁盘:。。。把事务模式改成“简单”,然后收缩一下日记和数据文... 查看详情

sharepoint2010数据库xxx的事务日志已满

...有问题请求协助解决,对方给我展示的错误日志,如下:数据库‘WSS_Content_xxxx‘的事务日志已满.若要查明无法重用日志中的空间的原因,请参阅sy.databases中的log_reuse_wait_dec列导致的结果是用户再也无法上传文件到文档库了。看... 查看详情

mssql中开启cdc导致事务日志空间被占满事件记录(代码片段)

...的过程中提示,Thetransactionlogfordatabase***isfullduetoREPLICATION(数据库“***”的事务日志已满,原因为“REPLICATION”).CDC以及复制的基本原理粗略地讲,对于日志的使用步骤如下:  1、每当基础表(开启了CD 查看详情

sqlserver事务日志被填满的原因是啥

错误描述:数据库的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅sys.databases中的log_reuse_wait_desc列。首先引入一下事务日志的概念事务日志是一个与数据库文件分开的文件。它存储对数据库进行的所有更改,并... 查看详情

如何找出我在 Amazon EC2 上的存储空间已满的原因? [关闭]

】如何找出我在AmazonEC2上的存储空间已满的原因?[关闭]【英文标题】:HowcanIfindoutwhymystoragespaceonAmazonEC2isfull?[closed]【发布时间】:2013-11-3015:33:08【问题描述】:当我在我的AmazonEC2服务器上运行df-h时,输出如下:[ec2-user@ip-XXXX~]$d... 查看详情

db2数据库的事务日志已满怎么解决

参考技术A扩容,无论是循环日志还是归档日志,都要保证事务日志的目录空间足够即必须保证(primary+seconday)*logfilesize比文件系统小,才能保证数据库正常运行 查看详情

在每日作业计划的某一天,我收到错误数据库 dbname 的事务日志已满,原因是“ACTIVE_TRANSACTION”

】在每日作业计划的某一天,我收到错误数据库dbname的事务日志已满,原因是“ACTIVE_TRANSACTION”【英文标题】:OnacertaindayinthedailyjobscheduleigettheerrorThetransactionlogfordatabasedbnameisfulldueto\'ACTIVE_TRANSACTION\'【发布时间】:2017-06-0203:38:33... 查看详情

SQL Server 2014:事务日志错误:“由于 'XTP_CHECKPOINT',数据库 'ClientDB' 的事务日志已满。”

】SQLServer2014:事务日志错误:“由于\\\'XTP_CHECKPOINT\\\',数据库\\\'ClientDB\\\'的事务日志已满。”【英文标题】:SQLServer2014:TransactionLogserror:“Thetransactionlogfordatabase\'ClientDB\'isfulldueto\'XTP_CHECKPOINT\'.”SQLServer2014:事务日志错误:“... 查看详情

数据库的事务日志已满,起因为"log_backup"。(代码片段)

问题描述:数据库的事务日志已满,起因为"LOG_BACKUP"。问题截图:解决方法:1).选择数据库–属性—选项—恢复模式–选择简单。2).收缩数据库后,再调回完整。1USE[master]2GO3ALTERDATABASE要清理的数据库名称SETRECOVERYSIMPLE... 查看详情

Microsoft SQL Server - 事务日志已满是啥意思?

】MicrosoftSQLServer-事务日志已满是啥意思?【英文标题】:MicrosoftSQLServer-WhatdoesitmeanthataTransactionLogisFull?MicrosoftSQLServer-事务日志已满是什么意思?【发布时间】:2010-09-2301:43:09【问题描述】:事务日志已满是什么意思?我将文件... 查看详情

电脑开机提示:日志已满

...P系统,可开机时显示:WINDOWSSERVERFAMIILY。打开后屏幕显示日志已满,要求开机后清除日志。还提示按CTRL+ALT+DEL,输入用户名和密码的对话框本来是WINDOWSXP的,也变成WHISTERSERVER了。输入用户名和密码进入后无法正常显示。这是什... 查看详情

如何处理sybase临时表空间tempdb已满的问题

 开发数据库服务器遇到这样的一个问题,使用了一段时间之的后,突然之间数据库就用不了了,现象是新连接连接不上,已经连接的执行sql时,报出tempdb日志满了,无法进行操作的错误,而且控制台无法连接上服务器,所有操... 查看详情

ps图像处理ps软件提示不能完成命令,因为暂存盘已满的解决办法

...01.问题描述有时在使用PS软件时,会遇到提示暂存盘已满,ps无法进行操作。那么,这里就来教大家如何解决这个问题。02.问题分析一般遇到这个提示就是用户在Photoshop软件中暂存位置容量(硬盘容量)或者内... 查看详情

由于活动事务,SQL Server 日志已满

】由于活动事务,SQLServer日志已满【英文标题】:SQLServerLogfullduetoactivetransaction【发布时间】:2019-04-0810:42:26【问题描述】:我一直在尝试更新表中的列,但出现以下错误:Thetransactionlogfordatabase\'STAGING\'isfulldueto\'ACTIVE_TRANSACTION\'.... 查看详情

SQL 从事务日志中恢复数据

...错误,并且某些数据更新错误。请问是否可以使用存储在数据库中的事务日志来恢复数据?非常感谢【问题讨论】:【参考方案1】:使用完整备份和事务日志集合,您可以将数据库恢复到某个时间点。如果您不希望数据库脱​... 查看详情

数据库之事务控制和隔离级别

...作过程一笔一笔记录下来。如某个线程要对某个行操作,数据库会先保留老版本于事务日志中,对文件的写入,新版本的 查看详情