The database engine used by Exchange Server is the Extensible Storage Engine (ESE). It is a client-server based system, very closely related in nature, and a single user database model. In addition, the database is very stable when storing hierarchical data (such as mailboxes, folders, emails, attachments, etc.).
Exchange Server is often referred to as a transaction-based mail system. To understand what a transaction is, simply think of it as a series of database processing operations. This could be changing the email status (read / unread), sending or receiving email, moving or deleting messages in a folder, etc. The transaction is only transferred to the ESE database if the following tests are met:
Atomic: All operations required to complete the transaction should complete successfully; otherwise, no operations should be processed.
Consistent: When the transaction is committed to the database, the database is converted to a consistent state.
Isolated: Only when the transaction is committed in the database will changes made to the transaction be reflected in the database.
Durable: Even in the event of a system crash, the committed transaction makes the database secure.
In addition, the transaction should reach the database after it has been written to memory. Example: You want to move a message from one folder to another. In this case, the backend will do the following to complete the transaction:
If no action is taken now, the email will not be successfully moved from one folder to another. This means that the transaction will not complete until the atomicity test is passed. If everything happens appropriately, the transaction is also committed to the database to make it consistent. After that, the changes are visible to the end user and the database is persistent regardless of the events.
As we all know, manual Exchange database repair methods can leads to some data loss. Another alternative of manual process that can be used is a Professional Exchange EDB Recovery Software to repair Exchange database missing log files. These tools are designed to restore inconsistent Exchange databases with no log files and Recover Archived Emails in Exchange Server.
The two words Recovery and Restore are generally considered the same and have different meanings. Restore means that the database and log files are returned to an operational state, and Recovery means that the log files are repaired against the restored database. Repairing the log helps to update the database, i. e. Write uncommitted transactions to the database. Therefore, it is important that log files are available in order to perform recovery operations.
However, the need for log files depends entirely on whether the restored database is in a dirty or clean state. Let's discuss situations where log file availability is required in order to restore the database to a functional state.
Soft Recovery: It's an automated process. If the Exchange Server starts after an unexpected stop, all transaction logs are automatically reset to return the database to the same state as it was before the failure operation. In this case, the log file to repair is determined by the checkpoint file, which keeps track of all uncommitted transactions.
Hard Recovery: The transaction log against the database restored from the backup is repaired here. This restore must be done manually and only the logs stored in restore.env will be played back. When you restore a backup, the restore.env file is stored in a temporary folder and functions like a checkpoint file that defines the range of transaction logs to be repaired. Any log files beyond the scope of restore.env will not be repaired.
If the database is installed on the server then it is definitely in a dirty / inconsistent state as many transactions are going on all the time. If the database is dirty, a log file must be available. In the case of hard recovery, the requirement to restore the log file depends on the type of backup made. Let's understand this with an example:
#1: In this case, when an online backup of the Exchange database is made, the backup must be in a dirty state. Of course, when the database is active and its backup is being made, some transactions have to take place on the backend and most likely will not be written to the database. In this case, the resulting backup will be inconsistent regardless of the backup type.
If the backup is dirty but the log file is not available, all uncommitted transactions are rolled back. However, if the restored database is dirty and the log files are missing, the only solution in this case is to use the ESEutil /p command to repair the database.
#2: When an offline backup is taken, it means that the database was shut down by the server before the process actually started. When offline, the database has no outstanding transactions that need to be written to the database, which means that the backup it creates is in a consistent state. Hence, you can recover the lost Exchange database log files.
Based on the information above, we can summarize the following factors to repair Exchange database missing log files:
#1: If the database state of the log file being repaired is consistent, the log file does not need to be restored.
#2: If the restored database is inconsistent, log files are required to restore it to a consistent state.
#3: If the database is inconsistent and no log files are available, the only option is to use ESEutil to repair the database.