What is the Azure Application Consistent Snapshot tool?
The Azure Application Consistent Snapshot tool (AzAcSnap) is a command-line tool that enables data protection for third-party databases. It handles all the orchestration required to put those databases into an application-consistent state before taking a storage snapshot. After the snapshot, the tool returns the databases to an operational state.
Supported databases, operating systems, and Azure platforms
- SAP HANA (see the support matrix for details)
- Oracle Database release 12 or later (see Oracle VM images and their deployment on Microsoft Azure for details)
- IBM Db2 for LUW on Linux-only version 10.5 or later (see IBM Db2 Azure Virtual Machines DBMS deployment for SAP workload for details)
- SUSE Linux Enterprise Server 12+
- Red Hat Enterprise Linux 7+
- Oracle Linux 7+
- Azure Virtual Machines with Azure NetApp Files storage
- Azure Large Instances (on bare-metal infrastructure)
If you're looking for new features (or support for other databases, operating systems, and platforms), see Preview features of the Azure Application Consistent Snapshot tool. You can also provide feedback or suggestions.
Benefits of using AzAcSnap
AzAcSnap uses the volume snapshot and replication functionalities in Azure NetApp Files and Azure Large Instances. It provides the following benefits:
Rapid backup snapshots independent of database size
AzAcSnap takes snapshot backups regardless of the size of the volumes or the database by using the snapshot technology of storage. It takes snapshots in parallel across all the volumes, to allow multiple volumes to be part of the database storage.
In tests, the tool took less than two minutes to take a snapshot backup of a database of 100+ tebibytes (TiB) stored across 16 volumes.
Application-consistent data protection
You can deploy AzAcSnap as a centralized or distributed solution for backing up critical database files. It ensures database consistency before it performs a storage volume snapshot. As a result, it ensures that you can use the storage volume snapshot for database recovery.
Database catalog management
When you use AzAcSnap with SAP HANA, the records within the backup 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 the tool takes 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 uses storage volume replication to provide options for recovering replicated application-consistent snapshots at a remote site.
AzAcSnap is a single binary. It doesn't need additional agents or plug-ins to interact with the database or the storage (Azure NetApp Files via Azure Resource Manager, and Azure Large Instances via Secure Shell [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 Instances) with copies installed on each database installation.
You can install AzAcSnap on the same host as the database (SAP HANA), or you can install it on a centralized system. But, you must have network connectivity to the database servers and the storage back end (Azure Resource Manager for Azure NetApp Files or SSH for Azure Large Instances).
AzAcSnap is a lightweight application that's typically run from an external scheduler. On most Linux systems, this operation is
cron, which is what the documentation focuses 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 that file paths and permissions are initialized correctly.
The following technical articles describe 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
- Manual Recovery Guide for SAP Db2 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:
azacsnap -c [command] --[command] [sub-command] --[flag-name] [flag-value].
The command options are as follows. The main bullets are commands, and the indented bullets are subcommands.
-hprovides extended command-line help with examples on AzAcSnap usage.
-c configureprovides an interactive Q&A style interface to create or modify the
azacsnapconfiguration file (default =
--configuration newcreates a new configuration file.
--configuration editenables editing an existing configuration file.
For more information, see the configure command reference.
-c testvalidates the configuration file and tests 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 allperforms both the
storagetests in sequence.
For more information, see the test command reference.
-c backupis the primary command to execute database-consistent storage snapshots for SAP HANA data volumes and for other (for example, shared, log backup, or boot) volumes.
--volume datatakes a snapshot of all the volumes in the
dataVolumestanza of the configuration file.
--volume othertakes a snapshot of all the volumes in the
otherVolumestanza of the configuration file.
--volume alltakes a snapshot of all the volumes in the
dataVolumestanza and then all the volumes in the
otherVolumestanza of the configuration file.
For more information, see the backup command reference.
-c detailsprovides information on snapshots or replication.
--details snapshotsprovides a list of basic details about the snapshots for each volume that you configured.
--details replicationprovides basic details about the replication status from the production site to the disaster-recovery site.
For more information, see the details command reference.
-c deletedeletes 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 tied to only the
hanasnapshots, which are created for the data and shared volumes. Otherwise, if you enter the snapshot name, the command searches for all snapshots that match the entered snapshot name.
For more information, see the delete command reference.
-c restoreprovides two methods to restore a snapshot to a volume.
--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.
For more information, see the restore command reference.
[--configfile <configfilename>]is an optional command-line parameter to provide a different file name for the JSON configuration. It's useful for creating a separate configuration file per security ID (for example,
[--runafter]are optional commands to run external commands or shell scripts before and after the execution of the main AzAcSnap logic.
For more information, see the runbefore/runafter command reference.
[--preview]is an optional command-line option that's required when you're using preview features.
For more information, see Preview features of the Azure Application Consistent Snapshot tool.