What is Azure Application Consistent Snapshot tool
Azure Application Consistent Snapshot tool (AzAcSnap) is a command-line tool that enables data protection for third-party databases by handling all the orchestration required to put them into an application consistent state before taking a storage snapshot, after which it returns them to an operational state.
Supported Databases, OS and Azure Platforms
- SAP HANA (refer to support matrix for details)
- Oracle Database release 12 or later (refer to Oracle VM images and their deployment on Microsoft Azure for details)
- SUSE Linux Enterprise Server 12+
- Red Hat Enterprise Linux 7+
- Oracle Linux 7+
- Azure Virtual Machine with Azure NetApp Files storage
- Azure Large Instance (on BareMetal Infrastructure)
Benefits of using AzAcSnap
AzAcSnap leverages the volume snapshot and replication functionalities in Azure NetApp Files and Azure Large Instance. It provides the following benefits:
- Application-consistent data protection AzAcSnap is a centralized solution for backing up critical database files. It ensures database consistency before performing a storage volume snapshot. As a result, it ensures that the storage volume snapshot can be used for database recovery.
- Database catalog management When you use AzAcSnap with a database that has a built-in backup catalog, the records within the catalog are kept current with storage snapshots. This capability allows a database administrator to see the backup activity.
- Ad hoc volume protection This capability is helpful for non-database volumes that don't need application quiescing before taking a storage snapshot. Examples include SAP HANA log-backup volumes or SAPTRANS volumes.
- Cloning of storage volumes This capability provides space-efficient storage volume clones for development and test purposes.
- Support for disaster recovery AzAcSnap leverages storage volume replication to provide options for recovering replicated application-consistent snapshots at a remote site.
AzAcSnap is a single binary. It does not need additional agents or plug-ins to interact with the database or the storage (Azure NetApp Files via Azure Resource Manager, and Azure Large Instance via SSH). AzAcSnap must be installed on a system that has connectivity to the database and the storage. However, the flexibility of installation and configuration allows for either a single centralized installation (Azure NetApp Files only) or a fully distributed installation (Azure NetApp Files and Azure Large Instance) with copies installed on each database installation.
AzAcSnap can be installed on the same host as the database (SAP HANA), or it can be installed on a centralized system. But, there must be network connectivity to the database servers and the storage back-end (Azure Resource Manager for Azure NetApp Files or SSH for Azure Large Instance).
AzAcSnap is a lightweight application that is typically executed from an external scheduler. On most Linux systems, this operation is
cron, which is what the documentation will focus on. But the scheduler could be an alternative tool as long as it can import the
azacsnap user's shell profile. Importing the user's environment settings ensures file paths and permissions are initialized correctly.
This is a list of technical articles where AzAcSnap has been used as part of a data protection strategy.
- Manual Recovery Guide for SAP HANA on Azure VMs from Azure NetApp Files snapshot with AzAcSnap
- Manual Recovery Guide for SAP HANA on Azure Large Instance from storage snapshot with AzAcSnap
- Manual Recovery Guide for SAP Oracle 19c on Azure VMs from Azure NetApp Files snapshot with AzAcSnap
- SAP Oracle 19c System Refresh Guide on Azure VMs using Azure NetApp Files Snapshots with AzAcSnap
- Protecting HANA databases configured with HSR on Azure NetApp Files with AzAcSnap
- Automating SAP system copy operations with Libelle SystemCopy
The general format of the commands is as follows:
azacsnap -c [command] --[command] [sub-command] --[flag-name] [flag-value].
The command options are as follows with the commands as the main bullets and the associated sub-commands as indented bullets:
-hprovides extended command-line help with examples on AzAcSnap usage.
-c configureThis command provides an interactive Q&A style interface to create or modify the
azacsnapconfiguration file (default =
--configuration newwill create a new config file.
--configuration editwill edit an existing config file.
- refer to configure command reference.
-c testvalidates the configuration file and test connectivity.
--test hanatests the connection to the SAP HANA instance.
--test storagetests communication with the underlying storage interface by creating a temporary storage snapshot on all the configured
datavolumes, and then removing them.
--test allwill perform both the
storagetests in sequence.
- refer to test command reference.
-c backupis the primary command to execute database consistent storage snapshots for data (SAP HANA data volumes) & other (for example, shared, log backups, or boot) volumes.
--volume datato snapshot all the volumes in the
dataVolumestanza of the configuration file.
--volume otherto snapshot all the volumes in the
otherVolumestanza of the configuration file.
--volume allto snapshot all the volumes in the
dataVolumestanza and then all the volumes in the
otherVolumestanza of the configuration file.
- refer to backup command reference.
-c detailsprovides information on snapshots or replication.
--details snapshotsProvides a list of basic details about the snapshots for each volume that has been configured.
--details replicationProvides basic details around the replication status from the production site to the disaster-recovery site.
- refer to details command reference.
-c deleteThis command deletes a storage snapshot or a set of snapshots. You can use either the SAP HANA Backup ID as found in HANA Studio or the storage snapshot name. The Backup ID is only tied to the
hanasnapshots, which are created for the data and shared volumes. Otherwise, if the snapshot name is entered, it searches for all snapshots that match the entered snapshot name.
- see the delete command reference.
-c restoreprovides two methods to restore a snapshot to a volume, by either creating a new volume based on the snapshot or rolling back a volume to a previous state.
--restore snaptovolCreates a new volume based on the latest snapshot on the target volume.
-c restore --restore revertvolumeReverts the target volume to a prior state based on the most recent snapshot.
- refer to restore command reference.
[--configfile <configfilename>]The optional command-line parameter to provide a different JSON configuration filename. This is particularly useful for creating a separate configuration file per SID (e.g
[--runafter]are optional commands to run external commands or shell scripts before and after the execution of AzAcSnap's main logic.
- refer to runbefore/runafter command reference.
[--preview]Optional command-line option, required when using Preview Features, more information on the Preview page.