Jump to content

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


Recommended Posts

Guest RalfKlahr
Posted

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

 

687x248vv2.png.78562c0cc924b23866f3cc2c6015a477.png

 

 

 

687x117vv2.png.ccc58c7bb5a9bd385ed83715f8f4f387.png

 

 

 

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

 

687x117vv2.png.17382142984e6eaa1bd945c7431b2e6b.png

 

 

 

Download the DB Client

 

595x189vv2.png.8f5729df2aad82b755f93cb4206b2291.png

 

 

 

Download the NetWeaver 7.5 Stack - Export

 

573x135vv2.png.a684974423dc47fa62674f79918511be.png

 

 

 

572x39vv2.png.cd9ecf9a98be1e6f85951e78e277001b.png

 

 

 

The Kernel

 

617x167vv2.png.b807fe1b99c4ac1315b9b35b62ccedb7.png

 

 

 

616x39vv2.png.e306ad60906b9f8d80e1a036b39ae758.png

 

 

 

 

 

638x203vv2.png.2a45792160afdcddd619c71e59a0138b.png

 

 

 

 

 

And as last the SWPM

 

641x36vv2.png.bae06d347f170851c4257d0c0ce9f503.png

 

 

 

The IGS

 

628x189vv2.png.561598a24aad0f13c8dad7a58e609fb9.png

 

 

 

The IGS Helper

 

662x202vv2.png.b36df828df9c34a8c8531da946147071.png

 

 

 

And last but not least …the SAP Host Agent

 

663x199vv2.png.6638995a3617c856dcb339d6b6970e21.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.

 

648x619vv2.png.3d1ee37308155299ed78b97429afb88e.png

 

 

 

 

 

600x692vv2.png.a18b3500d1822904fd8c5a061f683999.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.

 

 

 

796x228vv2.png.461586d8afc985e0ef373dafc9754181.png

 

This diagram virtualizes the volume structure for ASE

 

724x457vv2.jpg.a6fa430e790d228abaaefe94031d110c.jpg

 

 

 

 

 

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

 

630x414vv2.png.e05ae6bd385bd64300c02323d1887993.png

 

 

 

Select Advanced

 

Sign in to the service as root

 

586x321vv2.png.524ae910b3733889ff4058e95f955085.png

 

 

 

 

 

 

 

Select NetWeaver 7.52 and ASE

 

628x386vv2.png.24e85149f839eabdf4629fb5ec1fc21e.png

 

 

 

Next

 

We select a standard system

 

564x202vv2.png.79b30a49d46bbf3fa94a3a5ba003beda.png

 

 

 

Next

 

Select custom Installation

 

703x355vv2.png.bc3598016f524b12495effb6ff87ee92.png

 

 

 

Specify the SID

 

807x336vv2.png.9d801bc307ca9b4a8e7867df2350027f.png

 

 

 

Set the domain

 

868x410vv2.png.02ee0db949d302395a24df4be1481c81.png

 

 

 

Set the default password

 

 

 

687x345vv2.png.f52ca83f1b9e9e527ac81eda635f2da9.png

 

 

 

 

 

Specify the (sapsys) group

 

608x377vv2.png.31e5227efd74a0efae84f4ccc57a7d6d.png

 

 

 

specify the ASE account

 

628x386vv2.png.87662ab8b7d73962d9dfae0b6e5d36a8.png

 

 

 

 

 

specify the kernel components directory

 

651x223vv2.png.77f03c50ced24d13a2512bf97a366386.png

 

 

 

 

 

All packages must have been identified

 

674x128vv2.png.cb4b384846b6541705c5e732c4614266.png

 

 

 

 

 

682x75vv2.png.817001ce76434aacc5758d3028802bf7.png

 

 

 

 

 

Specify the sapadm user details

 

649x388vv2.png.d6c83ffa312510f5789e1d56533f4a71.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.

 

780x497vv2.png.3687a7ece88b4378fbb0f6fa0f97a1a6.png

 

 

 

Here you e.g. can enable encryption.

 

662x602vv2.png.390643f930737755fcb4f765338ac4bf.png

 

 

 

Disklayout

 

727x390vv2.png.a59fd7247e5e95eab1961a95c4f2f177.png

 

 

 

 

 

ASE System parameter

 

633x448vv2.png.83c7f0beddadd1e3ef5d991ff60a4b99.png

 

 

 

Here the option to change the database passwords

 

656x465vv2.png.7cb551c36d962bb93d1e81ab48d36ca5.png

 

 

 

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

 

655x344vv2.png.12bedfebe5608db4a6b5c9999ad235c1.png

 

 

 

System memory

 

631x284vv2.png.2eca82ee719f584ad310af1480c481fc.png

 

 

 

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

 

634x332vv2.png.d25d7b4fae8a399602d68031cedd3cfe.png

 

 

 

I keep the default here

 

668x309vv2.png.0822800830c5e222545c337feef22fe7.png

 

 

 

I keep the default here

 

577x401vv2.png.2394e907e436da0e23017d8529fc0384.png

 

 

 

The PAS parameter

 

559x299vv2.png.620342bcff2fd32c130ded460166f392.png

 

 

 

The default ports

 

550x327vv2.png.eb8009796122fec890bf512f1000b9e9.png

 

 

 

For this PoC the default work process count is good enough

 

556x292vv2.png.3e878a36f35383a992fb57bc72bda1c0.png

 

 

 

No SLD integration for me here…

 

573x411vv2.png.bf16572bd7f44440e5581907140ef4d7.png

 

 

 

 

 

 

 

The default secure store key is good enough for me

 

574x294vv2.png.7792c44342cb7858de2e779228426f93.png

 

 

 

Start the installation after checking the parameter again.

 

 

 

562x176vv2.png.6a56923795060c092e6f98945ea34958.png

 

Finished

 

 

 

646x309vv2.png.1d816da3eb9311e5cf3db66cf29d11be.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 Business Suite Applications | SAP Blogs

 

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 ONE Support Launchpad

 

2199714 - Error 4208 DUMP Transaction to a dump device is not allowed while the trunc log on chkpt option is enabled - SAP ASE - SAP ONE Support Launchpad

 

2199714 - Error 4208 DUMP Transaction to a dump device is not allowed while the trunc log on chkpt option is enabled - SAP ASE - SAP ONE Support Launchpad

 

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

 

775x233vv2.png.b3d8b0cbd38656d5d6766ff472799791.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": "Sign in to your account",

"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 ===

Are 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

 

777x141vv2.png.a1ed232db8877798eadc1362e2c2abc4.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

 

 

 

 

629x437vv2.png.f37504884d8a8225d22af0e10b707f82.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..

 

Continue reading...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...