Назад к списку

How to fix the issue? “The transaction log for the database is full due to active_transaction”

In the SQL Server database, the error "transaction log is full due to active_transaction" can occur due to incorrect settings or a completely filled transaction log. This problem hinders the execution of subsequent tasks. Therefore, in this article, experts from DB Serv will tell you about the causes of this error and effective ways to resolve it. 


What is the Transaction Log? 

To better understand the problem, let's delve into the terminology. The transaction log (T-Log) is a key component of the Microsoft SQL Server database management system. It represents a sequential record of all changes occurring in the database, including data insertion, updating, and deletion.

T-Log files contain specific transactions necessary for data recovery procedures. Therefore, in the event of a failure, the system can use information from the log to restore the database to its state prior to the failure and ensure data integrity.

What Causes the Error "Transaction Log Full"? 

Traditionally, the message indicating that the transaction log for database is full arises from two main reasons:

1. Long-Running Transactions 

Due to transactions that are running for too long and not completed in time, the T-Log retains information about data changes and does not free up space for new transactions. This leads to your log becoming filled up and unable to accept further operations. Hence, SQL Server displays the error "transaction log is full due to active_transaction." 

2. Low Log File Size 

If the size of the transaction log file is set too small, it can quickly fill up, especially during intensive transactional work. Additional transactions are not recorded when the log reaches its maximum size and cannot grow further. This results in the error "Transaction Log Full," but increasing the file size helps to resolve this issue.

How to Fix the Transaction Log Error? 

Let's consider several ways to solve problems in SQL Server related to numerous active transactions and filling up the T-Log. 

Increasing Log File Size 

Utilize SQL Server Management Studio (SSMS) to increase the size of the transaction log file. Here's what you need to do:

   ● Open the list of databases in your SQL Server instance.

   ● Identify the database connected to SQL DataTool or the one that issued the error. 

   ● Open the context menu and select "Properties." 

   ● Click on "Files" in the opened window and select the one with the file type LOG. 

   ● Click the "Modify" button (ellipsis button) under the "Autogrowth/Maxsize" column. 

   ● Adjust the Autogrowth settings according to your needs. 


Managing Long-Running Transactions 

Use monitoring tools such as SQL Server Profiler or Extended Events to identify long-running transactions. Then, you can take the following steps:

   ➡️ Divide long transactions into shorter ones to reduce the impact on the transaction log. 

   ➡️ Monitor database performance to proactively identify potential issues with long transactions. 

   ➡️ Optimize queries by reviewing the structure and efficiency of SQL queries executed in long transactions. 

   ➡️ Optimize SQL Server code to improve the overall performance of your database. 


Clearing Log Space

To free up space in the T-Log, you can perform regular backups of the database and its log. When increasing the log file size is not possible or determining the cause of the error is challenging, you can truncate the log using the DBCC SHRINKFILE command. This action clears the transaction log, allowing you to make new entries. 

Important: Truncating the log will cancel transactions that were not committed. Therefore, this method should be used only as a last resort. 


Backup and Restore Methods 

This model also helps truncate the log and ensures data recovery. Regular backups of the database and transaction log are necessary to restore the SQL Server to a specific point in time.

To create a backup of the database, use SSMS or T-SQL commands. You can set up regular backup execution through the SQL Server maintenance plan. 

Conclusion 

The transaction log plays a crucial role in ensuring data reliability and integrity. Any error appearing in the database, including "ACTIVE_TRANSACTION," disrupts the smooth operation of your system. Therefore, it's important to first identify the cause of the problem and then choose the most appropriate model to resolve it.

When the transaction log fills up, you can truncate it or increase the file size. Remember that such operations should be performed with caution to avoid data loss and minimize impact on the production environment. The experts at DB Serv have extensive experience with SQL Server, so they guarantee careful planning and testing of such operations to preserve data. 

Reach out to the experienced team at DB Serv and get professional assistance in resolving any errors in your database! 


DBserv > Blog > How to fix the issue? “The transaction log for the database is full due to active_transaction”
Services
DevOps
Azure
AWS
Database
Quick Links: Blog Contacts Prices
Contacts
© 2008-2024. Sitemap