SAP ASE 16.0 on Azure NetApp Files for SAP Workloads on SLES15
Published Feb 04 2023 04:08 PM 10.8K Views
Microsoft

SAP ASE 16.0 on Azure NetApp Files for SAP Workloads on SLES15

 

Introduction

This document will show how you can install SAP NetWeaver 7.5 based on ASE 16.0 and SLES15 SP2 in Azure using Azure NetApp Files (ANF) as storage platform for data and log areas.

SAP Installation Documentation:

Installation Guide for Linux (sap.com)

SAP ASE Home - SAP ASE - Community Wiki

1554717 - SYB: Planning information for SAP on ASE - SAP ONE Support Launchpad

1928533 - SAP Applications on Microsoft Azure: Supported Products and Azure VM types

2015553 - SAP on Microsoft Azure: Support prerequisites

1492000 - General Support Statement for Virtual Environments - SAP ONE Support Launchpad

 

Note: Screenshots, input into dialogs, or operating system commands are based on the most recent versions of SWPM, SAP ASE 16.0, and SLES 15 SP2 as of January 2023. All these dialogs and/or commands can change with successor versions. 

 

Download the ASE Software from the SAP Service marketplace

RalfKlahr_0-1675165846812.png

 

RalfKlahr_1-1675165846817.png

 

Download the Patch SP04 (or newer) from the SAP Service Marketplace

RalfKlahr_2-1675165846819.png

 

Download the DB Client

RalfKlahr_3-1675166188329.png

 

Download the NetWeaver 7.5 Stack - Export

RalfKlahr_4-1675166188333.png

 

RalfKlahr_5-1675166188334.png

 

The Kernel

RalfKlahr_6-1675166188338.png

 

RalfKlahr_7-1675166188340.png

 

 

RalfKlahr_8-1675166188345.png

 

 

And as last the SWPM

RalfKlahr_9-1675166188348.png

 

The IGS

RalfKlahr_10-1675166188357.png

 

The IGS Helper

RalfKlahr_11-1675166188367.png

 

And last but not least …the SAP Host Agent

RalfKlahr_12-1675166188375.png

 

Create an Azure VM in your Azure Subscription

In this case we created an E16-8ds_v4 with 128GB of RAM and deployed SLES12SP5 on it.

RalfKlahr_13-1675166447875.png

 

 

RalfKlahr_14-1675166447890.png

 

Volume design on ANF

Create the volume structure on ANF. The size of each volume is depending on a proper capacity and performance sizing-

Mount the volumes and create the directories.

vi /etc/idmapd.conf
 # Example
 [General]
 Domain = defaultv4iddomain.com
 [Mapping]
 Nobody-User = nobody
 Nobody-Group = nobody

 

update the system

zypper up 

 

Install the RPM’s regarding the installation manual

zypper in motif libXtst-devel libXp-devel libX11-devel libSM-devel libICE-devel

 

zypper in glibc-32bit
zypper in sapconf

 

check that sapconf is running and that it is enabled.

systemctl status sapconf
sapconf.service – sapconf Loaded: loaded (/usr/lib/systemd/system/sapconf.service; enabled; vendor preset: enable> Active: active (exited) since Fri 12:54:21 UTC; 5min ago

 

create the group ID for your SAP systems (should be the same for all SAP systems)

groupadd sapsys -g 79

 

ASE Volume design for non XXL installations

As usual create one shared volume for the Application Server part , a Sybase volume for the database specific directories, data and log volume and the backup volume ideally on a different storage endpoint.

 

RalfKlahr_15-1675166447898.png

This diagram virtualizes the volume structure for ASE

RalfKlahr_17-1675166680671.jpeg

 

 

Create the directory structure on the OS and on the NetApp volumes.

Create the SAP App server structure

mount -o rsize=262144,wsize=262144,sec=sys,vers=4.1  anf02:/ralfA11shared  /mnt
mkdir -p /mnt/sapmnt /mnt/usr_sap
mkdir -p /usr/sap/A11 /sapmnt
umount /mnt

 

Create the Sybase “shared” structure

mount -t nfs -o rw,hard,sync,rsize=262144,wsize=262144,sec=sys,vers=4.1,tcp 10.0.1.5:/ralfA11sybase /mnt
mkdir -p /sybase/A11 /sybase/A11/sybsystem /sybase/A11/sybtemp /sybase/A11/sapdiag /sybase/A11/sybsecurity /sybase/A11/saptemp
mkdir -p /mnt/sybsystem /mnt/sybtemp /mnt/sapdiag /mnt/sybsecurity /mnt/saptemp
umount /mnt

 

Create the data structure

mount -t nfs -o rw,hard,sync,rsize=262144,wsize=262144,sec=sys,vers=4.1,tcp 10.0.1.5:/ralfA11data /mnt
mkdir -p /sybase/A11/sapdata_1
mkdir -p /mnt/sapdata_1
umount /mnt

 

Create the log structure

mount -t nfs -o rw,hard,sync,rsize=262144,wsize=262144,sec=sys,vers=4.1,tcp 10.0.1.5:/ralfA11log /mnt
mkdir /sybase/A11/saplog_1
mkdir /mnt/saplog_1
umount /mnt

 

Create the backup structure

mount -t nfs -o rw,hard,sync,rsize=262144,wsize=262144,sec=sys,vers=4.1,tcp 10.0.1.5:/ralfA11backup /mnt
mkdir -p /sybase/A11/backup/data /sybase/A11/backup/log
mkdir -p /mnt/data /mnt/log
umount /mnt

 

Create the fstab

vi /etc/fstab
...
..
anf02:/ralfASEsoftware  /Software    nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0
#
anf02:/ralfA11shared/sapmnt  /sapmnt   nfs rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0
anf02:/ralfA11shared/usr_sap  /usr/sap/A11    nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0
#
anf02:/ralfA11sybase/sybsystem  /sybase/A11/sybsystem    nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0
anf02:/ralfA11sybase/sybtemp  /sybase/A11/sybtemp    nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0
anf02:/ralfA11sybase/sapdiag  /sybase/A11/sapdiag    nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0
anf02:/ralfA11sybase/sybsecurity  /sybase/A11/sybsecurity  nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0
anf02:/ralfA11sybase/saptemp  /sybase/A11/saptemp    nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0
anf02:/ralfA11data/sapdata_1  /sybase/A11/sapdata_1 nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0
anf02:/ralfA11log/saplog_1  /sybase/A11/saplog_1    nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0

Prepare the SAP installation

Download the required packages from the SAP Software Download Center. Store the files in /Software

/Software # ll
-rw-r--r-- 1 root root 3692226709 Sep 21 11:03 51050829_3.ZIP
-rw-r--r-- 1 root root 2373751114 Sep 21 11:00 51055060_1.ZIP
-rw-r--r-- 1 root root   11462898 Sep 21 11:07 ASEBC16004P_1-20012478.SAR
-rw-r--r-- 1 root root 2825640866 Sep 21 11:01 ASEBS16004P_1-10013281.SAR
-rw-r--r-- 1 root root    4483040 Aug 25 09:21 SAPCAR.EXE
-rw-r--r-- 1 root root    4742096 Sep 15 12:58 SAPCAR_win.EXE
-rw-r--r-- 1 root root   25524734 Sep 21 11:12 SAPEXEDB_801-80002684.SAR
-rw-r--r-- 1 root root  370681480 Sep 21 11:14 SAPEXE_801-80002674.SAR
-rw-r--r-- 1 root root   79045422 Sep 21 13:13 SAPHOSTAGENT53_53-80004822.SAR
-rw-r--r-- 1 root root  550097396 Sep 21 11:16 SWPM10SP32_6-20009701.SAR
-rw-r--r-- 1 root root  104064440 Sep 21 11:57 igsexe_13-80003187.sar
-rw-r--r-- 1 root root   62964377 Sep 21 11:57 igshelper_17-10010245.sar

 

/Software # mkdir Kernel_753
/Software # mv SAPEXE_801-80002674.SAR SAPEXEDB_801-80002684.SAR SAPHOSTAGENT53_53-80004822.SAR igsexe_13-80003187.sar igshelper_17-10010245.sar Kernel_753

 

 

Maintain the hosts file

vi /etc/hosts
127.0.0.1       localhost
10.0.0.10   ralfvm02.local ralfvm02
10.0.1.4    anf01
10.0.1.5    anf02

 

Extend the hostname

vi /etc/hostname
ralfvm02.local

 

Copy the SAPCAR to /usr/bin which allows you an easier usage.

cp SAPCAR.EXE /usr/bin/SAPCAR
chmod 775 /usr/bin/SAPCAR

 

set the root password on the VM (required for the SAP installation)

sudo su - 
passwd
Changing password for user root.
New password: *********
Retype new password: *******
passwd: all authentication tokens updated successfully.

 

df -h

df -h
Filesystem                        Size  Used Avail Use% Mounted on
/dev/sda4                          29G  2.9G   26G  10% /
/dev/sda3                        1014M  108M  907M  11% /boot
/dev/sda2                         512M  3.1M  509M   1% /boot/efi
10.0.1.5:/ralfASEsoftware         500G   17G  484G   4% /mnt
anf02:/ralfASEsoftware            500G   17G  484G   4% /Software
anf02:/ralfA11shared/sapmnt       500G     0  500G   0% /sapmnt
anf02:/ralfA11shared/usr_sap      500G     0  500G   0% /usr/sap/A11
anf02:/ralfA11sybase/sybsystem    500G     0  500G   0% /sybase/A11/sybsystem
anf02:/ralfA11sybase/sybtemp      500G     0  500G   0% /sybase/A11/sybtemp
anf02:/ralfA11sybase/sapdiag      500G     0  500G   0% /sybase/A11/sapdiag
anf02:/ralfA11sybase/sybsecurity  500G     0  500G   0% /sybase/A11/sybsecurity
anf02:/ralfA11sybase/saptemp      500G     0  500G   0% /sybase/A11/saptemp
anf02:/ralfA11data/sapdata_1     1000G     0 1000G   0% /sybase/A11/sapdata_1
anf02:/ralfA11log/saplog_1        500G     0  500G   0% /sybase/A11/saplog_1

extract the DB files

/Software # mkdir -p ASE/patch ASE/DB
/Software # mv ASEBS16004P_1-10013281.SAR ASE/patch
/Software # mv 51055060_1.ZIP ASE/DB

 

extract the SWPM

/Software # mkdir SWPM
/Software # mv SWPM10SP32_6-20009701.SAR SWPM
/Software # cd SWPM
/Software/SWPM # SAPCAR -xf SWPM10SP32_6-20009701.SAR

 

check that sapconf is running

systemctl status sapconf
sapconf.service - sapconf
Loaded: loaded (/usr/lib/systemd/system/sapconf.service; enabled; vendor preset: enabled)
Active: active (exited) since Fri 2021-05-14 11:37 UTC; 3min 1s ago
Process: 3827 ExecStart=/usr/sbin/sapconf start (code=exited, status=0/SUCCESS)
Main PID: 3827 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 512)
      CPU: 0
CGroup: /system.slice/sapconf.service

 

Disable the Firewall

systemctl stop firewalld
systemctl disable firewalld

 

Set the installation directory rights to 777 to prevent access issues from the installer

/ # chmod -R 777 /Software

 

Start the SAP Installation

Start the SWPM

ralfvm02:/Software/SWPM # ./sapinst

 

start your Browser and select the mentioned URL from the sapinst

https://10.0.0.10:4237/sapinst/docs/index.html

RalfKlahr_18-1675166961646.png

 

Select Advanced

Sign in to the service as root

RalfKlahr_19-1675166961649.png

 

 

 

Select NetWeaver 7.52 and ASE

RalfKlahr_20-1675166961655.png

 

Next

We select a standard system

RalfKlahr_21-1675166961657.png

 

Next

Select custom Installation

RalfKlahr_22-1675166961667.png

 

Specify the SID

RalfKlahr_23-1675166961680.png

 

Set the domain

RalfKlahr_24-1675166961689.png

 

Set the default password

 

RalfKlahr_25-1675167343456.png

 

 

Specify the (sapsys) group

RalfKlahr_26-1675167343468.png

 

specify the ASE account

RalfKlahr_27-1675167343481.png

 

 

specify the kernel components directory

RalfKlahr_28-1675167343496.png

 

 

All packages must have been identified

RalfKlahr_29-1675167343505.png

 

 

RalfKlahr_30-1675167343511.png

 

 

Specify the sapadm user details

RalfKlahr_31-1675167343529.png

 

 

Specify the ASE source package …

51055060_1.ZIP

 

Then the Export location

The right location is not easy to find….

In SAP Software Downloads, navigate to Installation & Upgrade > By Category > SAP Netweaver and Complementary Products > NW AS ABAP INNOVATION PACKAGE > NW AS ABAP 7.52 > Installation > 51051806_1 and 51051806_2

zypper in unrar
ls -l
-rw-r--r-- 1 root root 4000000000 Sep 28 12:59 51051806_part1.exe
-rw-r--r-- 1 root root 1064422459 Sep 28 12:56 51051806_part2.rar
/Software/exp # unrar x 51051806_part1.exe
51051806_part1.exe: Embedded RAR
51051806/DATA_UNITS/EXP1/DATA/REPOSRC-1.001  (454063104 B)...

 

Specify the path of the directory 51051806 in the menu

Specify the DB sizes in the next screen.

RalfKlahr_32-1675167343547.png

 

Here you e.g. can enable encryption.

RalfKlahr_33-1675167343570.png

 

Disklayout

RalfKlahr_34-1675167343624.png

 

 

ASE System parameter

RalfKlahr_35-1675167343653.png

 

Here the option to change the database passwords

RalfKlahr_36-1675167343673.png

 

I selected the two OS user for backup purposes in the user store.

RalfKlahr_37-1675167343701.png

 

System memory

RalfKlahr_38-1675167343714.png

 

With 8 import jobs I do not overload the system….

RalfKlahr_39-1675167672441.png

 

I keep the default here

RalfKlahr_40-1675167672486.png

 

I keep the default here

RalfKlahr_41-1675167672498.png

 

The PAS parameter

RalfKlahr_42-1675167672515.png

 

The default ports

RalfKlahr_43-1675167672525.png

 

For this PoC the default work process count is good enough

RalfKlahr_44-1675167672534.png

 

No SLD integration for me here…

RalfKlahr_45-1675167672547.png

 

 

 

The default secure store key is good enough for me

RalfKlahr_46-1675167672561.png

 

Start the installation after checking the parameter again.

 

RalfKlahr_47-1675167672569.png

Finished

 

RalfKlahr_48-1675167778622.png

 

Verify the DB access

Try to connect to the DB as syb<SID>

su - syba11
/sybase/A11% isql -Usapsa -SA11 -X
Password:
1>
2> select @@version
3> go
---------------------------------------------------------------------------
Adaptive Server Enterprise/16.0 SP04 PL01/EBF 29704 SMP/P/x86_64/SLES
12.4/ase160sp04pl01x/3473/64-bit/FBO/Tue Jul 20 07:58:11 2021                               
(1 row affected)

Backup

There is some very good documentation available

How to get backup of Sybase ASE 16.0 | SAP Community

DATABASE BACKUP IN SYBASE | SAP Community

Backup strategy for Sybase ASE | SAP Community

Guided steps to Setup Disaster Recovery (DR) Site for SAP ASE (Sybase) Database running with SAP Bus...

2570084 - How to start Backup Server manually - SAP ASE - SAP ONE Support Launchpad

2307016 - How to manually configure and start ASE Cockpit for an existing ASE server - SAP ASE - SAP...

2199714 - Error 4208 DUMP Transaction to a dump device is not allowed while the trunc log on chkpt o...

2199714 - Error 4208 DUMP Transaction to a dump device is not allowed while the trunc log on chkpt o...

1887068 - SYB: Using external backup and restore with SAP ASE - SAP ONE Support Launchpad

1585981 SYB: Ensuring Recoverability for Sybase ASE
1588316 SYB: Configure automatic database and log backups
1611715 SYB: How to restore a Sybase ASE database server (Windows)
1618817 SYB: How to restore a Sybase ASE database server (UNIX)
1887068 SYB: Using external backup and restore with SAP Sybase ASE

 

 

Define the backup location for data and log:

Change the access rights to the backup directory

chown -R syba11:sapsys /sybase/A11/backup

First need to login with ''sybsid''

su – syba11
isql -Usapsa -SA11 -X
Password: *******
use master
go
( SID Transaction Log Database Backup configuration )

sp_config_dump @config_name='A11LOG',
@stripe_dir = '/sybase/A11/backup/log' ,
@compression = '101' ,
@verify = 'header'
go

The change is completed. The option is dynamic and ASE need not be rebooted for
the change to take effect.
(return status = 0)
1>

Wait for the restart until the data-path is configured

( SID Database Backup configuration )

sp_config_dump @config_name='A11DB',
@stripe_dir = '/sybase/A11/backup/data',
@compression = '101' ,
@verify = 'header'
go
The change is completed. The option is dynamic and ASE need not be rebooted for
the change to take effect.
(return status = 0)

 

Now restart the DB

su - a11adm
a11adm 13> stopsap db
a11adm 14> startsap db

 

verify that the DB is running (as syba11)

showserver
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 S syba11    83111  83109  0  80   0 -  7873 x64_sy 13:47 ?        00:00:00 /sybase/A11/ASE-16_0/bin/backupserver -e/sybase/A11/ASE-16_0/install/A11_BS.log -N25 -C20 -I/sybase/A11/interfaces -M/sybase/A11/ASE-16_0/bin/sybmultbuf -SA11_BS -f/sybase/A11/ASE-16_0/A11_BS.cfg
0 S syba11    83018  83016 39  80   0 - 2395958 -    13:47 ?        00:00:36 /sybase/A11/ASE-16_0/bin/dataserver -d/sybase/A11/sybsystem/master.dat -e/sybase/A11/ASE-16_0/install/A11.log -c/sybase/A11/ASE-16_0/A11.cfg -M/sybase/A11/ASE-16_0 -N/sybase/A11/ASE-16_0/sysam/A11.properties -i/sybase/A11 -sA11

 

Try to create a DB backup :

dump database master using config = A11DB
go

 

dump database model using config = A11DB
go

 

dump database saptempdb using config = A11DB
go

 

dump database saptools using config = A11DB
go

 

dump database A11 using config = A11DB
go

Trans log backup :

dump transaction A11 using config = A11LOG
go

Creating DB SnapShots

ASE Snapshot Backup Before taking a storage Snapshot copy, the database is put into a consistent state by quiescing the user database and master database. The following steps show how to perform database backup by using a storage Snapshot copy.

Using the aseuserstore Utility With Other SAP ASE Utilities - SAP Help Portal

quiesce database - SAP Help Portal

Install the Azure CLI on Linux | Microsoft Docs (SLES)

Download the azacsnap tool

https://aka.ms/azacsnapinstaller

Get started with Azure Application Consistent Snapshot tool for Azure NetApp Files | Microsoft Learn

Prepare the SIDadm user to be able to use isql

cd
pwd
/home/a11adm
vi .sapenv_ralfvm02.csh
setenv LC_ALL en_US.UTF-8    #(at the end of the file)
# end SAP R/3 Environment
exit 
su - a11adm
env |grep UTF
LANG=C.UTF-8
LC_ALL=en_US.UTF-8

 

Configure the ASE User Secure Store for SIDadm

We create a user store key with the name SNAP…

aseuserstore set SNAP ralfvm02:4901@A11 sapsa <Password>

 

Check the DB connect with this key

isql -k SNAP -X
select @@version
go 
---------------------------------------------------------------------------
 Adaptive Server Enterprise/16.0 SP04 PL01/EBF 29704 SMP/P/x86_64/SLES 12.4/ase160sp04pl01x/3473/64-bit/FBO/Tue Jul 20 07:58:11 2021
(1 row affected)

 

The manual quiesce process:

quiesce database A11_for_SNAP hold A11, sybmgmtdb, saptools, master, sybsecurity for external dump
go

 

select is_quiesced(4)
go
 -----------
           1
(1 row affected)

 

You should create SnapShots for the data AND Sybase volume!!!

In the “data” volume is “only” the A11 database, the “sybase” volume is the location of the master- and the security database. Both are important for the recovery.

Now create the snapshot in the portal, azacsnap or Azure CLI

RalfKlahr_49-1675168260232.png

 

Un-quiesce the DB

quiesce database A11_for_SNAP release
go

 

select is_quiesced(4)
go
 -----------
           0
(1 row affected)

Device Overview

1> sp_helpdevice
2> go
 device_name          physical_name                                    description                                                                                    status cntrltype vdevno vpn_low vpn_high
--------------- ------ --------- ------ ------- --------
 A11_data_001         /sybase/A11/sapdata_1/A11_data_001.dat           file system device, special, dsync off, directio on, physical disk, 40960.00 MB, Free: 0.00 MB      2         0      6       0 20971519
 A11_log_001          /sybase/A11/saplog_1/A11_log_001.dat             file system device, special, dsync off, directio on, physical disk, 10240.00 MB, Free: 0.00 MB      2         0      7       0  5242879
 master               /sybase/A11/sybsystem/master.dat                 file system device, special, dsync on, directio off, physical disk, 450.00 MB, Free: 78.00 MB       2         0      0       0   230399
 saptempdb_data_001   /sybase/A11/saptemp/saptempdb_data_001.dat       file system device, special, dsync off, directio on, physical disk, 8192.00 MB, Free: 0.00 MB       2         0     13       0  4194303
 saptools_data_001    /sybase/A11/sapdiag/saptools_data_001.dat        file system device, special, dsync off, directio on, physical disk, 2048.00 MB, Free: 0.00 MB       2         0      8       0  1048575
 saptools_log_001     /sybase/A11/sapdiag/saptools_log_001.dat         file system device, special, dsync off, directio on, physical disk, 2048.00 MB, Free: 0.00 MB       2         0      9       0  1048575
 sybmgmtdev           /sybase/A11/sybsystem/sybmgmtdb_data_001.dat     file system device, special, dsync off, directio on, physical disk, 150.00 MB, Free: 2.00 MB        2         0      4       0    76799
 sybmgmtlogdev        /sybase/A11/sybsystem/sybmgmtdb_log_001.dat      file system device, special, dsync off, directio on, physical disk, 50.00 MB, Free: 2.00 MB         2         0      5       0    25599
 sybsecurity_data_001 /sybase/A11/sybsecurity/sybsecurity_data_001.dat file system device, special, dsync off, directio on, physical disk, 1024.00 MB, Free: 0.00 MB       2         0     10       0   524287
 sybsecurity_data_002 /sybase/A11/sybsecurity/sybsecurity_data_002.dat file system device, special, dsync off, directio on, physical disk, 1024.00 MB, Free: 0.00 MB       2         0     11       0   524287
 sybsecurity_log_001  /sybase/A11/sybsecurity/sybsecurity_log_001.dat  file system device, special, dsync off, directio on, physical disk, 512.00 MB, Free: 0.00 MB        2         0     12       0   262143
 sysprocsdev          /sybase/A11/sybsystem/sysprocs.dat               file system device, special, dsync off, directio on, physical disk, 300.00 MB, Free: 0.00 MB        2         0      1       0   153599
 systemdbdev          /sybase/A11/sybsystem/sybsysdb.dat               file system device, special, dsync off, directio on, physical disk, 50.00 MB, Free: 2.00 MB         2         0      2       0    25599
tempdbdev            /sybase/A11/sybtemp/tempdbdev.dat                file system device, special, dsync off, directio off, physical disk, 3072.00 MB, Free: 0.00 MB      2         0      3       0  1572863
(return status = 0)

 

Configure azacsnap

Install the Azure Application Consistent Snapshot tool for Azure NetApp Files | Microsoft Learn

Azacsnap is supporting only HANA, DB2 and Oracle at the moment. It is, however, possible to take a snapshot from the data volume and use the new feature in the version 7 with pre and post automation.

Create the service principal for your subscription and install azacsnap – in the Azure Portal

Store the output in a file I used /tmp/auth.json

az ad sp create-for-rbac --name "AzAcSnap" --role Contributor --scopes /subscriptions/{subscription-id} --sdk-auth

 

You will get an output which looks similar to this:

{
  "clientId": "0815**4711-4**-a91f-d937*********1",
  "clientSecret": "d~_8Q~****Zk*****Y_********",
  "subscriptionId": "47110815-***-****-***-**********",
  "tenantId": "K47110815-****-4ecc-bda0-**********",
  "activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
  "resourceManagerEndpointUrl": "https://management.azure.com/",
  "activeDirectoryGraphResourceId": "https://graph.windows.net/",
  "sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
  "galleryEndpointUrl": "https://gallery.azure.com/",
  "managementEndpointUrl": "https://management.core.windows.net/"
}

Create an auth.conf file and copy the content into this file

vi /tmp/auth.json

 

ls -la /tmp
-rw-r--r-- 1 root   root    25148727 Aug  2 11:02 azacsnap_6_installer.run
-rw-r--r-- 1 root   root         629 Nov  7 14:32 auth.json

 

Install azacsnap

./azacsnap_7_installer.run -I

 

Configure azacsnap

azacsnap -c configure --configuration=new
Building new config file
Add comment to config file (blank entry to exit adding comments): ASE Test
Add comment to config file (blank entry to exit adding comments):
Enter the database type to add, 'hana', 'oracle', or 'exit' (for no database): oracle
=== Add Oracle Database details ===
Oracle Database SID (e.g. CDB1): A11
Database Server's Address (hostname or IP address): 10.0.0.10
Oracle connect string (e.g. /@AZACSNAP):
=== Azure NetApp Files Storage details ===
Are you using Azure NetApp Files for the database? (y/n) [n]: y
--- DATA Volumes have the Application put into a consistent state before they are snapshot ---
Add Azure NetApp Files 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 NetApp Files resource to OTHER Volume section of Database configuration? (y/n) [n]: y
Full Azure NetApp Files Storage Volume Resource ID (e.g. /subscriptions/.../resourceGroups/.../providers/Microsoft.NetApp/netAppAccounts/.../capacityPools/Premium/volumes/...): /subscriptions/08154711-4***-**********/resourceGroups/*****/providers/Microsoft.NetApp/netAppAccounts/********/capacityPools/anfpool/volumes/A11data
Service Principal Authentication filename or Azure Key Vault Resource ID (e.g. auth-file.json or https://...): auth.json
Add Azure NetApp Files resource to OTHER Volume section of Database configuration? (y/n) [n]: y
Full Azure NetApp Files Storage Volume Resource ID (e.g. /subscriptions/.../resourceGroups/.../providers/Microsoft.NetApp/netAppAccounts/.../capacityPools/Premium/volumes/...): /subscriptions/08154711-4***-**********/resourceGroups/*****/providers/Microsoft.NetApp/netAppAccounts/********/capacityPools/anfpool/volumes/A11sybase
Service Principal Authentication filename or Azure Key Vault Resource ID (e.g. auth-file.json or https://...): auth.json
Add Azure NetApp Files resource to OTHER Volume section of Database configuration? (y/n) [n]: n
=== Azure Managed Disk details ===
Are you using Azure Managed Disks for the database? (y/n) [n]: n
=== Azure Large Instance (Bare Metal) Storage details ===
A
re you using Azure Large Instance (Bare Metal) for the database? (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'.

 

Test the storage connection, at this point we “only” can test the storage connection. The ASE backup-mode will be scheduled as “runbefore” and “runafter”.

azacsnap -c test --test=storage
BEGIN : Test process started for 'storage'
BEGIN : Storage test snapshots on 'data' volumes
BEGIN : Test Snapshots for Storage Volume Type 'data'
PASSED: Storage test completed successfully for all 'data' Volumes
END   : Storage tests complete
END   : Test process complete for 'storage'

 

Create the .bashrc for the azacsnap user (compare the environment from the SIDadm user)

vi .bashrc
...
export LANG=C.UTF-8
export LC_ALL=en_US.UTF-8
export PATH=$PATH:/sybase/A11/OCS-16_0/bin:/usr/sap/A11/SYS/exe/uc/linuxx86_64:/usr/sap/A11/SYS/exe/run:/home/a11adm:/sybase/A11/ASE-16_0/jobscheduler/bin:/sybase/A11/ASE-16_0/bin:/sybase/A11/ASE-16_0/install:/sybase/A11/WLA/bin::/sybase/A11/OCS-16_0/bin:
export RSEC_SSFS_DATAPATH=/usr/sap/A11/SYS/global/security/rsecssfs/data
export RSEC_SSFS_KEYPATH=/usr/sap/A11/SYS/global/security/rsecssfs/key
export LD_LIBRARY_PATH=/usr/sap/A11/SYS/exe/run:/usr/sap/A11/SYS/exe/uc/linuxx86_64:/usr/sap/A11/SYS/global/syb/linuxx86_64/sybodbc:/sybase/A11/ASE-16_0/lib:/sybase/A11/OCS-16_0/lib:/sybase/A11/OCS-16_0/lib3p64:/sybase/A11/OCS-16_0/lib3p:
export SYBASE_OCS=OCS-16_0
export SYBASE=/sybase/A11
export SYBASE_ASE=ASE-16_0
export SYBASE_JRE_RTDS=/sybase/A11/shared/SAPJRE-8_1_075_64BIT
export SYBASE_WS=WS-16_0

 

We create a user store key with the name SNAP…

aseuserstore set SNAP ralfvm02:4901@A11 sapsa <Password>

 

Create the two Quice and Unquice scripts. (no Microsoft support) this is only an example.

vi aseQuiesce.sh
#!/bin/bash
SID="$1"
KEY="$2"
SAVEPOINT="SNAPSHOT_BACKUP"
if [[ "$SID" == "" || "$KEY" == "" ]]; then
  echo "Usage: `basename $0` <SID> <USERSTOREKEY>"  exit 1
fi
sqlFile=$(mktemp)
cat > $sqlFile << EOF
quiesce database $SAVEPOINT hold $SID, sybmgmtdb, saptools, master, sybsecurity for external dump
go
select is_quiesced(4)
go
EOF
rc=`isql -k $KEY -X -i $sqlFile -b | head -1 | tr -d "[:blank:]"`
rm $sqlFile
if [ $rc = 1 ]; then
  echo "Database $SID succesfully quiesced."  exit 0
else
  echo "Error quiescing database $SID."  exit 1
fi

 

vi aseUnquiesce.sh
#!/bin/bash
SID="$1"
KEY="$2"
SAVEPOINT="SNAPSHOT_BACKUP"
if [[ "$SID" == "" || "$KEY" == "" ]]; then
  echo "Usage: `basename $0` <SID> <USERSTOREKEY>"  exit 1
fi
sqlFile=$(mktemp)
cat > $sqlFile << EOF
quiesce database $SAVEPOINT release
go
select is_quiesced(4)
go
EOF
rc=`isql -k $KEY -X -i $sqlFile -b | head -1 | tr -d "[:blank:]"`
rm $sqlFile
if [ $rc = 0 ]; then
  echo "Database $SID successfully unquiesced."  exit 0
else
  echo "Error unquiescing database $SID."  exit 1
fi

Test the scripts and the logon with user azacsnap

Logon via isql

su – azacsnap
cd bin
isql -k SNAP -X
1> exit 

 

Test the Quice and Unquics script

su – azacsnap
cd bin 
aseQuiece.sh A11 SNAP
Database A11 succesfully quiesced. exit 0

 

aseUnquiesce.sh A11 SNAP
Database A11 successfully unquiesced. exit 0

 

Now create an application consistent snapshot using azacsnap

su – azacsnap
cd bin

 

aseQuiece.sh A11 SNAP
Database A11 succesfully quiesced. exit 0

 

azacsnap -c backup --volume other --prefix ASE_hourly --retention 3

 

aseUnquiesce.sh A11 SNAP
Database A11 successfully unquiesced. exit 0

 

Check the portal is the snapshot exists

RalfKlahr_0-1675170950922.png

 

List the taken SnapShots

azacsnap -c details
List snapshot details called with snapshotFilter ''
#, Volume, SnapshotName
#1, ralfA11data, ASE_hourly__2022-11-08T144805-3701065Z
#2, ralfA11data, Test03
#1, ralfA11sybase, ASE_hourly__2022-11-08T144805-3701065Z

Fully automat the snapshot creation

azacsnap -c backup --volume other --prefix ASE_hourly --runbefore '/home/azacsnap/bin/aseQuiece.sh' --runafter '/home/azacsnap/bin/aseUnquiesce.sh' --retention 3

 

azacsnap -c details
List snapshot details called with snapshotFilter ''
#, Volume, SnapshotName
#1, ralfA11data, ASE_hourly__2022-11-12T070552-5533842Z
#2, ralfA11data, ASE_hourly__2022-11-08T144805-3701065Z
#3, ralfA11data, Test03
#1, ralfA11sybase, ASE_hourly__2022-11-12T070552-5533842Z
#2, ralfA11sybase, ASE_hourly__2022-11-08T144805-3701065Z

 

Restore using azacsnap

Shutdown SAP and ASE (if possible – if not simply “kill” the DB. We are restoring anyway.

stopsap all

 

kill all Sybase processes

killall -u syba11

 

Umount the data directory (we keep the Sybase exe volume) we assume only the data volume must be restored)

umount /sybase/A11/sapdata_1 

 

At the moment azacsnap does not support “Revert Volume” for ANF. If you would like to keep the volume names you have the option to “revert a volume using the Azure Portal.

See:

su – azacsnap
cd bin
azacsnap -c restore --dbsid A11 --restore revertvolume --configfile azacsnap.json --snapshotfilter ASE_hourly__2022-11-08T144805-3701065Z
...
Azure NetApp Files volumes not supported for revertvolume, will not revert volume.

 

With ANF you do have the option to clone a volume. This is probably the better option anyway. How to clone a volume for a recovery is demonstrated here:

 

AzAcSnap is designed to restore a collection of dataVolumes and otherVolumes.  AzAcSnap makes sure all the dataVolumes share the same snapshot to be restored and the otherVolumes the latest snapshot to be restored.  In a deployment with multiple data volumes (e.g., SAP HANA Scale-Out) this can save a lot of time trying to ensure all the snapshots match in the Azure Portal before cloning or reverting the volumes.  This means when using a setup with custom scripts to quiesce/unquiesce the database it's necessary to create a copy of the backup configfile and change "otherVolume" to "dataVolume" and change "dataVolume" to "otherVolume" effectively switching them.

 

cp azacsnap.json azacsnap_snaptovol.json
vi azacsnap_snaptovol.json
        "anfStorage": [
          {
            "otherVolume": [],
            "dataVolume": [

Down here are the specifications of your ANF volumes à keep unchanged change only dataVolume to otherVolume and otherVolume to dataVolume.

list the available SnapShots

azacsnap -c details
List snapshot details called with snapshotFilter ''
#, Volume, SnapshotName
#1, ralfA11data, ASE_hourly__2022-11-08T144805-3701065Z
#1, ralfA11sybase, ASE_hourly__2022-11-08T144805-3701065Z 
azacsnap -c restore --dbsid A11 --restore revertvolume --configfile azacsnap_snaptovol.json --snapshotfilter ASE_hourly__2022-11-08T144805-3701065Z

 

create the new /etc/fstab

 

pwd
/home/azacsnap/bin

 

grep rwclone ./logs/*.log
… Creating new volume 'ralfa11data-rwclone-20221111-0732'
… Volume 'ralfa11data-rwclone-20221111-0732' successfully created from snapshot.

… Creating new volume 'ralfa11sybase-rwclone-20221111-0732'
… Volume 'ralfa11sybase-rwclone-20221111-0732' successfully created from snapshot.

 

Since I only recover the data volume I only change the data volume location must be done as root.

exit

 

vi /etc/fstab
anf02:/ralfASEsoftware  /Software    nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0
#
anf02:/ralfA11shared/sapmnt  /sapmnt   nfs rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0
anf02:/ralfA11shared/usr_sap  /usr/sap/A11    nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0
#
anf02:/ralfA11sybase/sybsystem  /sybase/A11/sybsystem    nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0
anf02:/ralfA11sybase/sybtemp  /sybase/A11/sybtemp    nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0
anf02:/ralfA11sybase/sapdiag  /sybase/A11/sapdiag    nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0
anf02:/ralfA11sybase/sybsecurity  /sybase/A11/sybsecurity  nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0
anf02:/ralfA11sybase/saptemp  /sybase/A11/saptemp    nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0
#
anf02:/ralfa11data-rwclone-20221111-0732/sapdata_1  /sybase/A11/sapdata_1 nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0anf02:/ralfA11log/saplog_1  /sybase/A11/saplog_1    nfs  rw,hard,timeo=600,vers=4.1,nconnect=8,rsize=262144,wsize=262144,noatime,lock  0  0

 

the clone of the “ralfA11sybase” volume should (must) be deleted manually. It is not required for a “normal” database recovery. We require only the data-volume.

mount the clone volumes

mount -a
anf02:/ralfA11shared/usr_sap    100G  3.6G   97G   4% /usr/sap/A11
anf02:/ralfA11log/saplog_1      100G   11G   90G  11% /sybase/A11/saplog_1
anf02:/ralfASEsoftware          100G   17G   84G  17% /Software
anf02:/ralfA11shared/sapmnt     100G  3.6G   97G   4% /sapmnt
anf02:/ralfA11sybase/sybsystem  100G  9.3G   91G  10% /sybase/A11/sybsystem
anf02:/ralfA11sybase/sybtemp    100G  9.3G   91G  10% /sybase/A11/sybtemp
anf02:/ralfA11sybase/sapdiag    100G  9.3G   91G  10% /sybase/A11/sapdiag
anf02:/ralfA11sybase/sybsecurity 100G 9.3G 91G  10% /sybase/A11/sybsecurity
anf02:/ralfA11sybase/saptemp    100G  9.3G   91G  10% /sybase/A11/saptemp
anf02:/ralfa11data-rwclone-20221111-0732/sapdata_1  100G   41G   60G  41% /sybase/A11/sapdata_1

 

su – a11adm
startdb
starting database A11 ...
Log file: /sybase/A11/startdb.log
parse level 0: identified message 'Database 'master' is now online.'
parse level 1: identified message 'Database 'tempdb' is now online.'
parse level 2: identified message 'Database 'sybsystemprocs' is now online.'
parse level 3: identified message 'Recovery complete.'
Recovery Complete
startdb completed successfully

 

grep identified /sybase/A11/startdb.log
parse level 0: identified message 'Database 'master' is now online.'
parse level 1: identified message 'Database 'tempdb' is now online.'
parse level 2: identified message 'Database 'sybsystemprocs' is now online.'
parse level 3: identified message 'Recovery complete.'
Recovery Complete

 

Restore - manual

The restore process is easy.

After you discover an issue and you need to restore the ASE DB you stop the DB (if possible).

Make sure you have all logfile backups available in its original location

stopdb
stopping database A11 ...
stop database completed successfully

 

kill all Sybase processes

killall -u syba11

 

Unmount the volume and revert it

umount /sybase/A11/sapdata_1

 

Revert the volume

 

RalfKlahr_1-1675170950936.png

 

 

Mount the data volume

mount -a

 

Start the DB and check the logfile

su – a11adm
startdb
starting database A11 ...
Log file: /sybase/A11/startdb.log
parse level 0: identified message 'Database 'master' is now online.'
parse level 1: identified message 'Database 'tempdb' is now online.'
parse level 2: identified message 'Database 'sybsystemprocs' is now online.'
parse level 3: identified message 'Recovery complete.'
Recovery Complete
startdb completed successfully

 

grep identified /sybase/A11/startdb.log
parse level 0: identified message 'Database 'master' is now online.'
parse level 1: identified message 'Database 'tempdb' is now online.'
parse level 2: identified message 'Database 'sybsystemprocs' is now online.'
parse level 3: identified message 'Recovery complete.'
Recovery Complete

 

Now the media recovery is complete. Start SAP

su – a11adm
startsap all

 

Done…

have fun..

 

 

 

 

Co-Authors
Version history
Last update:
‎Feb 04 2023 04:08 PM
Updated by: