By default, Veeam Backup & 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 - in this case Veeam Backup & Replication will process application logs. In case a disaster strikes, Veeam Backup & 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:
- Microsoft Active Directory
- Microsoft SQL Server
- Microsoft SharePoint
- Microsoft Exchange
Application-aware processing is the Veeam technology that allows Veeam Backup & Replication to stop applications running on the VM and create a consistent view of application data on the VM guest OS. After the application is stopped, Veeam Backup & Replication triggers the VM checkpoint and starts to copy VM data to the target. Depending on the VM OS, Veeam Backup & Replication utilizes the following technologies to create transactionally consistent backups:
- For Windows-based VMs, Veeam Backup & Replication uses Microsoft Volume Snapshot Service (Microsoft VSS). Microsoft VSS ensures that there are no unfinished database transactions or incomplete application files. For more information, see Microsoft Docs.
- For Linux-based VMs, Veeam Backup & Replication uses the agent that connects to the VM guest OS and prepares databases and instances for a consistent backup.
Requirements and Limitations
Application-aware processing for Linux-based VMs and Microsoft Windows Server versions is supported by the following versions of Microsoft Hyper-V (see Microsoft Docs). To use application-aware processing, you must have Hyper-V Integration Services and the latest updates installed on the VM guest OS. For more information on supported guest OS versions, see Supported Applications.
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), Veeam Backup & Replication will not be able to utilize Microsoft VSS and application-aware processing for this VM. To process such VMs, you can use Microsoft Hyper-V guest quiescence with pre-freeze and post-thaw scripts. For more information, see Microsoft Hyper-V Guest Quiescence and Pre-Freeze and Post-Thaw Scripts.
If you enable application-aware processing in job settings, Veeam Backup & Replication performs the following operations as a part of the backup or replication process:
- Veeam Backup & Replication 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.
- Veeam Backup & Replication collects information about applications installed on VMs — this information is required for VSS-aware restore.
VSS-aware restore is performed when the VM is started after you restore it from the backup or fail over to a VM replica.
- Veeam Backup & Replication prepares applications for VSS-aware restore.
- Microsoft VSS communicates with applications and quiesces I/O activities at a specific point in time.
- Microsoft Hyper-V VSS requestor triggers a VM VSS snapshot.
- Microsoft VSS resumes quiesced I/O activities on the VM guest OS.
- Veeam Backup & Replication triggers a snapshot for the volume on which the VM is located.
- The job session proceeds as usual.
- If you have instructed Veeam Backup & Replication to truncate transaction logs, Veeam Backup & Replication truncates transaction logs on the VM guest OS after the backup or replica are successfully created.
If you enable application-aware processing in job settings, Veeam Backup & Replication performs the following operations as a part of the backup or replication process
- Veeam Backup & Replication 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.
By default, Veeam Backup & 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 & Replication will use it to access the VM guest OS instead of SSH. For more information, see Persistent Agent Components.
- The pgsqlagent agent looks for PostgreSQL instance configuration files. It uses these files to get information on the PostgreSQL instance settings.
By default, configuration files are located in the following directories:
If you keep configuration file in the custom directories or if you want to exclude some directories from scan, you can manually create the /etc/veeam/VeeamPostgreSQLAgent.xml 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 /etc/veeam/VeeamPostgreSQLAgent.xml file:
Note that you must embed the commands into the <config /> tag. To specify several directories, separate them by a comma.
For example: <config ExcludeConfigDirs="/etc/postgresql/13/cl4/,/etc/postgresql/13/cl6/" AddConfigDirs="/home/user/pgconfdir/"/>.
This command skips 2 directories and includes 1 custom directory.
- The pgsqlagent agent returns a list of PostgreSQL configuration files to Veeam Backup & Replication.
- Veeam Backup & Replication accesses the PostgreSQL VM guest OS over SSH or over management agent.
- Veeam Backup & Replication connects to the PostgreSQL instance, gets a list of databases added to the instance and information that is necessary for data recovery operations.
- The pgsqlagent agent sets the PostgreSQL instance to the ready for a backup state.
- Agent freezes the VM guest OS and creates a snapshot of the PostgreSQL instance.
- Veeam Backup & Replication completes a backup of the PostgreSQL instance and resumes stopped activities on the VM guest OS.
- Veeam Backup & Replication saves a backup of a machine with a PostgreSQL instance to a backup repository.