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

Tip

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.

Architecture overview

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.

Technical articles

The following technical articles describe where AzAcSnap has been used as part of a data protection strategy:

Command synopsis

The general format of the commands is: azacsnap -c [command] --[command] [sub-command] --[flag-name] [flag-value].

Command options

The command options are as follows. The main bullets are commands, and the indented bullets are subcommands.

  • -h provides extended command-line help with examples on AzAcSnap usage.

  • -c configure provides an interactive Q&A style interface to create or modify the azacsnap configuration file (default = azacsnap.json).

    • --configuration new creates a new configuration file.
    • --configuration edit enables editing an existing configuration file.

    For more information, see the configure command reference.

  • -c test validates the configuration file and tests connectivity.

    • --test hana tests the connection to the SAP HANA instance.
    • --test storage tests communication with the underlying storage interface by creating a temporary storage snapshot on all the configured data volumes, and then removing them.
    • --test all performs both the hana and storage tests in sequence.

    For more information, see the test command reference.

  • -c backup is 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 data takes a snapshot of all the volumes in the dataVolume stanza of the configuration file.
    • --volume other takes a snapshot of all the volumes in the otherVolume stanza of the configuration file.
    • --volume all takes a snapshot of all the volumes in the dataVolume stanza and then all the volumes in the otherVolume stanza of the configuration file.

    For more information, see the backup command reference.

  • -c details provides information on snapshots or replication.

    • --details snapshots provides a list of basic details about the snapshots for each volume that you configured.
    • --details replication provides basic details about the replication status from the production site to the disaster-recovery site.

    For more information, see the details command reference.

  • -c delete 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 tied to only the hana snapshots, 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 restore provides two methods to restore a snapshot to a volume.

    • --restore snaptovol creates a new volume based on the latest snapshot on the target volume.
    • -c restore --restore revertvolume reverts 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, --configfile H80.json).

  • [--runbefore] and [--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.

Next steps