# Application-Aware Processing

By default, Veeam Backup &amp; Replication does not process application logs and creates a crash-consistent backup of VMs with applications that use transaction logs for operations. You can create a transactionally consistent backup <span class="List_L1">—</span> in this case, Veeam Backup &amp; Replication will process application logs. In case a disaster strikes, Veeam Backup &amp; Replication will use backups of logs to perform recovery operations.

To create transactionally consistent backups or replicas of VMs that run the following applications, you must enable application-aware processing in job settings:

- <span class="List_L1">Microsoft Active Directory</span>
- <span class="List_L1">Microsoft SQL Server</span>
- <span class="List_L1">Microsoft SharePoint</span>
- <span class="List_L1">Microsoft Exchange</span>
- <span class="List_L1">Oracle</span>
- <span class="List_L1">PostgreSQL</span>

Application-aware processing is the Veeam technology that allows Veeam Backup &amp; Replication to prepare applications running on the VM and create a consistent view of application data on the VM guest OS. Once the application is ready, Veeam Backup &amp; Replication triggers the VM snapshot and starts to copy VM data to the target. Depending on the VM OS, Veeam Backup &amp; Replication utilizes the following technologies to create transactionally consistent backups:

- <span class="List_L1">For Windows-based VMs, </span><span class="List_L1">Veeam Backup &amp; Replication</span><span class="List_L1"> uses Microsoft Volume Shadow Copy Service (Microsoft VSS). Microsoft VSS ensures that there are no unfinished database transactions or incomplete application files. For more information, see </span>[Microsoft Docs](https://learn.microsoft.com/en-us/windows-server/storage/file-server/volume-shadow-copy-service)<span class="List_L1">.</span>
- <span class="List_L1">For Linux-based VMs, </span><span class="List_L1">Veeam Backup &amp; Replication</span><span class="List_L1"> uses the agent that connects to the VM guest OS and prepares databases and instances for a consistent backup.</span>

<span class="Subheading">Requirements and Limitations</span>

Application-aware processing is supported for Linux-based VMs and Microsoft Windows client versions starting from Windows Vista and for server versions starting from Windows Server 2008. To use application-aware processing, you must have VMware Tools and the latest updates installed on the VM guest OS. For more information on supported guest OS versions, see [Supported Applications](https://helpcenter.veeam.com/docs/backup/vsphere/platform_support.html#guest).

<div id="bkmrk-important-if-a-vm-ru"><table border="0" cellpadding="0" cellspacing="0" class="Important"><tbody><tr><td><span class="T_ImportantType">Important</span>

</td></tr><tr><td><span class="Notes">If a VM runs an application that does not support Microsoft VSS (there is no VSS writer for this particular type of application, for example, MySQL), </span><span class="Notes">Veeam Backup &amp; Replication</span><span class="Notes"> will not be able to utilize Microsoft VSS and application-aware processing for this VM. To process such VMs, you can use </span><span class="Notes">VMware Tools</span><span class="Notes"> quiescence with pre-freeze and post-thaw scripts. For more information, see </span>[VMware Tools Quiescence](https://helpcenter.veeam.com/docs/backup/vsphere/tools_quiescence.html)<span class="Notes"> and </span>[Pre-Freeze and Post-Thaw Scripts](https://helpcenter.veeam.com/docs/backup/vsphere/pre_post_scripts.html)<span class="Notes">.</span>

</td></tr></tbody></table>

</div><a name="Windows"></a><span class="Subheading">How Application-Aware Processing Works for Windows-Based Machines</span>

<a name="Windows"></a>If you enable application-aware processing in job settings, Veeam Backup &amp; Replication performs the following operations as a part of the backup or replication process:

1. <a name="Windows"></a><span class="List_L1">Veeam Backup &amp; Replication</span><span class="List_L1"> deploys the non-persistent runtime components or, if necessary, persistent agent components on the VM and detects if the VM runs any of the supported applications.</span>
2. <a name="Windows"></a><span class="List_L1">Veeam Backup &amp; Replication</span><span class="List_L1"> collects information about applications installed on VMs — this information is required for VSS-aware restore.</span>

<a name="Windows"></a><span class="List_L1_Paragraph">VSS-aware restore is performed when the VM is started after you restore it from the backup or fail over to a VM replica.</span>

1. <a name="Windows"></a><span class="List_L1">Veeam Backup &amp; Replication</span><span class="List_L1"> prepares applications for VSS-aware restore.</span>
2. <a name="Windows"></a><span class="List_L1">Microsoft VSS communicates with applications and freezes I/O activities at a specific point in time.</span>
3. <a name="Windows"></a><span class="List_L1">Veeam Backup &amp; Replication</span><span class="List_L1"> acts as a VSS requestor and triggers a VM VSS snapshot.</span>
4. <a name="Windows"></a><span class="List_L1">Veeam Backup &amp; Replication</span><span class="List_L1"> triggers a </span><span class="List_L1">VMware vSphere</span><span class="List_L1"> snapshot of the VM.</span>
5. <a name="Windows"></a><span class="List_L1">Microsoft VSS resumes frozen I/O activities on the VM guest OS.</span>
6. <a name="Windows"></a><span class="List_L1">The job session proceeds as usual.</span>
7. <a name="Windows"></a><span class="List_L1">If you have instructed </span><span class="List_L1">Veeam Backup &amp; Replication</span><span class="List_L1"> to truncate transaction logs, </span><span class="List_L1">Veeam Backup &amp; Replication</span><span class="List_L1"> truncates transaction logs on the VM guest OS after the backup or replica is successfully created.</span>

<a name="Windows"></a>![Application-Aware Processing](https://helpcenter.veeam.com/docs/backup/vsphere/images/application_aware_processing.png)

<a name="Linux"></a><span class="Subheading">How Application-Aware Processing Works for PostgreSQL</span>

<a name="Linux"></a>If you enable application-aware processing in job settings, Veeam Backup &amp; Replication performs the following operations as a part of the backup or replication process

1. <a name="Linux"></a><span class="List_L1">Veeam Backup &amp; Replication</span><span class="List_L1"> installs either non-persistent components or persistent agent components to the VM guest OS and detects if the VM runs any of the supported applications.</span>

<div class="List_L1_Paragraph" id="bkmrk-note-by-default%2C-vee"><table border="0" cellpadding="0" cellspacing="0" class="Note"><tbody><tr><td><span class="T_NoteType">Note</span>

</td></tr><tr><td><span class="Notes">By default, Veeam Backup &amp; Replication installs non-persistent components to the VM guest OS and uninstalls them after the job completes. You can also install a Linux management agent to the VM guest OS — in this case, the agent will remain installed on the VM and Veeam Backup &amp; Replication will use it to access the VM guest OS instead of SSH. For more information, see </span>[Persistent Agent Components](https://helpcenter.veeam.com/docs/backup/vsphere/persistent_agent_components.html)<span class="Notes">.</span>

</td></tr></tbody></table>

</div>1. <a name="Linux"></a><span class="List_L1">The pgsqlagent agent looks for PostgreSQL instance configuration files. It uses these files to get information on the PostgreSQL instance settings.</span>

<div class="List_L1_Paragraph" id="bkmrk-note-by-default%2C-con"><table border="0" cellpadding="0" cellspacing="0" class="Note"><tbody><tr><td><span class="T_NoteType">Note</span>

</td></tr><tr><td><span class="Notes">By default, configuration files are located in the following directories:</span>

- <span class="Note_List">\[For Ubuntu, Debian\] — </span><span class="T_Filenames">/etc/</span>
- <span class="Note_List">\[For RHEL, SLES\] — </span><span class="T_Filenames">/var/lib/</span>

<span class="Notes">If you keep the configuration file in the custom directories or if you want to exclude some directories from the scan, you can manually create the </span><span class="T_Filenames">/etc/veeam/VeeamPostgreSQLAgent.xml</span><span class="Notes"> file. In this case, the pgsqlagent agent will use commands from this file. To explicitly include or exclude specific configuration files from rescan, add the following commands to the /</span><span class="T_Filenames">etc/veeam/VeeamPostgreSQLAgent.xml</span><span class="Notes"> file:</span>

- <span class="T_Filenames">ExcludeConfigDirs</span><span class="Note_List"> — use this command to exclude configuration files.</span>
- <span class="T_Filenames">AddConfigDirs</span><span class="Note_List"> — use this command to include configuration files.</span>

<span class="Notes">Note that you must embed the commands into the </span><span class="T_Filenames">&lt;config /&gt;</span><span class="Notes"> tag. To specify several directories, separate them by a comma.</span>

<span class="Notes">For example: </span><span class="T_Filenames">&lt;config ExcludeConfigDirs="/etc/postgresql/13/cl4/,/etc/postgresql/13/cl6/" AddConfigDirs="/home/user/pgconfdir/"/&gt;</span><span class="Notes">.</span>

<span class="Notes">This command skips 2 directories and includes 1 custom directory.</span>

</td></tr></tbody></table>

</div>1. <a name="Linux"></a><span class="List_L1">The pgsqlagent agent returns a list of PostgreSQL configuration files to </span><span class="List_L1">Veeam Backup &amp; Replication</span><span class="List_L1">.</span>
2. <a name="Linux"></a><span class="List_L1">Veeam Backup &amp; Replication</span><span class="List_L1"> accesses the PostgreSQL VM guest OS over SSH or over management agent.</span>
3. <a name="Linux"></a><span class="List_L1">Veeam Backup &amp; Replication</span><span class="List_L1"> connects to the PostgreSQL instance, gets a list of databases added to the instance and information that is necessary for data recovery operations.</span>
4. <a name="Linux"></a><span class="List_L1">The pgsqlagent agent sets the PostgreSQL instance to the ready for a backup state.</span>
5. <a name="Linux"></a><span class="List_L1">Agent freezes the VM guest OS and creates a snapshot of the PostgreSQL instance.</span>
6. <a name="Linux"></a><span class="List_L1">Veeam Backup &amp; Replication</span><span class="List_L1"> completes a backup of the PostgreSQL instance and resumes stopped activities on the VM guest OS.</span>
7. <a name="Linux"></a><span class="List_L1">Veeam Backup &amp; Replication</span><span class="List_L1"> saves a backup of a machine with a PostgreSQL instance to a backup repository.</span>

[https://helpcenter.veeam.com/docs/backup/vsphere/application\_aware\_processing.html?ver=120](https://helpcenter.veeam.com/docs/backup/vsphere/application_aware_processing.html?ver=120)