Configure the Azure Application Consistent Snapshot tool

This article shows you how to run the azacsnap -c configure command of the Azure Application Consistent Snapshot tool (AzAcSnap) that you can use with Azure NetApp Files.

Commands for the configuration file

You can create or edit the configuration file for AzAcSnap by using the azacsnap -c configure command. The command has the following options:

  • --configuration new to create a new configuration file

  • --configuration edit to edit an existing configuration file

  • [--configfile <config filename>] (optional parameter) to allow for custom configuration file names

By default, the name of the configuration file is azacsnap.json. You can use a custom file name with the --configfile= parameter (for example, --configfile=<customname>.json).

The following example creates a configuration file for an Azure Large Instances configuration:

azacsnap -c configure --configuration new
Building new config file
Add comment to config file (blank entry to exit adding comments): This is a new config file for AzAcSnap 6
Add comment to config file (blank entry to exit adding comments):
Enter the database type to add, 'hana', 'oracle', or 'exit' (for no database): hana

=== Add SAP HANA Database details ===
HANA SID (e.g. H80): H80
HANA Instance Number (e.g. 00): 00
HANA HDB User Store Key (e.g. `hdbuserstore List`): AZACSNAP
HANA Server's Address (hostname or IP address): testing01
Do you need AzAcSnap to automatically disable/enable backint during snapshot? (y/n) [n]:

=== Azure NetApp Files Storage details ===
Are you using Azure NetApp Files for the database? (y/n) [n]:

=== Azure Managed Disk details ===
Are you using Azure Managed Disks for the database? (y/n) [n]:

=== Azure Large Instance (Bare Metal) Storage details ===
Are you using Azure Large Instance (Bare Metal) for the database? (y/n) [n]: y
--- DATA Volumes have the Application put into a consistent state before they are snapshot ---
Add Azure Large Instance (Bare Metal) resource to DATA Volume section of Database configuration? (y/n) [n]: y
Storage User Name (e.g. clbackup25): clt1h80backup
Storage IP Address (e.g. 192.168.1.30): 172.18.18.11
Storage Volume Name (e.g. hana_data_soldub41_t250_vol): hana_data_h80_testing01_mnt00001_t020_vol
Add Azure Large Instance (Bare Metal) resource to DATA Volume section of Database configuration? (y/n) [n]: n
--- OTHER Volumes are snapshot immediately without preparing any application for snapshot ---
Add Azure Large Instance (Bare Metal) resource to OTHER Volume section of Database configuration? (y/n) [n]: n

Enter the database type to add, 'hana', 'oracle', or 'exit' (for no database): exit


Editing configuration complete, writing output to 'azacsnap.json'

Required values for the configuration file

The following sections provide detailed guidance on required values for the database section of the configuration file.

When you add an SAP HANA database to the configuration, the following values are required:

  • HANA Server's Address: The SAP HANA server's host name or IP address.
  • HANA SID: The SAP HANA system ID (SID).
  • HANA Instance Number: The SAP HANA instance number.
  • HANA HDB User Store Key: The SAP HANA user configured with permissions to run database backups.
  • Do you need AzAcSnap to automatically disable/enable backint during snapshot: Defaults to n (no). You can set it to y (yes) to allow AzAcSnap to disable or re-enable the Backint interface. The Backint coexistence section in this article explains this option in more detail.
  • Single node: Host name and IP address of the node.
  • HSR with STONITH: Host name and IP address of the node.
  • Scale-out (N+N, N+M): Current host name and IP address of the master node.
  • HSR without STONITH: Host name and IP address of the node.
  • Multi SID on Single node: Host name and IP address of the node that hosts those SIDs.

Backint coexistence

The Azure Backup service provides an alternate backup tool for SAP HANA. You can stream database and log backups into Azure Backup.

Some customers want to combine the streaming Backint-based backups with regular snapshot-based backups. However, Backint-based backups block other backup methods, such as using a files-based backup or a storage snapshot-based backup (for example, AzAcSnap). For more information, see Run SAP HANA native clients backup on a database with Azure Backup.

The process that the Azure Backup documentation describes has been implemented with AzAcSnap to automatically do the following steps:

  1. Force a log backup flush to Backint.
  2. Wait for running backups to finish.
  3. Disable the Backint-based backup.
  4. Put SAP HANA into a consistent state for backup.
  5. Take a storage snapshot-based backup.
  6. Release SAP HANA.
  7. Re-enable the Backint-based backup.

By default, this option is disabled. You can enable it by running azacsnap -c configure –configuration edit and answering y (yes) to the question Do you need AzAcSnap to automatically disable/enable backint during snapshot? (y/n) [n].

Editing the configuration as described sets the autoDisableEnableBackint value to true in the JSON configuration file (for example, azacsnap.json). It's also possible to change this value by editing the configuration file directly.

When you add Azure Large Instances storage to a database section, the following values are required:

  • Storage User Name: The user name for establishing the SSH connection to the storage.

  • Storage IP Address: The IP address of the storage system.

  • Storage Volume Name: The volume name to snapshot. You can determine this value in multiple ways. A simple way is to use the following shell command:

    grep nfs /etc/fstab | cut -f2 -d"/" | sort | uniq
    
    hana_data_p40_soldub41_mnt00001_t020_vol
    hana_log_backups_p40_soldub41_t020_vol
    hana_log_p40_soldub41_mnt00001_t020_vol
    hana_shared_p40_soldub41_t020_vol
    

Example configuration file

In the following example, azacsnap.json is configured with the one SID.

You must set the parameter values to your specific SAP HANA environment. For an Azure Large Instances system, Microsoft Service Management provides this information as an Excel file during the call for onboarding and handover. Open a service request if you need Microsoft Service Management to send the information again.

The following output is an example configuration file only. It's the content of the file that the configuration example generates. Update all the values accordingly.

cat azacsnap.json
{
  "version": "6",
  "logPath": "./logs",
  "securityPath": "./security",
  "comments": [
    "This is a new config file for AzAcSnap 6"
  ],
  "database": [
    {
      "hana": {
        "serverAddress": "testing01",
        "sid": "H80",
        "instanceNumber": "00",
        "hdbUserStoreName": "AZACSNAP",
        "savePointAbortWaitSeconds": 600,
        "autoDisableEnableBackint": false,
        "hliStorage": [
          {
            "dataVolume": [
              {
                "backupName": "clt1h80backup",
                "ipAddress": "172.18.18.11",
                "volume": "hana_data_h80_testing01_mnt00001_t020_vol"
              }
            ],
            "otherVolume": []
          }
        ],
        "anfStorage": [],
        "amdStorage": []
      },
      "oracle": null
    }
  ]
}

Note

For a disaster recovery (DR) scenario where you'll run backups at the DR site, the HANA server name that's configured in the DR configuration file (for example, DR.json) at the DR site should be the same as the production server name.

For Azure Large Instances, your storage IP address must be in the same subnet as your server pool. For example, in this case, the server pool subnet is 172.18.18.0/24 and the assigned storage IP address is 172.18.18.11.

Next steps