Blog Post

Running SAP Applications on the Microsoft Platform
18 MIN READ

Installation Procedure for Sybase 16. 3 Patch Level 3 Always-on + DR on Suse 12. 3 – Recent Customer Proof of Concept

Cameron_MSFT_SAP_PM's avatar
Mar 13, 2019
First published on MSDN on Jun 18, 2018
In recent months we saw several customers with large investments into Hana technologies approach Microsoft for information about deploying large mission critical SAP applications on Azure with the Sybase ASE database.

SAP Hana customers are typically able to deploy Sybase ASE at little or no additional cost if they have licensed Hana Database.

Many of the customers that have contacted Microsoft are shutting datacenters or terminating UNIX platforms and moving ECC or BW systems in the size range of 25-45TB DB volume to Azure. An earlier blog describes some of the requirements and best practices for VLDB migrations to Azure. https://blogs. msdn. microsoft. com/saponsqlserver/2018/04/10/very-large-database-migration-to-azure-recommendations-guidance-to-partners/

Until recently there was no simple documented straight forward installation procedure for a typical two node High-Availability pair with Synchronous replication and a third node with Asynchronous replication. This is quite a common requirement for SAP customers.

This blog is designed to supplement the existing SAP provided documentation and to provide some hints and additional information. The SAP Sybase team are continuously updating and improving the Sybase documentation, so it is always recommended to start with the official documentation and then cross reference this documentation. This document is based on real deployments from Cognizant and DXC. The latest version of Sybase & Suse were then installed in a lab test environment to provide screenshots

High Level Overview of Installation Steps


The high-level installation process for a 3 tier SAP Distributed Installation is:


  1. Read required OSS Notes, Installation Guides, Download Installation Media and the SAP on Sybase Business Suite documentation



    1. For SUSE Linux Release 12 with SP3 release note : https://www. suse. com/releasenotes/x86_64/SUSE-SLES/12-SP3/











  2. Provision Azure VMs with Suse for SAP Applications 12. 3 with Accelerated Networking Enabled

  3. Perform OS patching and preparation steps detailed below

  4. Run SWPM Distributed Install and install the ASCS Instance

  5. Export the /sapmnt NFS share

  6. Mount the /sapmnt NFS share on the Primary, Secondary and DR DB server

  7. Run SWPM Distributed Install and install the Primary DB Instance

  8. Run SWPM Distributed Install and install the Primary Application Server (Optional: add additional App servers)

  9. Perform Sybase Always-on preparation steps on Primary DB Instance

  10. Run setuphadr on Primary DB Instance

  11. Run SWPM Distributed Install and install the Secondary DB Instance

  12. Perform Sybase Always-on preparation steps on Secondary DB Instance

  13. Run setuphadr on Secondary DB Instance

  14. Run SWPM Distributed Install and install the DR DB Instance

  15. Perform Sybase Always-on preparation steps on DR DB Instance

  16. Run setuphadr on DR DB Instance

  17. Run post steps such as installing Fault Manager


Deployment Config



  1. Suse 12. 3 with latest updates

  2. Sybase 16. 03. 03

  3. SWPM version 22 or 23. SAP Kernel 7. 49 patch 500. NetWeaver ABAP 7. 50

  4. Azure Ev3 VMs with Accelerated Networking and 4 vcpu

  5. Premium Storage – each DB server has 2 x P20 disks (or more as required). App server has only a boot disk

  6. Official Sybase Documentation (some steps do not work, supplement with this blog) https://help. sap. com/viewer/product/SAP_ASE/16. 0. 3. 3/en-US

  7. Sample Response Files are attached here: Sybase-Sample-Response-Files . It is recommended to download and review these files

  8. Sybase Always-on does not leverage OS level clustering technologies such as Pacemaker or Windows cluster. The Azure ILB is not used. Instead the SAP workprocess is aware of the Primary and Secondary Sybase server. The DR node does not support automatic failover and this is a manual process to setup and configure SAP app servers to connect to the DR node

  9. This installation shows a "Distributed" installation. If the SAP Central Services should be highly available, follow the SAP on Azure documentation for Pacemaker

  10. Sybase Fault Manager is automatically installed on the SAP PAS during installation


  11. Be careful of Linux vs. Windows End of Life characters. Use Linux command cat -v response_file. rsIf ^M are seen then there are Windows EOL characters.

    Example:cat -v test. sh


    Output:


    Line 1 ^M


    Line 2 ^M


    Line 3 ^M


    (Note: CTRL+M is a single character in Linux, which is carriagereturn in Windows. This needs to be fixed before utilizing the file in Linux )


    To fix the issue


    $> dos2unix test. sh


    Output


    Line 1


    Line 2


    Line 3




  12. Hosts file configuration used for this deployment

    Example: <IP Address><FQDN> <SHORTNAME> <#Optional Comments>


    10. 1. 0. 9     sybdb1. hana. com     sybdb1    #primary DB


    10. 1. 0. 10   sybapp1. hana. com    sybapp1    #SAP NW 7. 5 PAS


    10. 1. 0. 11   sybdb2. hana. com     sybdb2        #secondary DB


    10. 1. 0. 12   sybdb3. hana. com    sybdb3        #tertiary DB for DR


    Common Prepare Steps on all Suse Servers


sudo zypper install -y glibc-32bit


sudo zypper install -y libgcc_s1-32bit


#these two glib 32bit are mandatory otherwise Always-on will not work

sudo zypper up -y


Note : It is mandatory to reboot the server if kernel patches are applied.

#resize the boot disk. The default linux root disk of 30GB is too small. Shutdown the VM and edit the disks in Azure Portal or Powershell. Increase the size of the disk to 60-100GB. Restart the VM and run the commands below. There is no benefit or advantage to provisioning an additional separate disk for a SAP application server

sudo fdisk /dev/sda


##delete the existing partition (this will not delete the data) and create [n] new primary [p] partition with defaults and write [w] config


sudo resize2fs /dev/sda2


sudo reboot


#Check Accelerated Networking is working

/sbin/ethtool -S eth0 | grep vf_


#Add these entries to the hosts file

sudo vi /etc/hosts

10. 1. 0. 9     sybdb1. hana. com     sybdb1    #primary DB


10. 1. 0. 10   sybapp1. hana. com    sybapp1    #SAP NW 7. 5 PAS


10. 1. 0. 11   sybdb2. hana. com     sybdb2        #secondary DB


10. 1. 0. 12   sybdb3. hana. com    sybdb3        #tertiary DB for DR


#edit the waagent to create a swapfile

sudo vi /etc/waagent. conf


line to look for>>


ResourceDisk. EnableSwap=n


ResourceDisk. SwapSizeMB=


<<


Modify the above values Note : Swap size must be given in MB size only.


#enable the swapfile and set a size of 2GB or more. Example:


ResourceDisk. EnableSwap=y


ResourceDisk. SwapSizeMB=2000


Once done restart of the agent is necessary to get the swap file up and active.


sudo systemctl restart waagent


Other Services to be enabled and restarted are:


sudo systemctl restart nfs-server


sudo systemctl enable nfs-server


sudo systemctl status uuidd


sudo systemctl enable uuidd


sudo systemctl start uuidd


sudo systemctl status uuidd


##run sapcar and unpack SWPM 22 or 23

sapcar -xvf SWPM10SP22_7-20009701. SAR

SAP APP Server ASCS Install


sudo /source/swpm/sapinst SAPINST_REMOTE_ACCESS_USER=<os-user>

Open a web browser from a Management Server and enter the Suse os-user name and password https://10. 1. 0. 10:4237/sapinst/docs/index. html






##after install exportthe NFS Share for /sapmnt


sudo vi /etc/exports


#add this line /sapmnt*(rw,no_root_squash)


## open port 2049 for nfs on NSG if required [by default VMs on same vnet can talk to each other]


sudo systemctl restart nfs-server


SAP DB Instance Install


##do common preparation steps such as zypper and hosts file etc

#create disks for sybase

sudo fdisk -l | grep /dev/sd


sudo fdisk /dev/sdc  -> n, p, w


sudo fdisk /dev/sdd  -> n, p, w


#It is generally recommended to use LVM and create pv, lv etc here so we can test performance later with striping additional disks.

Note: if multiple disk used in creating data / Backup / Log storage, make a necessary striping enabled to get optimal performance.

Example:


vgcreate VG_DATA /dev/sdc /dev/sdd


lvcreate -l 100%F VG_DATA -n lv_data -i 2 -I 256


sudo pvcreate /dev/sdc1 /dev/sdc1

sudo pvcreate /dev/sdc1 /dev/sdd1

sudo pvscan

sudo vgcreate syb_data_vg /dev/sdc1

sudo vgcreate syb_log_vg /dev/sdd1

sudo lvcreate -i1 -l 100%FREE -n syb_data_lvsyb_data_vg

sudo lvcreate -i1 -l 100%FREE -n syb_log_lvsyb_log_vg

sudo mkfs. xfs -f /dev/syb_data_vg/syb_data_lv

sudo mkfs. xfs -f/dev/syb_log_vg/syb_log_lv

sudo mkdir -p /sybase/source

sudo mkdir -p /log

sudo mkdir -p /sapmnt

sudo blkid | grep log

sudo blkid | grep data

Edit /etc/fstab and add the entries for the created disks.

Option 1:


Identify based on created volume group and lv details.

Ex: ls /dev/mapper/

And fetch the right devices

Ex: syb_data_vg-syb_data_lv

Add the the entries into /etc/fstab

sudo vi /etc/fstab

Add the lines.

/dev/mapper/syb_data_vg-syb_data_lv /hana/data xfs defaults,nofail 1 2

Option 2:


#now sudo su - to root user and run this (replace GUID) - cannot run this with sudo command, must be root

sudo su -

echo "/dev/disk/by-uuid/799603d6-20c0-47af-80c9-75c72a573829 /sybase xfsdefaults,nofail02">> /etc/fstab

echo "/dev/disk/by-uuid/2bb3f00c-c295-4417-b258-8de43a844e23 /log xfsdefaults,nofail02">> /etc/fstab

exit

sudo mount -a

sudo df -h

##create a directory for the source files.

sudo mkdir /sybase/source

## copy source files

sudo chmod 777 /sybase/source -R

## setup automount for /sapmnt

### - use auto mount not the "old" way sudo mount -t nfs4 -o rw sybapp1:/sapmnt /sapmnt

sudo mkdir /sapmnt

sudo vi /etc/auto.master

# Add the following line to the file, save and exit

+auto.master

/- /etc/auto.direct

sudo vi /etc/auto.direct

# Add the following lines to the file, save and exit

/sapmnt -nfsvers=4,nosymlink,sync sybapp1:/sapmnt

sudo systemctl enable autofs

sudo service autofs restart

sudo /sybase/source/swpm/sapinst SAPINST_REMOTE_ACCESS_USER=<os-user>

Open web browser and start installation















SAP PAS Install


##do same preparations as ASCS for zypper and hosts file etc

sudo /source/swpm/sapinst SAPINST_REMOTE_ACCESS_USER=<os-user>

https://10. 1. 0. 10:4237/sapinst/docs/index. html









AlwaysOn Install Primary


##do same preparations as ASCS for zypper and hosts file etc

Check that these libraries are installed otherwise Fault Manager will silently fail

sudo zypper install glibc-32bit


sudo zypper install libgcc_s1-32bit


##Login as syb<sid> - in this case the <sid> = ase


sybdb1 /sybase% whoami


sybase


sybdb1 /sybase% pwd


/sybase


sybdb1 /sybase% ls


ASEsourcesybdb1_dma.rssybdb1_setup_hadr. rs


sybdb1 /sybase% cat sybdb1_dma.rs | grep USER_INSTALL_DIR


USER_INSTALL_DIR=/sybase/ASE


sybdb1 /sybase%


sybdb1 /sybase% source/ASE1633/BD_SYBASE_ASE_16. 0. 03. 03_RDBMS_for_BS_/SYBASE_LINUX_X86_64/setup.bin -f /sybase/sybdb1_dma. rs -i silent



Note: if the command does not run put several <space> characters before the -i silent
Full path to setup.bin from ASE. ZIP file. Full path to response file otherwise it will fail with non-specific error message





##run this command to unlock the sa account. Command will fail if "-X" is not specified

isql-Usapsso -PSAPHana12345 -SASE -X


sp_locklogin sa, unlock

go


##If any errors occur review this note

2450148 - 'Warning: stopService() only supported on windows' message happened during HADR configuration -SAP ASE


##Run setuphadr after editing the response file based on Sybase documentation (sample response file is attached to this blog)

setuphadr /sybase/sybdb1_setup_hadr.rs


AlwaysOn Install Secondary


##do same preparations as ASCS for zypper and hosts file etc

Check that these libraries are installed otherwise Fault Manager will silently fail

sudo zypper install glibc-32bit


sudo zypper install libgcc_s1-32bit


##do same preparations as ASCS for zypper and hosts file etc

#create disks for sybase

sudo fdisk -l | grep /dev/sd

sudo fdisk /dev/sdc -> n, p, w

sudo fdisk /dev/sdd -> n, p, w

#only 1 disk, but created pv, lv etc here so we can test performance later with striping additional disks

sudo pvcreate /dev/sdc1 /dev/sdc1

sudo pvcreate /dev/sdc1 /dev/sdd1

sudo pvscan

sudo vgcreate syb_data_vg /dev/sdc1

sudo vgcreate syb_log_vg /dev/sdd1

sudo lvcreate -i1 -l 100%FREE -n syb_data_lvsyb_data_vg

sudo lvcreate -i1 -l 100%FREE -n syb_log_lvsyb_log_vg

sudo mkfs. xfs -f /dev/syb_data_vg/syb_data_lv

sudo mkfs. xfs -f/dev/syb_log_vg/syb_log_lv

sudo mkdir -p /sybase/source

sudo mkdir -p /log

sudo mkdir -p /sapmnt

sudo blkid | grep log

sudo blkid | grep data

#now sudo su - to root user and run this (replace GUID) - cannot run this with sudo command, must be root

sudo su -

echo "/dev/disk/by-uuid/799603d6-20c0-47af-80c9-75c72a573829 /sybase xfsdefaults,nofail02">> /etc/fstab

echo "/dev/disk/by-uuid/2bb3f00c-c295-4417-b258-8de43a844e23 /log xfsdefaults,nofail02">> /etc/fstab

exit

sudo mount -a

sudo df -h

sudo mount -a

sudo df -h

##create a directory for the source files.

sudo mkdir /sybase/source

## copy source files

sudo chmod 777 /sybase/source -R

## setup automount for /sapmnt

### - use auto mount not the "old" way sudo mount -t nfs4 -o rw sybapp1:/sapmnt /sapmnt

sudo mkdir /sapmnt

sudo vi /etc/auto.master

# Add the following line to the file, save and exit

+auto.master

/- /etc/auto.direct

sudo vi /etc/auto.direct

# Add the following lines to the file, save and exit

/sapmnt -nfsvers=4,nosymlink,sync sybapp1:/sapmnt

sudo systemctl enable autofs

sudo service autofs restart

sudo /sybase/source/swpm/sapinst SAPINST_REMOTE_ACCESS_USER=<os-user>







Stop the autofs and unmount the /sapmnt - sapinst will continue

The /sapmnt must be mounted again shortly after











##Login as syb<sid> - in this case the <sid> = ase


/sybase/source/ASE1633/BD_SYBASE_ASE_16. 0. 03. 03_RDBMS_for_BS_/SYBASE_LINUX_X86_64/setup. bin -f /sybase/sybdb2_dma. rs -i silent


isql-Usapsso -PSAPHana12345 -SASE -X


sp_locklogin sa, unlock

go

2450148 - 'Warning: stopService() only supported on windows' message happened during HADR configuration -SAP ASE


##Run setuphadr after editing the response file based on Sybase documentation (sample response file is attached to this blog)

setuphadr /sybase/sybdb2_setup_hadr.rs


Do not restart the RMA - this is not required

AlwaysOn FM Install & Post Steps


The Sybase documentation for these steps is here.

https://help. sap. com/viewer/efe56ad3cad0467d837c8ff1ac6ba75c/16. 0. 3. 3/en-US/286f4fc8b3ab4439b3400e97288152dc. html

The documentation is not complete. After doing the steps on the documentation link review this Note

1959660 - SYB: Database Fault Management


su - aseadm


rsecssfx put DB_CONNECT/SYB/DR_USER DR_admin -plain


rsecssfx put DB_CONNECT/SYB/DR_PASSWORD SAPHana12345


sybdb1:~ #su - aseadm


sybdb1:aseadm 1> rsecssfx put DB_CONNECT/SYB/DR_USER DR_admin -plain


sybdb1:aseadm 2> rsecssfx put DB_CONNECT/SYB/DR_PASSWORD SAPHana12345


sybdb1:aseadm 3>


sybdb2:~ #su - aseadm


sybdb2:aseadm 1> rsecssfx put DB_CONNECT/SYB/DR_USER DR_admin -plain


sybdb2:aseadm 2> rsecssfx put DB_CONNECT/SYB/DR_PASSWORD SAPHana12345


sybdb2:aseadm 3>


## Run AlwaysOn Tuning & Configuration script on Primary and Companion

isql -UDR_admin -PSAPHana12345 -Ssybdb1:4909


sap_tune_rs Site1, 16, 4


isql -UDR_admin -PSAPHana12345 -Ssybdb2:4909


sap_tune_rs Site2, 16, 4


sybdb2:aseadm 3> isql -UDR_admin -PSAPHana12345 -Ssybdb2:4909


1> sap_tune_rs Site2, 16, 4


2> go


TASKNAMETYPE


VALUE


----------------------- -----------------


------------------------------------------------------------


Tune Replication Server Start Time


Sun Apr 29 06:20:37 UTC 2018


Tune Replication Server Elapsed Time


00:07:11


TuneRSTask Name


Tune Replication Server


TuneRSTask State


Completed


TuneRSShort Description


Tune Replication Server configurations.


TuneRSLong Description


Waiting 180 seconds: Waiting Replication Server to fully up.


TuneRSTask Start


Sun Apr 29 06:20:37 UTC 2018


TuneRSTask End


Sun Apr 29 06:27:48 UTC 2018


TuneRSHostname


sybdb2


(9 rows affected)


## On the APP server only

sudo vi . dbenv. csh


setenv dbs_syb_ha 1


setenv dbs_syb_server sybdb1:sybdb2


## Restart the SAP App server

sapcontrol -nr 00 -function StopSystem ALL

sapcontrol -nr 00 -function StartSystem ALL


https://help. sap. com/viewer/efe56ad3cad0467d837c8ff1ac6ba75c/16. 0. 3. 3/en-US/41b39cb667664dc09d2d9f4c87b299a7. html

sybapp1:aseadm 6> rsecssfx list


|---------------------------------------------------------------------------------|


| Record Key | Status | Time Stamp of Last Update |


|---------------------------------------------------------------------------------|


| DB_CONNECT/DEFAULT_DB_PASSWORD | Encrypted| 2018-04-2903:07:11UTC |


|---------------------------------------------------------------------------------|


| DB_CONNECT/DEFAULT_DB_USER | Plaintext| 2018-04-2903:07:07UTC |


|---------------------------------------------------------------------------------|


| DB_CONNECT/SYB/DR_PASSWORD | Encrypted| 2018-04-2906:18:26UTC |


|---------------------------------------------------------------------------------|


| DB_CONNECT/SYB/DR_USER | Plaintext| 2018-04-2906:18:22UTC |


|---------------------------------------------------------------------------------|


| DB_CONNECT/SYB/SADB_PASSWORD | Encrypted| 2018-04-2903:07:19UTC |


|---------------------------------------------------------------------------------|


| DB_CONNECT/SYB/SADB_USER | Plaintext| 2018-04-2903:07:14UTC |


|---------------------------------------------------------------------------------|


| DB_CONNECT/SYB/SAPSID_PASSWORD | Encrypted| 2018-04-2903:07:42UTC |


|---------------------------------------------------------------------------------|


| DB_CONNECT/SYB/SAPSID_USER | Plaintext| 2018-04-2903:07:37UTC |


|---------------------------------------------------------------------------------|


| DB_CONNECT/SYB/SSODB_PASSWORD| Encrypted| 2018-04-2903:07:27UTC |


|---------------------------------------------------------------------------------|


| DB_CONNECT/SYB/SSODB_USER| Plaintext| 2018-04-2903:07:22UTC |


|---------------------------------------------------------------------------------|


| DB_CONNECT/SYB/SYBSID_PASSWORD | Encrypted| 2018-04-2903:07:34UTC |


|---------------------------------------------------------------------------------|


| DB_CONNECT/SYB/SYBSID_USER | Plaintext| 2018-04-2903:07:30UTC |


|---------------------------------------------------------------------------------|


| SYSTEM_PKI/PIN | Encrypted| 2018-04-2722:36:39UTC |


|---------------------------------------------------------------------------------|


| SYSTEM_PKI/PSE | Encrypted (binary) | 2018-04-2722:36:45UTC |


|---------------------------------------------------------------------------------|


Summary


-------


ActiveRecords : 14 (Encrypted: 8, Plain: 6, Wrong Key: 0, Error: 0)


Defunct Records : 12 (180+ days: 0; Show: "list -withHistory", Remove: "compact")


## Run the Fault Manager Installation steps on the SAP PAS application server

sybapp1:aseadm 24> pwd


/sapmnt/ASE/exe/uc/linuxx86_64


sybapp1:aseadm 25> whoami


aseadm


sybapp1:aseadm 26> . /sybdbfm install


replication manager agent user DR_admin and password set in Secure Store.


Keep existing values (yes/no)? (yes)


SAPHostAgent connect user: (sapadm)


Enter password for user sapadm.


Password:


Enter value for primary database host: (sybdb1)


Enter value for primary database name: (ASE)


Enter value for primary database port: (4901)


Enter value for primary site name: (Site1)


Enter value for primary database heart beat port: (13777)


Enter value for standby database host: (sybdb2)


Enter value for standby database name: (ASE)


Enter value for standby database port: (4901)


Enter value for standby site name : (Site2)


Enter value for standby database heart beat port: (13787)


Enter value for fault manager host: (sybapp1)


Enter value for heart beat to heart beat port: (13797)


Enter value for support for floating database ip: (no)


Enter value for use SAP ASE Cockpit if it is installed and running: (no)


installation finished successfully.


Restart the SAP Instance - FM is added to the ASCS start profile



sybapp1:aseadm 32> sybdbfm status


fault manager running, pid = 4338, fault manager overall status = OK, currently executing in mode PAUSING


*** sanity check report (5)***.


node 1: server sybdb1, site Site1.


db host status: OK.


db status OK hadr status PRIMARY.


node 2: server sybdb2, site Site2.


db host status: OK.


db status OK hadr status STANDBY.


replication status: SYNC_OK.


AlwaysOn Install 3rd Node (DR) Async


Official SAP Sybase documentation and Links:

https://blogs. sap. com/2018/04/19/high-availability-disaster-recovery-3-node-hadr-with-sap-ase-16. 0-sp03/

Documentation https://help. sap. com/viewer/38af74a09e48457ab699e83f6dfb051a/16. 0. 3. 3/en-US

https://help. sap. com/viewer/38af74a09e48457ab699e83f6dfb051a/16. 0. 3. 3/en-US/6ca81e90696e4946a68e9257fa2d3c31. html

1. Install the DB host using SWPM in the same way as the companion host

2. Copy the companion host response file

3. Duplicate the section with all the COMP entries and add it at the bottom and rename at section of the newly copied COMPs to DR (for example). Leave the old COMP and PRIM entries as is.

4. Change the setup site to DR

5. All other entries from PRIM and COMP must remain the same since the setuphadr run for 3rd node needs to know about previous 2 hosts.

6. Execute setuphadr

Review the Sample Response File attached to this blog



##do same preparations as ASCS for zypper and hosts file etc

Check that these libraries are installed otherwise Fault Manager will silently fail

sudo zypper install glibc-32bit

sudo zypper install libgcc_s1-32bit

##do same preparations as ASCS for zypper and hosts file etc

#create disks for sybase

Note : when multiple disks are added for data/log/backup to create a single volume, use right striping method to get better performance


Example:


vgcreate VG_DATA /dev/sdc /dev/sdd


lvcreate -l 100%F VG_DATA -n lv_data -i 2 -I 256


(for log use –l 32 )


sudo fdisk -l | grep /dev/sd

sudo fdisk /dev/sdc -> n, p, w

sudo fdisk /dev/sdd -> n, p, w

#only 1 disk, but created pv, lv etc here so we can test performance later with striping additional disks

sudo pvcreate /dev/sdc1 /dev/sdc1

sudo pvcreate /dev/sdc1 /dev/sdd1

sudo pvscan

sudo vgcreate syb_data_vg /dev/sdc1

sudo vgcreate syb_log_vg /dev/sdd1

sudo lvcreate -i1 -l 100%FREE -n syb_data_lvsyb_data_vg

sudo lvcreate -i1 -l 100%FREE -n syb_log_lvsyb_log_vg

sudo mkfs. xfs -f /dev/syb_data_vg/syb_data_lv

sudo mkfs. xfs -f/dev/syb_log_vg/syb_log_lv

sudo mkdir -p /sybase/source

sudo mkdir -p /log

sudo mkdir -p /sapmnt

sudo blkid | grep log

sudo blkid | grep data

edit /etc/fstab and add the entries for the created disks.

Option 1 :


Identify based on created volume group and lv details.

Ex: ls /dev/mapper/

And fetch the right devices

Ex: syb_data_vg-syb_data_lv

Add the the entries into /etc/fstab

sudo vi /etc/fstab

Add the lines.

/dev/mapper/syb_data_vg-syb_data_lv /hana/data xfs defaults,nofail 1 2

Option 2 :


#now sudo su - to root user and run this (replace GUID) - cannot run this with sudo command, must be root

sudo su -

echo "/dev/disk/by-uuid/799603d6-20c0-47af-80c9-75c72a573829 /sybase xfsdefaults,nofail02">> /etc/fstab

echo "/dev/disk/by-uuid/2bb3f00c-c295-4417-b258-8de43a844e23 /log xfsdefaults,nofail02">> /etc/fstab

exit

sudo mount -a

sudo df -h

sudo mount -a

sudo df -h

Note: mount points are visible only when the folders are accessed in df –h command when auto mount is enabled.

##create a directory for the source files.

sudo mkdir -p /sybase/source

## copy source files

sudo chmod 777 /sybase/source -R

## setup automount for /sapmnt

### - use auto mount not the "old" way sudo mount -t nfs4 -o rw sybapp1:/sapmnt /sapmnt

sudo mkdir /sapmnt

sudo vi /etc/auto.master

# Add the following line to the file, save and exit

+auto.master

/- /etc/auto.direct

sudo vi /etc/auto.direct

# Add the following lines to the file, save and exit

/sapmnt -nfsvers=4,nosymlink,sync sybapp1:/sapmnt

sudo systemctl enable autofs

sudo service autofs restart

sudo /sybase/source/swpm/sapinst SAPINST_REMOTE_ACCESS_USER=<os-user>







Stop the autofs and unmount the /sapmnt - sapinst will continue

The /sapmnt must be mounted again shortly after





## Install the DMA on the DR Node

##Login as syb<sid> - in this case the <sid> = ase


source/ASE1633/BD_SYBASE_ASE_16. 0. 03. 03_RDBMS_for_BS_/SYBASE_LINUX_X86_64/setup. bin -f /sybase/sybdb3_dma. rs -i silent

isql-Usapsso -PSAPHana12345 -SASE -X


sp_locklogin sa, unlock

go

sybdb3 /sybase% uname -a


Linux sybdb3 4. 4. 120-92. 70-default #1 SMP Wed Mar 14 15:59:43 UTC 2018 (52a83de) x86_64 x86_64 x86_64 GNU/Linux


sybdb3 /sybase% whoami


sybase


##Run setuphadr after editing the response file based on Sybase documentation (sample response file is attached to this blog)

sybdb3 /sybase% setuphadr /sybase/sybdb3_setup_hadr.rs


AlwaysOn Testing & Useful Command Syntax


In the section below planned and unplanned failovers as well as monitoring commands are used.

It is recommended to review the Sybase documentation and also to review these SAP Notes:

1982469 - SYB: Updating SAP ASE with saphostctrl

1959660 - SYB: Database Fault Management

2179305 - SYB: Usage of saphostctrl for SAP ASE and SAP Replication Server

## Check if Fault Manager is running on the SAP PAS with this command

ps -ef | grep sybdbfm


executable in /usr/sap/<SID>/ASCS00/work


sybdbfm is copied to sybdbfm. sap<SID>_ASCS00


cd /usr/sap/<SID>/ASCS00/work


. /sybdbfm. sapASE_ASCS00 status


. /sybdbfm. sapASE_ASCS00 hibernate


. /sybdbfm. sapASE_ASCS00 resume


login as syb<sid> in this case sybase


## Login to the RMA


isql -UDR_admin -P<<password>> -SASE_RMA_Site1 -I DM/interfaces -X -w999


## to see all the components that are running


sap_version all


go


## to see the status of a replication path


sap_status path


go


## to see the status of resources


sap_status resource


go


## Login to ASE


The syntax "-I DM/interfaces" does a lookup in the Sybase AlwaysOn configuration database to find the host and TCP port


isql -UDR_admin -P<<password>> -SASE_Site1 -I DM/interfaces -X-w999


## to clear down the transaction log run this command


dump tran ASE with truncate_only


go


## to show freespace in DB


sp_helpdb ASE


go


## Transaction log backups are needed on all replicas otherwise the Trans Log will become full


## to start/stop/get info on Sybase DB (and all required components for Always on like RMA) - run this on the DB host


sudo /usr/sap/hostctrl/exe/saphostctrl -user sapadm -function StartDatabase -dbname ASE -dbtype syb


sudo /usr/sap/hostctrl/exe/saphostctrl -user sapadm -function StartDatabase -dbname ASE_REP -dbtype syb


## to get Sybase DB status


sudo /usr/sap/hostctrl/exe/saphostctrl -user sapadm -function GetDatabaseStatus -dbname ASE -dbtype syb


## to get Sybase DB replication status


sudo /usr/sap/hostctrl/exe/saphostctrl -user sapadm -function LiveDatabaseUpdate -dbname ASE -dbtype syb -updatemethod Check -updateoption TASK=REPLICATION_STATUS


## to send a trace ticket logon to RMA and execute these commands


sap_send_trace Site1


go


sap_status active


go


## during HADR testing leave tail running on the file /usr/sap/<SID>/ASCS00/work


tail -100f dev_sybdbfm


## to force a shutdown of the DB engine run the command below. Always-on will try to stop a normal shutdown of the DB


shutdown with wait nowait_hadr


go


## to do a planned failover from Primary to Companion DB the normal sequence is:


1. Failover from Primary to Companion


2. Drain logs from Primary to the DR site


3. Reverse Replication Route to start synchronization from the new Primary to the Companion and DR


-- There is a new command that does all these steps automatically:


/usr/sap/hostctrl/exe/saphostctrl -user sapadm - -function LiveDatabaseUpdate -dbname ASE -dbtype syb -updatemethod Execute -updateoption TASK=FAILOVER -updateoption FAILOVER_FORCE=1 -updateoption FAILOVER_TIME=300


## it is recommended to use this command. If there are errors check in the path /usr/sap/hostctrl/work for log files


##other useful commands:


## to disable/enable replication from a Site to all routes


sap_disable_replication Site1, <DB>


sap_enable_replication Site1,Site2,<DB>


## command to manually failover


sap_failover <primary>,<standby>,<timeout>, [force], [unplanned]


## Materialize is a "dump and load" to reinitialize Sybase Alwayson replica.


sap_materialize auto,Site1,Site2,master


sap_materialize auto,Site1,Site2,<SID>


Sybase How To & Links


Customers familiar with SQL Server AlwaysOn should note that although it is possible to take a DB or Log backup from a replica, these backups are not compatible between Primary <-> Replica databases. It is also a requirement to run transaction log backups on the replica nodes unlike SQL Server.

SAP Notes:

2134316 - Can SAP ASE run in a cloud environment? - SAP ASE

1554717 - SYB: Planning information for SAP on ASE

1706801 - SYB: SAP ASE released for virtual systems

1590719 - SYB: Updates for SAP Adaptive Server Enterprise (SAP ASE)

1959660 - SYB: Database Fault Management

2450148 - 'Warning: stopService() only supported on windows' message happened during HADR configuration -SAP ASE

2489781 - SAP ASE 16. 0 SP03 Supported Operating Systems and Versions

DBA Cockpit doesn't work by default after installation.

Setup DBA Cockpit as per:
2293673 - SYB: DBA Cockpit Correction Collection SAP Basis 7. 50

1605680 - SYB: Troubleshoot the setup of the DBA Cockpit on Sybase ASE

1245200 - DBA: ICF Service Activation for WebDynpro DBA Cockpit

For SUSE Linux Release 12 with SP3 release note : https://www. suse. com/releasenotes/x86_64/SUSE-SLES/12-SP3/

SAP Software Downloads https://support. sap. com/en/my-support/software-downloads. html

SWPM Download https://support. sap. com/sltoolset

Sybase Release Matrix https://wiki. scn. sap. com/wiki/display/SYBASE/Targeted+ASE+16. 0+Release+Schedule+and+CR+list+Information

Sybase Official Documentation https://help. sap. com/viewer/product/SAP_ASE/16. 0. 3. 3/en-US

Special thanks to Wajeeh Samdani from SAP Sybase Development in Walldorf

Special thanks to Cognizant SAP Cloud Team for their input and review of this blog

Content from third party websites, SAP and other sources reproduced in accordance with Fair Use criticism, comment, news reporting, teaching, scholarship, and research
Updated Mar 13, 2019
Version 2.0

1 Comment

  • 2r_arne's avatar
    2r_arne
    Copper Contributor

    Deployment Config

    Step 11. Typo error... End Of Life ... should be End Of Line 

    Explanation:
    This relates to the fact that windows OS uses 2 characters as the "end of a line", while unix uses only 1 character.

    Windows uses CR+LF  - Carriage Return and Line Feed --- like and old manual typewriter it places the "Carriage" back to it's starting position on the next line, while unix uses only the LF character.

    When transferring a text file (Binary) from unix to Windows, then open in Notepad - you apparently see no "linebreaks" and it might look messy.

    When transferring a file from Windows to unix, you see the ^M (CR) character visible ... which several programs will take as an invalid special character...

     

    One method to avoid this is to use "ASCII transfer" for text files - which often will identify this and adjust EOL to your OS. *)

     

    If you've got a file with ^M characters on unix and want to get rid of this character, you can easily do this like this (using unix tr command)

             cat mywindowsfile.txt | tr -d '\r' > myunixfile.txt

     

    *) depending on your transfer program

"}},"componentScriptGroups({\"componentId\":\"custom.widget.MicrosoftFooter\"})":{"__typename":"ComponentScriptGroups","scriptGroups":{"__typename":"ComponentScriptGroupsDefinition","afterInteractive":{"__typename":"PageScriptGroupDefinition","group":"AFTER_INTERACTIVE","scriptIds":[]},"lazyOnLoad":{"__typename":"PageScriptGroupDefinition","group":"LAZY_ON_LOAD","scriptIds":[]}},"componentScripts":[]},"cachedText({\"lastModified\":\"1745505307000\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/NavbarDropdownToggle\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/NavbarDropdownToggle-1745505307000"}],"cachedText({\"lastModified\":\"1745505307000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserAvatar\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1745505307000"}],"cachedText({\"lastModified\":\"1745505307000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/ranks/UserRankLabel\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1745505307000"}],"cachedText({\"lastModified\":\"1745505307000\",\"locale\":\"en-US\",\"namespaces\":[\"components/tags/TagView/TagViewChip\"]})":[{"__ref":"CachedAsset:text:en_US-components/tags/TagView/TagViewChip-1745505307000"}],"cachedText({\"lastModified\":\"1745505307000\",\"locale\":\"en-US\",\"namespaces\":[\"components/users/UserRegistrationDate\"]})":[{"__ref":"CachedAsset:text:en_US-components/users/UserRegistrationDate-1745505307000"}],"cachedText({\"lastModified\":\"1745505307000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeAvatar\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeAvatar-1745505307000"}],"cachedText({\"lastModified\":\"1745505307000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeDescription\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeDescription-1745505307000"}],"cachedText({\"lastModified\":\"1745505307000\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageListMenu\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageListMenu-1745505307000"}],"message({\"id\":\"message:1728433\"})":{"__ref":"BlogReplyMessage:message:1728433"},"cachedText({\"lastModified\":\"1745505307000\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeIcon\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1745505307000"}]},"Theme:customTheme1":{"__typename":"Theme","id":"customTheme1"},"User:user:-1":{"__typename":"User","id":"user:-1","uid":-1,"login":"Deleted","email":"","avatar":null,"rank":null,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":"ANONYMOUS","registrationTime":null,"confirmEmailStatus":false,"registrationAccessLevel":"VIEW","ssoRegistrationFields":[]},"ssoId":null,"profileSettings":{"__typename":"ProfileSettings","dateDisplayStyle":{"__typename":"InheritableStringSettingWithPossibleValues","key":"layout.friendly_dates_enabled","value":"false","localValue":"true","possibleValues":["true","false"]},"dateDisplayFormat":{"__typename":"InheritableStringSetting","key":"layout.format_pattern_date","value":"MMM dd yyyy","localValue":"MM-dd-yyyy"},"language":{"__typename":"InheritableStringSettingWithPossibleValues","key":"profile.language","value":"en-US","localValue":null,"possibleValues":["en-US","es-ES"]},"repliesSortOrder":{"__typename":"InheritableStringSettingWithPossibleValues","key":"config.user_replies_sort_order","value":"DEFAULT","localValue":"DEFAULT","possibleValues":["DEFAULT","LIKES","PUBLISH_TIME","REVERSE_PUBLISH_TIME"]}},"deleted":false},"CachedAsset:pages-1747130789534":{"__typename":"CachedAsset","id":"pages-1747130789534","value":[{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"BlogViewAllPostsPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId/all-posts/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"CasePortalPage","type":"CASE_PORTAL","urlPath":"/caseportal","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"CreateGroupHubPage","type":"GROUP_HUB","urlPath":"/groups/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"CaseViewPage","type":"CASE_DETAILS","urlPath":"/case/:caseId/:caseNumber","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"InboxPage","type":"COMMUNITY","urlPath":"/inbox","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"HelpFAQPage","type":"COMMUNITY","urlPath":"/help","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"IdeaMessagePage","type":"IDEA_POST","urlPath":"/idea/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"IdeaViewAllIdeasPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/all-ideas/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"LoginPage","type":"USER","urlPath":"/signin","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"BlogPostPage","type":"BLOG","urlPath":"/category/:categoryId/blogs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"UserBlogPermissions.Page","type":"COMMUNITY","urlPath":"/c/user-blog-permissions/page","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"ThemeEditorPage","type":"COMMUNITY","urlPath":"/designer/themes","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"TkbViewAllArticlesPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId/all-articles/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1730819800000,"localOverride":null,"page":{"id":"AllEvents","type":"CUSTOM","urlPath":"/Events","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"OccasionEditPage","type":"EVENT","urlPath":"/event/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"OAuthAuthorizationAllowPage","type":"USER","urlPath":"/auth/authorize/allow","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"PageEditorPage","type":"COMMUNITY","urlPath":"/designer/pages","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"PostPage","type":"COMMUNITY","urlPath":"/category/:categoryId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"ForumBoardPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"TkbBoardPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"EventPostPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"UserBadgesPage","type":"COMMUNITY","urlPath":"/users/:login/:userId/badges","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"GroupHubMembershipAction","type":"GROUP_HUB","urlPath":"/membership/join/:nodeId/:membershipType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"MaintenancePage","type":"COMMUNITY","urlPath":"/maintenance","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"IdeaReplyPage","type":"IDEA_REPLY","urlPath":"/idea/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"UserSettingsPage","type":"USER","urlPath":"/mysettings/:userSettingsTab","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"GroupHubsPage","type":"GROUP_HUB","urlPath":"/groups","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"ForumPostPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"OccasionRsvpActionPage","type":"OCCASION","urlPath":"/event/:boardId/:messageSubject/:messageId/rsvp/:responseType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"VerifyUserEmailPage","type":"USER","urlPath":"/verifyemail/:userId/:verifyEmailToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"AllOccasionsPage","type":"OCCASION","urlPath":"/category/:categoryId/events/:boardId/all-events/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"EventBoardPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"TkbReplyPage","type":"TKB_REPLY","urlPath":"/kb/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"IdeaBoardPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"CommunityGuideLinesPage","type":"COMMUNITY","urlPath":"/communityguidelines","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"CaseCreatePage","type":"SALESFORCE_CASE_CREATION","urlPath":"/caseportal/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"TkbEditPage","type":"TKB","urlPath":"/kb/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"ForgotPasswordPage","type":"USER","urlPath":"/forgotpassword","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"IdeaEditPage","type":"IDEA","urlPath":"/idea/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"TagPage","type":"COMMUNITY","urlPath":"/tag/:tagName","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"BlogBoardPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"OccasionMessagePage","type":"OCCASION_TOPIC","urlPath":"/event/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"ManageContentPage","type":"COMMUNITY","urlPath":"/managecontent","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"ClosedMembershipNodeNonMembersPage","type":"GROUP_HUB","urlPath":"/closedgroup/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"CommunityPage","type":"COMMUNITY","urlPath":"/","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"ForumMessagePage","type":"FORUM_TOPIC","urlPath":"/discussions/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"IdeaPostPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1730819800000,"localOverride":null,"page":{"id":"CommunityHub.Page","type":"CUSTOM","urlPath":"/Directory","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"BlogMessagePage","type":"BLOG_ARTICLE","urlPath":"/blog/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"RegistrationPage","type":"USER","urlPath":"/register","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"EditGroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"ForumEditPage","type":"FORUM","urlPath":"/discussions/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"ResetPasswordPage","type":"USER","urlPath":"/resetpassword/:userId/:resetPasswordToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1730819800000,"localOverride":null,"page":{"id":"AllBlogs.Page","type":"CUSTOM","urlPath":"/blogs","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"TkbMessagePage","type":"TKB_ARTICLE","urlPath":"/kb/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"BlogEditPage","type":"BLOG","urlPath":"/blog/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"ManageUsersPage","type":"USER","urlPath":"/users/manage/:tab?/:manageUsersTab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"ForumReplyPage","type":"FORUM_REPLY","urlPath":"/discussions/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"PrivacyPolicyPage","type":"COMMUNITY","urlPath":"/privacypolicy","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"NotificationPage","type":"COMMUNITY","urlPath":"/notifications","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"UserPage","type":"USER","urlPath":"/users/:login/:userId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"HealthCheckPage","type":"COMMUNITY","urlPath":"/health","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"OccasionReplyPage","type":"OCCASION_REPLY","urlPath":"/event/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"ManageMembersPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/manage/:tab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"SearchResultsPage","type":"COMMUNITY","urlPath":"/search","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"BlogReplyPage","type":"BLOG_REPLY","urlPath":"/blog/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"GroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"TermsOfServicePage","type":"COMMUNITY","urlPath":"/termsofservice","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"CategoryPage","type":"CATEGORY","urlPath":"/category/:categoryId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"ForumViewAllTopicsPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/all-topics/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"TkbPostPage","type":"TKB","urlPath":"/category/:categoryId/kbs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1747130789534,"localOverride":null,"page":{"id":"GroupHubPostPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"}],"localOverride":false},"CachedAsset:text:en_US-components/context/AppContext/AppContextProvider-0":{"__typename":"CachedAsset","id":"text:en_US-components/context/AppContext/AppContextProvider-0","value":{"noCommunity":"Cannot find community","noUser":"Cannot find current user","noNode":"Cannot find node with id {nodeId}","noMessage":"Cannot find message with id {messageId}","userBanned":"We're sorry, but you have been banned from using this site.","userBannedReason":"You have been banned for the following reason: {reason}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-0":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-0","value":{"title":"Loading..."},"localOverride":false},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/cmstNC05WEo0blc\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/cmstNC05WEo0blc","height":512,"width":512,"mimeType":"image/png"},"Rank:rank:4":{"__typename":"Rank","id":"rank:4","position":6,"name":"Microsoft","color":"333333","icon":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/cmstNC05WEo0blc\"}"},"rankStyle":"OUTLINE"},"User:user:280866":{"__typename":"User","id":"user:280866","uid":280866,"login":"Cameron_MSFT_SAP_PM","deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/dS0yODA4NjYtNzI1ODVpNEU3MzhFMDc3REE5OEQwMw"},"rank":{"__ref":"Rank:rank:4"},"email":"","messagesCount":29,"biography":null,"topicsCount":25,"kudosReceivedCount":65,"kudosGivenCount":0,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2019-02-08T19:16:04.496-08:00","confirmEmailStatus":null},"followersCount":null,"solutionsCount":0},"Category:category:SAPonMicrosoft":{"__typename":"Category","id":"category:SAPonMicrosoft","entityType":"CATEGORY","displayId":"SAPonMicrosoft","nodeType":"category","depth":3,"title":"SAP on Microsoft","shortTitle":"SAP on Microsoft","parent":{"__ref":"Category:category:products-services"}},"Category:category:top":{"__typename":"Category","id":"category:top","entityType":"CATEGORY","displayId":"top","nodeType":"category","depth":0,"title":"Top","shortTitle":"Top"},"Category:category:communities":{"__typename":"Category","id":"category:communities","entityType":"CATEGORY","displayId":"communities","nodeType":"category","depth":1,"parent":{"__ref":"Category:category:top"},"title":"Communities","shortTitle":"Communities"},"Category:category:products-services":{"__typename":"Category","id":"category:products-services","entityType":"CATEGORY","displayId":"products-services","nodeType":"category","depth":2,"parent":{"__ref":"Category:category:communities"},"title":"Products","shortTitle":"Products"},"Blog:board:SAPApplications":{"__typename":"Blog","id":"board:SAPApplications","entityType":"BLOG","displayId":"SAPApplications","nodeType":"board","depth":4,"conversationStyle":"BLOG","repliesProperties":{"__typename":"RepliesProperties","sortOrder":"REVERSE_PUBLISH_TIME","repliesFormat":"threaded"},"tagProperties":{"__typename":"TagNodeProperties","tagsEnabled":{"__typename":"PolicyResult","failureReason":null}},"requireTags":false,"tagType":"FREEFORM_ONLY","description":"","title":"Running SAP Applications on the Microsoft Platform","shortTitle":"Running SAP Applications on the Microsoft Platform","parent":{"__ref":"Category:category:SAPonMicrosoft"},"ancestors":{"__typename":"CoreNodeConnection","edges":[{"__typename":"CoreNodeEdge","node":{"__ref":"Community:community:gxcuf89792"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:communities"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:products-services"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:SAPonMicrosoft"}}]},"userContext":{"__typename":"NodeUserContext","canAddAttachments":false,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"theme":{"__ref":"Theme:customTheme1"},"boardPolicies":{"__typename":"BoardPolicies","canViewSpamDashBoard":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.access_spam_quarantine.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.access_spam_quarantine.allowed.accessDenied","args":[]}},"canArchiveMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.content_archivals.enable_content_archival_settings.accessDenied","key":"error.lithium.policies.content_archivals.enable_content_archival_settings.accessDenied","args":[]}},"canPublishArticleOnCreate":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","key":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","args":[]}}},"eventPath":"category:SAPonMicrosoft/category:products-services/category:communities/community:gxcuf89792board:SAPApplications/"},"BlogTopicMessage:message:368199":{"__typename":"BlogTopicMessage","uid":368199,"subject":"Installation Procedure for Sybase 16. 3 Patch Level 3 Always-on + DR on Suse 12. 3 – Recent Customer Proof of Concept","id":"message:368199","revisionNum":2,"repliesCount":1,"author":{"__ref":"User:user:280866"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Blog:board:SAPApplications"},"conversation":{"__ref":"Conversation:conversation:368199"},"messagePolicies":{"__typename":"MessagePolicies","canPublishArticleOnEdit":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.forums.policy_can_publish_on_edit_workflow_action.accessDenied","key":"error.lithium.policies.forums.policy_can_publish_on_edit_workflow_action.accessDenied","args":[]}},"canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}},"contentWorkflow":{"__typename":"ContentWorkflow","state":"PUBLISH","scheduledPublishTime":null,"scheduledTimezone":null,"userContext":{"__typename":"MessageWorkflowContext","canSubmitForReview":null,"canEdit":false,"canRecall":null,"canSubmitForPublication":null,"canReturnToAuthor":null,"canPublish":null,"canReturnToReview":null,"canSchedule":false},"shortScheduledTimezone":null},"readOnly":false,"editFrozen":false,"moderationData":{"__ref":"ModerationData:moderation_data:368199"},"teaser":"First published on MSDN on Jun 18, 2018 In recent months we saw several customers with large investments into Hana technologies approach Microsoft for information about deploying large mission critical SAP applications on Azure with the Sybase ASE database.","body":"\n \n \n First published on MSDN on Jun 18, 2018\n \n
\n In recent months we saw several customers with large investments into Hana technologies approach Microsoft for information about deploying large mission critical SAP applications on Azure with the Sybase ASE database.\n
\n
\n SAP Hana customers are typically able to deploy Sybase ASE at little or no additional cost if they have licensed Hana Database.\n
\n
\n Many of the customers that have contacted Microsoft are shutting datacenters or terminating UNIX platforms and moving ECC or BW systems in the size range of 25-45TB DB volume to Azure. An earlier blog describes some of the requirements and best practices for VLDB migrations to Azure.\n \n https://blogs. msdn. microsoft. com/saponsqlserver/2018/04/10/very-large-database-migration-to-azure-recommendations-guidance-to-partners/\n \n
\n
\n Until recently there was no simple documented straight forward installation procedure for a typical two node High-Availability pair with Synchronous replication and a third node with Asynchronous replication. This is quite a common requirement for SAP customers.\n
\n
\n This blog is designed to supplement the existing SAP provided documentation and to provide some hints and additional information. The SAP Sybase team are continuously updating and improving the Sybase documentation, so it is always recommended to start with the official documentation and then cross reference this documentation. This document is based on real deployments from Cognizant and DXC. The latest version of Sybase & Suse were then installed in a lab test environment to provide screenshots\n
\n

\n High Level Overview of Installation Steps\n

\n
\n The high-level installation process for a 3 tier SAP Distributed Installation is:\n
\n
    \n
    \n
  1. \n
    \n
    \n Read required OSS Notes, Installation Guides, Download Installation Media and the SAP on Sybase Business Suite documentation\n
    \n
    \n
      \n
      \n
    1. \n
      \n
      \n For SUSE Linux Release 12 with SP3 release note :\n \n https://www. suse. com/releasenotes/x86_64/SUSE-SLES/12-SP3/\n \n
      \n
    2. \n
      \n
    3. \n
      \n
      \n SAP Software Downloads\n \n https://support. sap. com/en/my-support/software-downloads. html\n \n
      \n
    4. \n
      \n
    5. \n
      \n
      \n SWPM Download\n \n https://support. sap. com/sltoolset\n \n
      \n
    6. \n
      \n
    7. \n
      \n
      \n Sybase Release Matrix\n \n https://wiki. scn. sap. com/wiki/display/SYBASE/Targeted+ASE+16. 0+Release+Schedule+and+CR+list+Information\n \n
      \n
    8. \n
      \n
    9. \n
      \n
      \n Sybase Official Documentation\n \n https://help. sap. com/viewer/product/SAP_ASE/16. 0. 3. 3/en-US\n \n
      \n
    10. \n
      \n
    \n
    \n
  2. \n
    \n
  3. \n Provision Azure VMs with Suse for SAP Applications 12. 3 with Accelerated Networking Enabled\n
  4. \n
    \n
  5. \n Perform OS patching and preparation steps detailed below\n
  6. \n
    \n
  7. \n Run SWPM Distributed Install and install the ASCS Instance\n
  8. \n
    \n
  9. \n Export the /sapmnt NFS share\n
  10. \n
    \n
  11. \n Mount the /sapmnt NFS share on the Primary, Secondary and DR DB server\n
  12. \n
    \n
  13. \n Run SWPM Distributed Install and install the Primary DB Instance\n
  14. \n
    \n
  15. \n Run SWPM Distributed Install and install the Primary Application Server (Optional: add additional App servers)\n
  16. \n
    \n
  17. \n Perform Sybase Always-on preparation steps on Primary DB Instance\n
  18. \n
    \n
  19. \n Run setuphadr on Primary DB Instance\n
  20. \n
    \n
  21. \n Run SWPM Distributed Install and install the Secondary DB Instance\n
  22. \n
    \n
  23. \n Perform Sybase Always-on preparation steps on Secondary DB Instance\n
  24. \n
    \n
  25. \n Run setuphadr on Secondary DB Instance\n
  26. \n
    \n
  27. \n Run SWPM Distributed Install and install the DR DB Instance\n
  28. \n
    \n
  29. \n Perform Sybase Always-on preparation steps on DR DB Instance\n
  30. \n
    \n
  31. \n Run setuphadr on DR DB Instance\n
  32. \n
    \n
  33. \n Run post steps such as installing Fault Manager\n
  34. \n
    \n
\n
\n

\n Deployment Config\n

\n
\n
    \n
    \n
  1. \n Suse 12. 3 with latest updates\n
  2. \n
    \n
  3. \n Sybase 16. 03. 03\n
  4. \n
    \n
  5. \n SWPM version 22 or 23. SAP Kernel 7. 49 patch 500. NetWeaver ABAP 7. 50\n
  6. \n
    \n
  7. \n Azure Ev3 VMs with Accelerated Networking and 4 vcpu\n
  8. \n
    \n
  9. \n Premium Storage – each DB server has 2 x P20 disks (or more as required). App server has only a boot disk\n
  10. \n
    \n
  11. \n Official Sybase Documentation (some steps do not work, supplement with this blog)\n \n https://help. sap. com/viewer/product/SAP_ASE/16. 0. 3. 3/en-US\n \n
  12. \n
    \n
  13. \n Sample Response Files are attached here:\n \n Sybase-Sample-Response-Files\n \n . It is recommended to download and review these files\n
  14. \n
    \n
  15. \n Sybase Always-on does not leverage OS level clustering technologies such as Pacemaker or Windows cluster. The Azure ILB is not used. Instead the SAP workprocess is aware of the Primary and Secondary Sybase server. The DR node does not support automatic failover and this is a manual process to setup and configure SAP app servers to connect to the DR node\n
  16. \n
    \n
  17. \n This installation shows a \"Distributed\" installation. If the SAP Central Services should be highly available, follow the SAP on Azure documentation for Pacemaker\n
  18. \n
    \n
  19. \n Sybase Fault Manager is automatically installed on the SAP PAS during installation\n
  20. \n
    \n
  21. \n
    \n
    \n Be careful of Linux vs. Windows End of Life characters. Use Linux command cat -v response_file. rsIf ^M are seen then there are Windows EOL characters.\n
    \n
    \n

    \n Example:cat -v test. sh\n

    \n
    \n

    \n Output:\n

    \n
    \n

    \n Line 1 ^M\n

    \n
    \n

    \n Line 2 ^M\n

    \n
    \n

    \n Line 3 ^M\n

    \n
    \n

    \n (Note: CTRL+M is a single character in Linux, which is carriagereturn in Windows. This needs to be fixed before utilizing the file in Linux )\n

    \n
    \n

    \n To fix the issue\n

    \n
    \n

    \n $> dos2unix test. sh\n

    \n
    \n

    \n Output\n

    \n
    \n

    \n Line 1\n

    \n
    \n

    \n Line 2\n

    \n
    \n

    \n Line 3\n

    \n
    \n
  22. \n
    \n
  23. \n
    \n
    \n Hosts file configuration used for this deployment\n
    \n
    \n

    \n Example: <IP Address><FQDN> <SHORTNAME> <#Optional Comments>\n

    \n
    \n

    \n 10. 1. 0. 9     sybdb1. hana. com     sybdb1    #primary DB\n

    \n
    \n

    \n 10. 1. 0. 10   sybapp1. hana. com    sybapp1    #SAP NW 7. 5 PAS\n

    \n
    \n

    \n 10. 1. 0. 11   sybdb2. hana. com     sybdb2        #secondary DB\n

    \n
    \n

    \n 10. 1. 0. 12   sybdb3. hana. com    sybdb3        #tertiary DB for DR\n

    \n
    \n \n Common Prepare Steps on all Suse Servers\n \n
    \n
  24. \n
    \n
\n
\n

\n sudo zypper install -y glibc-32bit\n

\n
\n

\n sudo zypper install -y libgcc_s1-32bit\n

\n
\n #these two glib 32bit are mandatory otherwise Always-on will not work\n
\n

\n sudo zypper up -y\n

\n
\n Note : It is mandatory to reboot the server if kernel patches are applied.\n
\n
\n #resize the boot disk. The default linux root disk of 30GB is too small. Shutdown the VM and edit the disks in Azure Portal or Powershell. Increase the size of the disk to 60-100GB. Restart the VM and run the commands below. There is no benefit or advantage to provisioning an additional separate disk for a SAP application server\n
\n

\n sudo fdisk /dev/sda\n

\n
\n

\n ##delete the existing partition (this will not delete the data) and create [n] new primary [p] partition with defaults and write [w] config\n

\n
\n

\n sudo resize2fs /dev/sda2\n

\n
\n

\n sudo reboot\n

\n
\n #Check Accelerated Networking is working\n
\n

\n /sbin/ethtool -S eth0 | grep vf_\n

\n
\n #Add these entries to the hosts file\n
\n
\n sudo vi /etc/hosts\n
\n

\n 10. 1. 0. 9     sybdb1. hana. com     sybdb1    #primary DB\n

\n
\n

\n 10. 1. 0. 10   sybapp1. hana. com    sybapp1    #SAP NW 7. 5 PAS\n

\n
\n

\n 10. 1. 0. 11   sybdb2. hana. com     sybdb2        #secondary DB\n

\n
\n

\n 10. 1. 0. 12   sybdb3. hana. com    sybdb3        #tertiary DB for DR\n

\n
\n #edit the waagent to create a swapfile\n
\n

\n sudo vi /etc/waagent. conf\n

\n
\n

\n line to look for>>\n

\n
\n

\n ResourceDisk. EnableSwap=n\n

\n
\n

\n ResourceDisk. SwapSizeMB=\n

\n
\n

\n <<\n

\n
\n

\n Modify the above values Note : Swap size must be given in MB size only.\n

\n
\n

\n #enable the swapfile and set a size of 2GB or more. Example:\n

\n
\n

\n ResourceDisk. EnableSwap=y\n

\n
\n

\n ResourceDisk. SwapSizeMB=2000\n

\n
\n

\n Once done restart of the agent is necessary to get the swap file up and active.\n

\n
\n

\n sudo systemctl restart waagent\n

\n
\n

\n Other Services to be enabled and restarted are:\n

\n
\n

\n sudo systemctl restart nfs-server\n

\n
\n

\n sudo systemctl enable nfs-server\n

\n
\n

\n sudo systemctl status uuidd\n

\n
\n

\n sudo systemctl enable uuidd\n

\n
\n

\n sudo systemctl start uuidd\n

\n
\n

\n sudo systemctl status uuidd\n

\n
\n ##run sapcar and unpack SWPM 22 or 23\n
\n
\n sapcar -xvf SWPM10SP22_7-20009701. SAR\n
\n
\n \n SAP APP Server ASCS Install\n \n
\n
\n
\n sudo /source/swpm/sapinst SAPINST_REMOTE_ACCESS_USER=<os-user>\n
\n
\n Open a web browser from a Management Server and enter the Suse os-user name and password\n \n https://10. 1. 0. 10:4237/sapinst/docs/index. html\n \n
\n
\n \n
\n

\n \n

\n
\n \n
\n
\n \n
\n

\n ##after install exportthe NFS Share for /sapmnt\n

\n
\n

\n sudo vi /etc/exports\n

\n
\n

\n #add this line /sapmnt*(rw,no_root_squash)\n

\n
\n

\n ## open port 2049 for nfs on NSG if required [by default VMs on same vnet can talk to each other]\n

\n
\n

\n sudo systemctl restart nfs-server\n

\n
\n \n SAP DB Instance Install\n \n
\n
\n
\n ##do common preparation steps such as zypper and hosts file etc\n
\n
\n #create disks for sybase\n
\n

\n sudo fdisk -l | grep /dev/sd\n

\n
\n

\n sudo fdisk /dev/sdc  -> n, p, w\n

\n
\n

\n sudo fdisk /dev/sdd  -> n, p, w\n

\n
\n #It is generally recommended to use LVM and create pv, lv etc here so we can test performance later with striping additional disks.\n
\n
\n Note: if multiple disk used in creating data / Backup / Log storage, make a necessary striping enabled to get optimal performance.\n
\n

\n Example:\n

\n
\n

\n vgcreate VG_DATA /dev/sdc /dev/sdd\n

\n
\n

\n lvcreate -l 100%F VG_DATA -n lv_data -i 2 -I 256\n

\n
\n sudo pvcreate /dev/sdc1 /dev/sdc1\n
\n
\n sudo pvcreate /dev/sdc1 /dev/sdd1\n
\n
\n sudo pvscan\n
\n
\n sudo vgcreate syb_data_vg /dev/sdc1\n
\n
\n sudo vgcreate syb_log_vg /dev/sdd1\n
\n
\n sudo lvcreate -i1 -l 100%FREE -n syb_data_lvsyb_data_vg\n
\n
\n sudo lvcreate -i1 -l 100%FREE -n syb_log_lvsyb_log_vg\n
\n
\n sudo mkfs. xfs -f /dev/syb_data_vg/syb_data_lv\n
\n
\n sudo mkfs. xfs -f/dev/syb_log_vg/syb_log_lv\n
\n
\n sudo mkdir -p /sybase/source\n
\n
\n sudo mkdir -p /log\n
\n
\n sudo mkdir -p /sapmnt\n
\n
\n sudo blkid | grep log\n
\n
\n sudo blkid | grep data\n
\n
\n Edit /etc/fstab and add the entries for the created disks.\n
\n

\n \n Option 1:\n
\n
\n

\n
\n Identify based on created volume group and lv details.\n
\n
\n Ex: ls /dev/mapper/\n
\n
\n And fetch the right devices\n
\n
\n Ex: syb_data_vg-syb_data_lv\n
\n
\n Add the the entries into /etc/fstab\n
\n
\n sudo vi /etc/fstab\n
\n
\n Add the lines.\n
\n
\n /dev/mapper/syb_data_vg-syb_data_lv /hana/data xfs defaults,nofail 1 2\n
\n

\n \n Option 2:\n
\n
\n

\n
\n #now sudo su - to root user and run this (replace GUID) - cannot run this with sudo command, must be root\n
\n
\n sudo su -\n
\n
\n echo \"/dev/disk/by-uuid/799603d6-20c0-47af-80c9-75c72a573829 /sybase xfsdefaults,nofail02\">> /etc/fstab\n
\n
\n echo \"/dev/disk/by-uuid/2bb3f00c-c295-4417-b258-8de43a844e23 /log xfsdefaults,nofail02\">> /etc/fstab\n
\n
\n exit\n
\n
\n sudo mount -a\n
\n
\n sudo df -h\n
\n
\n ##create a directory for the source files.\n
\n
\n sudo mkdir /sybase/source\n
\n
\n ## copy source files\n
\n
\n sudo chmod 777 /sybase/source -R\n
\n
\n ## setup automount for /sapmnt\n
\n
\n ### - use auto mount not the \"old\" way sudo mount -t nfs4 -o rw sybapp1:/sapmnt /sapmnt\n
\n
\n sudo mkdir /sapmnt\n
\n
\n sudo vi /etc/auto.master\n
\n
\n # Add the following line to the file, save and exit\n
\n
\n +auto.master\n
\n
\n /- /etc/auto.direct\n
\n
\n sudo vi /etc/auto.direct\n
\n
\n # Add the following lines to the file, save and exit\n
\n
\n /sapmnt -nfsvers=4,nosymlink,sync sybapp1:/sapmnt\n
\n
\n sudo systemctl enable autofs\n
\n
\n sudo service autofs restart\n
\n
\n sudo /sybase/source/swpm/sapinst SAPINST_REMOTE_ACCESS_USER=<os-user>\n
\n
\n Open web browser and start installation\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n SAP PAS Install\n \n
\n
\n
\n ##do same preparations as ASCS for zypper and hosts file etc\n
\n
\n sudo /source/swpm/sapinst SAPINST_REMOTE_ACCESS_USER=<os-user>\n
\n
\n \n https://10. 1. 0. 10:4237/sapinst/docs/index. html\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n AlwaysOn Install Primary\n \n
\n
\n
\n ##do same preparations as ASCS for zypper and hosts file etc\n
\n
\n Check that these libraries are installed otherwise Fault Manager will silently fail\n
\n

\n sudo zypper install glibc-32bit\n

\n
\n

\n sudo zypper install libgcc_s1-32bit\n

\n
\n ##Login as syb<sid> - in this case the <sid> = ase\n
\n
\n
\n sybdb1 /sybase% whoami\n
\n
\n
\n sybase\n
\n
\n
\n sybdb1 /sybase% pwd\n
\n
\n
\n /sybase\n
\n
\n
\n sybdb1 /sybase% ls\n
\n
\n
\n ASEsourcesybdb1_dma.rssybdb1_setup_hadr. rs\n
\n
\n
\n sybdb1 /sybase% cat sybdb1_dma.rs | grep USER_INSTALL_DIR\n
\n
\n
\n USER_INSTALL_DIR=/sybase/ASE\n
\n
\n
\n sybdb1 /sybase%\n
\n
\n
\n sybdb1 /sybase%\n \n source/ASE1633/BD_SYBASE_ASE_16. 0. 03. 03_RDBMS_for_BS_/SYBASE_LINUX_X86_64/setup.bin -f /sybase/sybdb1_dma. rs -i silent\n \n
\n
\n
\n
\n Note: if the command does not run put several <space> characters before the -i silent\n
\n Full path to setup.bin from ASE. ZIP file. Full path to response file otherwise it will fail with non-specific error message\n \n
\n
\n
\n
\n
\n
\n ##run this command to unlock the sa account. Command will fail if \"-X\" is not specified\n
\n
\n isql-Usapsso -PSAPHana12345 -SASE -X\n
\n
\n
\n sp_locklogin sa, unlock\n
\n
\n go\n
\n

\n \n

\n
\n ##If any errors occur review this note\n
\n
\n 2450148 - 'Warning: stopService() only supported on windows' message happened during HADR configuration -SAP ASE\n
\n
\n
\n ##Run setuphadr after editing the response file based on Sybase documentation (sample response file is attached to this blog)\n
\n
\n \n setuphadr /sybase/sybdb1_setup_hadr.rs\n \n
\n
\n

\n \n

\n
\n \n AlwaysOn Install Secondary\n \n
\n
\n
\n ##do same preparations as ASCS for zypper and hosts file etc\n
\n
\n Check that these libraries are installed otherwise Fault Manager will silently fail\n
\n

\n sudo zypper install glibc-32bit\n

\n
\n

\n sudo zypper install libgcc_s1-32bit\n

\n
\n ##do same preparations as ASCS for zypper and hosts file etc\n
\n
\n #create disks for sybase\n
\n
\n sudo fdisk -l | grep /dev/sd\n
\n
\n sudo fdisk /dev/sdc -> n, p, w\n
\n
\n sudo fdisk /dev/sdd -> n, p, w\n
\n
\n #only 1 disk, but created pv, lv etc here so we can test performance later with striping additional disks\n
\n
\n sudo pvcreate /dev/sdc1 /dev/sdc1\n
\n
\n sudo pvcreate /dev/sdc1 /dev/sdd1\n
\n
\n sudo pvscan\n
\n
\n sudo vgcreate syb_data_vg /dev/sdc1\n
\n
\n sudo vgcreate syb_log_vg /dev/sdd1\n
\n
\n sudo lvcreate -i1 -l 100%FREE -n syb_data_lvsyb_data_vg\n
\n
\n sudo lvcreate -i1 -l 100%FREE -n syb_log_lvsyb_log_vg\n
\n
\n sudo mkfs. xfs -f /dev/syb_data_vg/syb_data_lv\n
\n
\n sudo mkfs. xfs -f/dev/syb_log_vg/syb_log_lv\n
\n
\n sudo mkdir -p /sybase/source\n
\n
\n sudo mkdir -p /log\n
\n
\n sudo mkdir -p /sapmnt\n
\n
\n sudo blkid | grep log\n
\n
\n sudo blkid | grep data\n
\n
\n #now sudo su - to root user and run this (replace GUID) - cannot run this with sudo command, must be root\n
\n
\n sudo su -\n
\n
\n echo \"/dev/disk/by-uuid/799603d6-20c0-47af-80c9-75c72a573829 /sybase xfsdefaults,nofail02\">> /etc/fstab\n
\n
\n echo \"/dev/disk/by-uuid/2bb3f00c-c295-4417-b258-8de43a844e23 /log xfsdefaults,nofail02\">> /etc/fstab\n
\n
\n exit\n
\n
\n sudo mount -a\n
\n
\n sudo df -h\n
\n
\n sudo mount -a\n
\n
\n sudo df -h\n
\n
\n ##create a directory for the source files.\n
\n
\n sudo mkdir /sybase/source\n
\n
\n ## copy source files\n
\n
\n sudo chmod 777 /sybase/source -R\n
\n
\n ## setup automount for /sapmnt\n
\n
\n ### - use auto mount not the \"old\" way sudo mount -t nfs4 -o rw sybapp1:/sapmnt /sapmnt\n
\n
\n sudo mkdir /sapmnt\n
\n
\n sudo vi /etc/auto.master\n
\n
\n # Add the following line to the file, save and exit\n
\n
\n +auto.master\n
\n
\n /- /etc/auto.direct\n
\n
\n sudo vi /etc/auto.direct\n
\n
\n # Add the following lines to the file, save and exit\n
\n
\n /sapmnt -nfsvers=4,nosymlink,sync sybapp1:/sapmnt\n
\n
\n sudo systemctl enable autofs\n
\n
\n sudo service autofs restart\n
\n
\n sudo /sybase/source/swpm/sapinst SAPINST_REMOTE_ACCESS_USER=<os-user>\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n Stop the autofs and unmount the /sapmnt - sapinst will continue\n
\n
\n The /sapmnt must be mounted again shortly after\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n ##Login as syb<sid> - in this case the <sid> = ase\n
\n
\n
\n \n /sybase/source/ASE1633/BD_SYBASE_ASE_16. 0. 03. 03_RDBMS_for_BS_/SYBASE_LINUX_X86_64/setup. bin -f /sybase/sybdb2_dma. rs -i silent\n \n
\n
\n
\n isql-Usapsso -PSAPHana12345 -SASE -X\n
\n
\n
\n sp_locklogin sa, unlock\n
\n
\n go\n
\n
\n 2450148 - 'Warning: stopService() only supported on windows' message happened during HADR configuration -SAP ASE\n
\n
\n
\n ##Run setuphadr after editing the response file based on Sybase documentation (sample response file is attached to this blog)\n
\n
\n \n setuphadr /sybase/sybdb2_setup_hadr.rs\n \n
\n
\n

\n \n

\n
\n Do not restart the RMA - this is not required\n
\n
\n \n AlwaysOn FM Install & Post Steps\n \n
\n
\n
\n The Sybase documentation for these steps is here.\n
\n
\n \n https://help. sap. com/viewer/efe56ad3cad0467d837c8ff1ac6ba75c/16. 0. 3. 3/en-US/286f4fc8b3ab4439b3400e97288152dc. html\n \n
\n
\n The documentation is not complete. After doing the steps on the documentation link review this Note\n
\n
\n \n 1959660 - SYB: Database Fault Management\n \n
\n
\n
\n su - aseadm\n
\n
\n
\n rsecssfx put DB_CONNECT/SYB/DR_USER DR_admin -plain\n
\n
\n
\n rsecssfx put DB_CONNECT/SYB/DR_PASSWORD SAPHana12345\n
\n
\n
\n sybdb1:~ #su - aseadm\n
\n
\n
\n sybdb1:aseadm 1> rsecssfx put DB_CONNECT/SYB/DR_USER DR_admin -plain\n
\n
\n
\n sybdb1:aseadm 2> rsecssfx put DB_CONNECT/SYB/DR_PASSWORD SAPHana12345\n
\n
\n
\n sybdb1:aseadm 3>\n
\n
\n
\n sybdb2:~ #su - aseadm\n
\n
\n
\n sybdb2:aseadm 1> rsecssfx put DB_CONNECT/SYB/DR_USER DR_admin -plain\n
\n
\n
\n sybdb2:aseadm 2> rsecssfx put DB_CONNECT/SYB/DR_PASSWORD SAPHana12345\n
\n
\n
\n sybdb2:aseadm 3>\n
\n
\n
\n ## Run AlwaysOn Tuning & Configuration script on Primary and Companion\n
\n
\n isql -UDR_admin -PSAPHana12345 -Ssybdb1:4909\n
\n
\n
\n sap_tune_rs Site1, 16, 4\n
\n
\n
\n isql -UDR_admin -PSAPHana12345 -Ssybdb2:4909\n
\n
\n
\n sap_tune_rs Site2, 16, 4\n
\n
\n
\n sybdb2:aseadm 3> isql -UDR_admin -PSAPHana12345 -Ssybdb2:4909\n
\n
\n
\n 1> sap_tune_rs Site2, 16, 4\n
\n
\n
\n 2> go\n
\n
\n
\n TASKNAMETYPE\n
\n
\n
\n VALUE\n
\n
\n
\n ----------------------- -----------------\n
\n
\n
\n ------------------------------------------------------------\n
\n
\n
\n Tune Replication Server Start Time\n
\n
\n
\n Sun Apr 29 06:20:37 UTC 2018\n
\n
\n
\n Tune Replication Server Elapsed Time\n
\n
\n
\n 00:07:11\n
\n
\n
\n TuneRSTask Name\n
\n
\n
\n Tune Replication Server\n
\n
\n
\n TuneRSTask State\n
\n
\n
\n Completed\n
\n
\n
\n TuneRSShort Description\n
\n
\n
\n Tune Replication Server configurations.\n
\n
\n
\n TuneRSLong Description\n
\n
\n
\n Waiting 180 seconds: Waiting Replication Server to fully up.\n
\n
\n
\n TuneRSTask Start\n
\n
\n
\n Sun Apr 29 06:20:37 UTC 2018\n
\n
\n
\n TuneRSTask End\n
\n
\n
\n Sun Apr 29 06:27:48 UTC 2018\n
\n
\n
\n TuneRSHostname\n
\n
\n
\n sybdb2\n
\n
\n
\n (9 rows affected)\n
\n
\n
\n ## On the APP server only\n
\n
\n sudo vi . dbenv. csh\n
\n
\n
\n setenv dbs_syb_ha 1\n
\n
\n
\n setenv dbs_syb_server sybdb1:sybdb2\n
\n
\n
\n ## Restart the SAP App server\n
\n
\n sapcontrol -nr 00 -function StopSystem ALL\n
\n
\n sapcontrol -nr 00 -function StartSystem ALL\n
\n
\n
\n \n https://help. sap. com/viewer/efe56ad3cad0467d837c8ff1ac6ba75c/16. 0. 3. 3/en-US/41b39cb667664dc09d2d9f4c87b299a7. html\n \n
\n
\n sybapp1:aseadm 6> rsecssfx list\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | Record Key | Status | Time Stamp of Last Update |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/DEFAULT_DB_PASSWORD | Encrypted| 2018-04-2903:07:11UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/DEFAULT_DB_USER | Plaintext| 2018-04-2903:07:07UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/DR_PASSWORD | Encrypted| 2018-04-2906:18:26UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/DR_USER | Plaintext| 2018-04-2906:18:22UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/SADB_PASSWORD | Encrypted| 2018-04-2903:07:19UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/SADB_USER | Plaintext| 2018-04-2903:07:14UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/SAPSID_PASSWORD | Encrypted| 2018-04-2903:07:42UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/SAPSID_USER | Plaintext| 2018-04-2903:07:37UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/SSODB_PASSWORD| Encrypted| 2018-04-2903:07:27UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/SSODB_USER| Plaintext| 2018-04-2903:07:22UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/SYBSID_PASSWORD | Encrypted| 2018-04-2903:07:34UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/SYBSID_USER | Plaintext| 2018-04-2903:07:30UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | SYSTEM_PKI/PIN | Encrypted| 2018-04-2722:36:39UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | SYSTEM_PKI/PSE | Encrypted (binary) | 2018-04-2722:36:45UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n Summary\n
\n
\n
\n -------\n
\n
\n
\n ActiveRecords : 14 (Encrypted: 8, Plain: 6, Wrong Key: 0, Error: 0)\n
\n
\n
\n Defunct Records : 12 (180+ days: 0; Show: \"list -withHistory\", Remove: \"compact\")\n
\n
\n
\n ## Run the Fault Manager Installation steps on the SAP PAS application server\n
\n
\n sybapp1:aseadm 24> pwd\n
\n
\n
\n /sapmnt/ASE/exe/uc/linuxx86_64\n
\n
\n
\n sybapp1:aseadm 25> whoami\n
\n
\n
\n aseadm\n
\n
\n
\n sybapp1:aseadm 26>\n \n . /sybdbfm install\n \n
\n
\n
\n replication manager agent user DR_admin and password set in Secure Store.\n
\n
\n
\n Keep existing values (yes/no)? (yes)\n
\n
\n
\n SAPHostAgent connect user: (sapadm)\n
\n
\n
\n Enter password for user sapadm.\n
\n
\n
\n Password:\n
\n
\n
\n Enter value for primary database host: (sybdb1)\n
\n
\n
\n Enter value for primary database name: (ASE)\n
\n
\n
\n Enter value for primary database port: (4901)\n
\n
\n
\n Enter value for primary site name: (Site1)\n
\n
\n
\n Enter value for primary database heart beat port: (13777)\n
\n
\n
\n Enter value for standby database host: (sybdb2)\n
\n
\n
\n Enter value for standby database name: (ASE)\n
\n
\n
\n Enter value for standby database port: (4901)\n
\n
\n
\n Enter value for standby site name : (Site2)\n
\n
\n
\n Enter value for standby database heart beat port: (13787)\n
\n
\n
\n Enter value for fault manager host: (sybapp1)\n
\n
\n
\n Enter value for heart beat to heart beat port: (13797)\n
\n
\n
\n Enter value for support for floating database ip: (no)\n
\n
\n
\n Enter value for use SAP ASE Cockpit if it is installed and running: (no)\n
\n
\n
\n installation finished successfully.\n
\n
\n
\n Restart the SAP Instance - FM is added to the ASCS start profile\n
\n
\n \n
\n
\n sybapp1:aseadm 32>\n \n sybdbfm status\n \n
\n
\n
\n fault manager running, pid = 4338, fault manager overall status = OK, currently executing in mode PAUSING\n
\n
\n
\n *** sanity check report (5)***.\n
\n
\n
\n node 1: server sybdb1, site Site1.\n
\n
\n
\n db host status: OK.\n
\n
\n
\n db status OK hadr status PRIMARY.\n
\n
\n
\n node 2: server sybdb2, site Site2.\n
\n
\n
\n db host status: OK.\n
\n
\n
\n db status OK hadr status STANDBY.\n
\n
\n
\n replication status: SYNC_OK.\n
\n
\n
\n \n AlwaysOn Install 3rd Node (DR) Async\n \n
\n
\n
\n Official SAP Sybase documentation and Links:\n
\n
\n \n https://blogs. sap. com/2018/04/19/high-availability-disaster-recovery-3-node-hadr-with-sap-ase-16. 0-sp03/\n \n
\n
\n Documentation\n \n https://help. sap. com/viewer/38af74a09e48457ab699e83f6dfb051a/16. 0. 3. 3/en-US\n \n
\n
\n \n https://help. sap. com/viewer/38af74a09e48457ab699e83f6dfb051a/16. 0. 3. 3/en-US/6ca81e90696e4946a68e9257fa2d3c31. html\n \n
\n
\n 1. Install the DB host using SWPM in the same way as the companion host\n
\n
\n 2. Copy the companion host response file\n
\n
\n 3. Duplicate the section with all the COMP entries and add it at the bottom and rename at section of the newly copied COMPs to DR (for example). Leave the old COMP and PRIM entries as is.\n
\n
\n 4. Change the setup site to DR\n
\n
\n 5. All other entries from PRIM and COMP must remain the same since the setuphadr run for 3rd node needs to know about previous 2 hosts.\n
\n
\n 6. Execute setuphadr\n
\n
\n Review the Sample Response File attached to this blog\n
\n
\n \n
\n
\n ##do same preparations as ASCS for zypper and hosts file etc\n
\n
\n Check that these libraries are installed otherwise Fault Manager will silently fail\n
\n
\n sudo zypper install glibc-32bit\n
\n
\n sudo zypper install libgcc_s1-32bit\n
\n
\n ##do same preparations as ASCS for zypper and hosts file etc\n
\n
\n #create disks for sybase\n
\n

\n Note : when multiple disks are added for data/log/backup to create a single volume, use right striping method to get better performance\n

\n
\n

\n Example:\n

\n
\n

\n vgcreate VG_DATA /dev/sdc /dev/sdd\n

\n
\n

\n lvcreate -l 100%F VG_DATA -n lv_data -i 2 -I 256\n

\n
\n

\n (for log use –l 32 )\n

\n
\n sudo fdisk -l | grep /dev/sd\n
\n
\n sudo fdisk /dev/sdc -> n, p, w\n
\n
\n sudo fdisk /dev/sdd -> n, p, w\n
\n
\n #only 1 disk, but created pv, lv etc here so we can test performance later with striping additional disks\n
\n
\n sudo pvcreate /dev/sdc1 /dev/sdc1\n
\n
\n sudo pvcreate /dev/sdc1 /dev/sdd1\n
\n
\n sudo pvscan\n
\n
\n sudo vgcreate syb_data_vg /dev/sdc1\n
\n
\n sudo vgcreate syb_log_vg /dev/sdd1\n
\n
\n sudo lvcreate -i1 -l 100%FREE -n syb_data_lvsyb_data_vg\n
\n
\n sudo lvcreate -i1 -l 100%FREE -n syb_log_lvsyb_log_vg\n
\n
\n sudo mkfs. xfs -f /dev/syb_data_vg/syb_data_lv\n
\n
\n sudo mkfs. xfs -f/dev/syb_log_vg/syb_log_lv\n
\n
\n sudo mkdir -p /sybase/source\n
\n
\n sudo mkdir -p /log\n
\n
\n sudo mkdir -p /sapmnt\n
\n
\n sudo blkid | grep log\n
\n
\n sudo blkid | grep data\n
\n
\n edit /etc/fstab and add the entries for the created disks.\n
\n

\n \n Option 1 :\n
\n
\n

\n
\n Identify based on created volume group and lv details.\n
\n
\n Ex: ls /dev/mapper/\n
\n
\n And fetch the right devices\n
\n
\n Ex: syb_data_vg-syb_data_lv\n
\n
\n Add the the entries into /etc/fstab\n
\n
\n sudo vi /etc/fstab\n
\n
\n Add the lines.\n
\n
\n /dev/mapper/syb_data_vg-syb_data_lv /hana/data xfs defaults,nofail 1 2\n
\n

\n \n Option 2 :\n
\n
\n

\n
\n #now sudo su - to root user and run this (replace GUID) - cannot run this with sudo command, must be root\n
\n
\n sudo su -\n
\n
\n echo \"/dev/disk/by-uuid/799603d6-20c0-47af-80c9-75c72a573829 /sybase xfsdefaults,nofail02\">> /etc/fstab\n
\n
\n echo \"/dev/disk/by-uuid/2bb3f00c-c295-4417-b258-8de43a844e23 /log xfsdefaults,nofail02\">> /etc/fstab\n
\n
\n exit\n
\n
\n sudo mount -a\n
\n
\n sudo df -h\n
\n
\n sudo mount -a\n
\n
\n sudo df -h\n
\n
\n Note: mount points are visible only when the folders are accessed in df –h command when auto mount is enabled.\n
\n
\n ##create a directory for the source files.\n
\n
\n sudo mkdir -p /sybase/source\n
\n
\n ## copy source files\n
\n
\n sudo chmod 777 /sybase/source -R\n
\n
\n ## setup automount for /sapmnt\n
\n
\n ### - use auto mount not the \"old\" way sudo mount -t nfs4 -o rw sybapp1:/sapmnt /sapmnt\n
\n
\n sudo mkdir /sapmnt\n
\n
\n sudo vi /etc/auto.master\n
\n
\n # Add the following line to the file, save and exit\n
\n
\n +auto.master\n
\n
\n /- /etc/auto.direct\n
\n
\n sudo vi /etc/auto.direct\n
\n
\n # Add the following lines to the file, save and exit\n
\n
\n /sapmnt -nfsvers=4,nosymlink,sync sybapp1:/sapmnt\n
\n
\n sudo systemctl enable autofs\n
\n
\n sudo service autofs restart\n
\n
\n sudo /sybase/source/swpm/sapinst SAPINST_REMOTE_ACCESS_USER=<os-user>\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n Stop the autofs and unmount the /sapmnt - sapinst will continue\n
\n
\n The /sapmnt must be mounted again shortly after\n
\n
\n \n
\n
\n \n
\n
\n ## Install the DMA on the DR Node\n
\n
\n ##Login as syb<sid> - in this case the <sid> = ase\n
\n
\n
\n source/ASE1633/BD_SYBASE_ASE_16. 0. 03. 03_RDBMS_for_BS_/SYBASE_LINUX_X86_64/setup. bin -f /sybase/sybdb3_dma. rs -i silent\n
\n
\n \n isql-Usapsso -PSAPHana12345 -SASE -X\n \n
\n
\n
\n sp_locklogin sa, unlock\n
\n
\n go\n
\n
\n sybdb3 /sybase% uname -a\n
\n
\n
\n Linux sybdb3 4. 4. 120-92. 70-default #1 SMP Wed Mar 14 15:59:43 UTC 2018 (52a83de) x86_64 x86_64 x86_64 GNU/Linux\n
\n
\n
\n sybdb3 /sybase% whoami\n
\n
\n
\n sybase\n
\n
\n
\n ##Run setuphadr after editing the response file based on Sybase documentation (sample response file is attached to this blog)\n
\n
\n sybdb3 /sybase%\n \n setuphadr /sybase/sybdb3_setup_hadr.rs\n \n
\n
\n

\n \n

\n
\n \n AlwaysOn Testing & Useful Command Syntax\n \n
\n
\n
\n In the section below planned and unplanned failovers as well as monitoring commands are used.\n
\n
\n It is recommended to review the Sybase documentation and also to review these SAP Notes:\n
\n
\n 1982469 - SYB: Updating SAP ASE with saphostctrl\n
\n
\n 1959660 - SYB: Database Fault Management\n
\n
\n 2179305 - SYB: Usage of saphostctrl for SAP ASE and SAP Replication Server\n
\n
\n ## Check if Fault Manager is running on the SAP PAS with this command\n
\n
\n ps -ef | grep sybdbfm\n
\n
\n
\n executable in /usr/sap/<SID>/ASCS00/work\n
\n
\n
\n sybdbfm is copied to sybdbfm. sap<SID>_ASCS00\n
\n
\n
\n cd /usr/sap/<SID>/ASCS00/work\n
\n
\n
\n . /sybdbfm. sapASE_ASCS00 status\n
\n
\n
\n . /sybdbfm. sapASE_ASCS00 hibernate\n
\n
\n
\n . /sybdbfm. sapASE_ASCS00 resume\n
\n
\n
\n login as syb<sid> in this case sybase\n
\n
\n
\n ## Login to the RMA\n
\n
\n
\n isql -UDR_admin -P<<password>> -SASE_RMA_Site1 -I DM/interfaces -X -w999\n
\n
\n
\n ## to see all the components that are running\n
\n
\n
\n sap_version all\n
\n
\n
\n go\n
\n
\n
\n ## to see the status of a replication path\n
\n
\n
\n sap_status path\n
\n
\n
\n go\n
\n
\n
\n ## to see the status of resources\n
\n
\n
\n sap_status resource\n
\n
\n
\n go\n
\n
\n
\n ## Login to ASE\n
\n
\n
\n The syntax \"-I DM/interfaces\" does a lookup in the Sybase AlwaysOn configuration database to find the host and TCP port\n
\n
\n
\n isql -UDR_admin -P<<password>> -SASE_Site1 -I DM/interfaces -X-w999\n
\n
\n
\n ## to clear down the transaction log run this command\n
\n
\n
\n dump tran ASE with truncate_only\n
\n
\n
\n go\n
\n
\n
\n ## to show freespace in DB\n
\n
\n
\n sp_helpdb ASE\n
\n
\n
\n go\n
\n
\n
\n ## Transaction log backups are needed on all replicas otherwise the Trans Log will become full\n
\n
\n
\n ## to start/stop/get info on Sybase DB (and all required components for Always on like RMA) - run this on the DB host\n
\n
\n
\n \n sudo /usr/sap/hostctrl/exe/saphostctrl -user sapadm -function StartDatabase -dbname ASE -dbtype syb\n
\n
\n
\n
\n \n sudo /usr/sap/hostctrl/exe/saphostctrl -user sapadm -function StartDatabase -dbname ASE_REP -dbtype syb\n
\n
\n
\n

\n \n

\n
\n ## to get Sybase DB status\n
\n
\n
\n \n sudo /usr/sap/hostctrl/exe/saphostctrl -user sapadm -function GetDatabaseStatus -dbname ASE -dbtype syb\n
\n
\n
\n
\n ## to get Sybase DB replication status\n
\n
\n
\n \n sudo /usr/sap/hostctrl/exe/saphostctrl -user sapadm -function LiveDatabaseUpdate -dbname ASE -dbtype syb -updatemethod Check -updateoption TASK=REPLICATION_STATUS\n
\n
\n
\n

\n \n

\n
\n ## to send a trace ticket logon to RMA and execute these commands\n
\n
\n
\n sap_send_trace Site1\n
\n
\n
\n go\n
\n
\n
\n sap_status active\n
\n
\n
\n go\n
\n
\n
\n ## during HADR testing leave tail running on the file /usr/sap/<SID>/ASCS00/work\n
\n
\n
\n tail -100f dev_sybdbfm\n
\n
\n
\n ## to force a shutdown of the DB engine run the command below. Always-on will try to stop a normal shutdown of the DB\n
\n
\n
\n shutdown with wait nowait_hadr\n
\n
\n
\n go\n
\n
\n
\n ## to do a planned failover from Primary to Companion DB the normal sequence is:\n
\n
\n
\n 1. Failover from Primary to Companion\n
\n
\n
\n 2. Drain logs from Primary to the DR site\n
\n
\n
\n 3. Reverse Replication Route to start synchronization from the new Primary to the Companion and DR\n
\n
\n
\n -- There is a new command that does all these steps automatically:\n
\n
\n
\n \n /usr/sap/hostctrl/exe/saphostctrl -user sapadm - -function LiveDatabaseUpdate -dbname ASE -dbtype syb -updatemethod Execute -updateoption TASK=FAILOVER -updateoption FAILOVER_FORCE=1 -updateoption FAILOVER_TIME=300\n
\n
\n
\n
\n ## it is recommended to use this command. If there are errors check in the path /usr/sap/hostctrl/work for log files\n
\n
\n
\n ##other useful commands:\n
\n
\n
\n ## to disable/enable replication from a Site to all routes\n
\n
\n
\n sap_disable_replication Site1, <DB>\n
\n
\n
\n sap_enable_replication Site1,Site2,<DB>\n
\n
\n
\n ## command to manually failover\n
\n
\n
\n sap_failover <primary>,<standby>,<timeout>, [force], [unplanned]\n
\n
\n
\n ## Materialize is a \"dump and load\" to reinitialize Sybase Alwayson replica.\n
\n
\n
\n sap_materialize auto,Site1,Site2,master\n
\n
\n
\n sap_materialize auto,Site1,Site2,<SID>\n
\n
\n
\n \n Sybase How To & Links\n \n
\n
\n
\n Customers familiar with SQL Server AlwaysOn should note that although it is possible to take a DB or Log backup from a replica, these backups are not compatible between Primary <-> Replica databases. It is also a requirement to run transaction log backups on the replica nodes unlike SQL Server.\n
\n
\n SAP Notes:\n
\n
\n 2134316 - Can SAP ASE run in a cloud environment? - SAP ASE\n
\n
\n 1554717 - SYB: Planning information for SAP on ASE\n
\n
\n 1706801 - SYB: SAP ASE released for virtual systems\n
\n
\n 1590719 - SYB: Updates for SAP Adaptive Server Enterprise (SAP ASE)\n
\n
\n 1959660 - SYB: Database Fault Management\n
\n
\n 2450148 - 'Warning: stopService() only supported on windows' message happened during HADR configuration -SAP ASE\n
\n
\n 2489781 - SAP ASE 16. 0 SP03 Supported Operating Systems and Versions\n
\n
\n DBA Cockpit doesn't work by default after installation.\n
\n
\n Setup DBA Cockpit as per:\n
\n 2293673 - SYB: DBA Cockpit Correction Collection SAP Basis 7. 50\n
\n
\n 1605680 - SYB: Troubleshoot the setup of the DBA Cockpit on Sybase ASE\n
\n
\n 1245200 - DBA: ICF Service Activation for WebDynpro DBA Cockpit\n
\n
\n For SUSE Linux Release 12 with SP3 release note :\n \n https://www. suse. com/releasenotes/x86_64/SUSE-SLES/12-SP3/\n \n
\n
\n SAP Software Downloads\n \n https://support. sap. com/en/my-support/software-downloads. html\n \n
\n
\n SWPM Download\n \n https://support. sap. com/sltoolset\n \n
\n
\n Sybase Release Matrix\n \n https://wiki. scn. sap. com/wiki/display/SYBASE/Targeted+ASE+16. 0+Release+Schedule+and+CR+list+Information\n \n
\n
\n Sybase Official Documentation\n \n https://help. sap. com/viewer/product/SAP_ASE/16. 0. 3. 3/en-US\n \n
\n
\n Special thanks to Wajeeh Samdani from SAP Sybase Development in Walldorf\n
\n
\n Special thanks to Cognizant SAP Cloud Team for their input and review of this blog\n
\n
\n Content from third party websites, SAP and other sources reproduced in accordance with\n \n Fair Use\n \n criticism, comment, news reporting, teaching, scholarship, and research\n \n","body@stringLength":"54110","rawBody":"\n \n \n First published on MSDN on Jun 18, 2018\n \n
\n In recent months we saw several customers with large investments into Hana technologies approach Microsoft for information about deploying large mission critical SAP applications on Azure with the Sybase ASE database.\n
\n
\n SAP Hana customers are typically able to deploy Sybase ASE at little or no additional cost if they have licensed Hana Database.\n
\n
\n Many of the customers that have contacted Microsoft are shutting datacenters or terminating UNIX platforms and moving ECC or BW systems in the size range of 25-45TB DB volume to Azure. An earlier blog describes some of the requirements and best practices for VLDB migrations to Azure.\n \n https://blogs. msdn. microsoft. com/saponsqlserver/2018/04/10/very-large-database-migration-to-azure-recommendations-guidance-to-partners/\n \n
\n
\n Until recently there was no simple documented straight forward installation procedure for a typical two node High-Availability pair with Synchronous replication and a third node with Asynchronous replication. This is quite a common requirement for SAP customers.\n
\n
\n This blog is designed to supplement the existing SAP provided documentation and to provide some hints and additional information. The SAP Sybase team are continuously updating and improving the Sybase documentation, so it is always recommended to start with the official documentation and then cross reference this documentation. This document is based on real deployments from Cognizant and DXC. The latest version of Sybase & Suse were then installed in a lab test environment to provide screenshots\n
\n

\n High Level Overview of Installation Steps\n

\n
\n The high-level installation process for a 3 tier SAP Distributed Installation is:\n
\n
    \n
    \n
  1. \n
    \n
    \n Read required OSS Notes, Installation Guides, Download Installation Media and the SAP on Sybase Business Suite documentation\n
    \n
    \n
      \n
      \n
    1. \n
      \n
      \n For SUSE Linux Release 12 with SP3 release note :\n \n https://www. suse. com/releasenotes/x86_64/SUSE-SLES/12-SP3/\n \n
      \n
    2. \n
      \n
    3. \n
      \n
      \n SAP Software Downloads\n \n https://support. sap. com/en/my-support/software-downloads. html\n \n
      \n
    4. \n
      \n
    5. \n
      \n
      \n SWPM Download\n \n https://support. sap. com/sltoolset\n \n
      \n
    6. \n
      \n
    7. \n
      \n
      \n Sybase Release Matrix\n \n https://wiki. scn. sap. com/wiki/display/SYBASE/Targeted+ASE+16. 0+Release+Schedule+and+CR+list+Information\n \n
      \n
    8. \n
      \n
    9. \n
      \n
      \n Sybase Official Documentation\n \n https://help. sap. com/viewer/product/SAP_ASE/16. 0. 3. 3/en-US\n \n
      \n
    10. \n
      \n
    \n
    \n
  2. \n
    \n
  3. \n Provision Azure VMs with Suse for SAP Applications 12. 3 with Accelerated Networking Enabled\n
  4. \n
    \n
  5. \n Perform OS patching and preparation steps detailed below\n
  6. \n
    \n
  7. \n Run SWPM Distributed Install and install the ASCS Instance\n
  8. \n
    \n
  9. \n Export the /sapmnt NFS share\n
  10. \n
    \n
  11. \n Mount the /sapmnt NFS share on the Primary, Secondary and DR DB server\n
  12. \n
    \n
  13. \n Run SWPM Distributed Install and install the Primary DB Instance\n
  14. \n
    \n
  15. \n Run SWPM Distributed Install and install the Primary Application Server (Optional: add additional App servers)\n
  16. \n
    \n
  17. \n Perform Sybase Always-on preparation steps on Primary DB Instance\n
  18. \n
    \n
  19. \n Run setuphadr on Primary DB Instance\n
  20. \n
    \n
  21. \n Run SWPM Distributed Install and install the Secondary DB Instance\n
  22. \n
    \n
  23. \n Perform Sybase Always-on preparation steps on Secondary DB Instance\n
  24. \n
    \n
  25. \n Run setuphadr on Secondary DB Instance\n
  26. \n
    \n
  27. \n Run SWPM Distributed Install and install the DR DB Instance\n
  28. \n
    \n
  29. \n Perform Sybase Always-on preparation steps on DR DB Instance\n
  30. \n
    \n
  31. \n Run setuphadr on DR DB Instance\n
  32. \n
    \n
  33. \n Run post steps such as installing Fault Manager\n
  34. \n
    \n
\n
\n

\n Deployment Config\n

\n
\n
    \n
    \n
  1. \n Suse 12. 3 with latest updates\n
  2. \n
    \n
  3. \n Sybase 16. 03. 03\n
  4. \n
    \n
  5. \n SWPM version 22 or 23. SAP Kernel 7. 49 patch 500. NetWeaver ABAP 7. 50\n
  6. \n
    \n
  7. \n Azure Ev3 VMs with Accelerated Networking and 4 vcpu\n
  8. \n
    \n
  9. \n Premium Storage – each DB server has 2 x P20 disks (or more as required). App server has only a boot disk\n
  10. \n
    \n
  11. \n Official Sybase Documentation (some steps do not work, supplement with this blog)\n \n https://help. sap. com/viewer/product/SAP_ASE/16. 0. 3. 3/en-US\n \n
  12. \n
    \n
  13. \n Sample Response Files are attached here:\n \n Sybase-Sample-Response-Files\n \n . It is recommended to download and review these files\n
  14. \n
    \n
  15. \n Sybase Always-on does not leverage OS level clustering technologies such as Pacemaker or Windows cluster. The Azure ILB is not used. Instead the SAP workprocess is aware of the Primary and Secondary Sybase server. The DR node does not support automatic failover and this is a manual process to setup and configure SAP app servers to connect to the DR node\n
  16. \n
    \n
  17. \n This installation shows a \"Distributed\" installation. If the SAP Central Services should be highly available, follow the SAP on Azure documentation for Pacemaker\n
  18. \n
    \n
  19. \n Sybase Fault Manager is automatically installed on the SAP PAS during installation\n
  20. \n
    \n
  21. \n
    \n
    \n Be careful of Linux vs. Windows End of Life characters. Use Linux command cat -v response_file. rsIf ^M are seen then there are Windows EOL characters.\n
    \n
    \n

    \n Example:cat -v test. sh\n

    \n
    \n

    \n Output:\n

    \n
    \n

    \n Line 1 ^M\n

    \n
    \n

    \n Line 2 ^M\n

    \n
    \n

    \n Line 3 ^M\n

    \n
    \n

    \n (Note: CTRL+M is a single character in Linux, which is carriagereturn in Windows. This needs to be fixed before utilizing the file in Linux )\n

    \n
    \n

    \n To fix the issue\n

    \n
    \n

    \n $> dos2unix test. sh\n

    \n
    \n

    \n Output\n

    \n
    \n

    \n Line 1\n

    \n
    \n

    \n Line 2\n

    \n
    \n

    \n Line 3\n

    \n
    \n
  22. \n
    \n
  23. \n
    \n
    \n Hosts file configuration used for this deployment\n
    \n
    \n

    \n Example: <IP Address><FQDN> <SHORTNAME> <#Optional Comments>\n

    \n
    \n

    \n 10. 1. 0. 9     sybdb1. hana. com     sybdb1    #primary DB\n

    \n
    \n

    \n 10. 1. 0. 10   sybapp1. hana. com    sybapp1    #SAP NW 7. 5 PAS\n

    \n
    \n

    \n 10. 1. 0. 11   sybdb2. hana. com     sybdb2        #secondary DB\n

    \n
    \n

    \n 10. 1. 0. 12   sybdb3. hana. com    sybdb3        #tertiary DB for DR\n

    \n
    \n \n Common Prepare Steps on all Suse Servers\n \n
    \n
  24. \n
    \n
\n
\n

\n sudo zypper install -y glibc-32bit\n

\n
\n

\n sudo zypper install -y libgcc_s1-32bit\n

\n
\n #these two glib 32bit are mandatory otherwise Always-on will not work\n
\n

\n sudo zypper up -y\n

\n
\n Note : It is mandatory to reboot the server if kernel patches are applied.\n
\n
\n #resize the boot disk. The default linux root disk of 30GB is too small. Shutdown the VM and edit the disks in Azure Portal or Powershell. Increase the size of the disk to 60-100GB. Restart the VM and run the commands below. There is no benefit or advantage to provisioning an additional separate disk for a SAP application server\n
\n

\n sudo fdisk /dev/sda\n

\n
\n

\n ##delete the existing partition (this will not delete the data) and create [n] new primary [p] partition with defaults and write [w] config\n

\n
\n

\n sudo resize2fs /dev/sda2\n

\n
\n

\n sudo reboot\n

\n
\n #Check Accelerated Networking is working\n
\n

\n /sbin/ethtool -S eth0 | grep vf_\n

\n
\n #Add these entries to the hosts file\n
\n
\n sudo vi /etc/hosts\n
\n

\n 10. 1. 0. 9     sybdb1. hana. com     sybdb1    #primary DB\n

\n
\n

\n 10. 1. 0. 10   sybapp1. hana. com    sybapp1    #SAP NW 7. 5 PAS\n

\n
\n

\n 10. 1. 0. 11   sybdb2. hana. com     sybdb2        #secondary DB\n

\n
\n

\n 10. 1. 0. 12   sybdb3. hana. com    sybdb3        #tertiary DB for DR\n

\n
\n #edit the waagent to create a swapfile\n
\n

\n sudo vi /etc/waagent. conf\n

\n
\n

\n line to look for>>\n

\n
\n

\n ResourceDisk. EnableSwap=n\n

\n
\n

\n ResourceDisk. SwapSizeMB=\n

\n
\n

\n <<\n

\n
\n

\n Modify the above values Note : Swap size must be given in MB size only.\n

\n
\n

\n #enable the swapfile and set a size of 2GB or more. Example:\n

\n
\n

\n ResourceDisk. EnableSwap=y\n

\n
\n

\n ResourceDisk. SwapSizeMB=2000\n

\n
\n

\n Once done restart of the agent is necessary to get the swap file up and active.\n

\n
\n

\n sudo systemctl restart waagent\n

\n
\n

\n Other Services to be enabled and restarted are:\n

\n
\n

\n sudo systemctl restart nfs-server\n

\n
\n

\n sudo systemctl enable nfs-server\n

\n
\n

\n sudo systemctl status uuidd\n

\n
\n

\n sudo systemctl enable uuidd\n

\n
\n

\n sudo systemctl start uuidd\n

\n
\n

\n sudo systemctl status uuidd\n

\n
\n ##run sapcar and unpack SWPM 22 or 23\n
\n
\n sapcar -xvf SWPM10SP22_7-20009701. SAR\n
\n
\n \n SAP APP Server ASCS Install\n \n
\n
\n
\n sudo /source/swpm/sapinst SAPINST_REMOTE_ACCESS_USER=<os-user>\n
\n
\n Open a web browser from a Management Server and enter the Suse os-user name and password\n \n https://10. 1. 0. 10:4237/sapinst/docs/index. html\n \n
\n
\n \n
\n

\n \n

\n
\n \n
\n
\n \n
\n

\n ##after install exportthe NFS Share for /sapmnt\n

\n
\n

\n sudo vi /etc/exports\n

\n
\n

\n #add this line /sapmnt*(rw,no_root_squash)\n

\n
\n

\n ## open port 2049 for nfs on NSG if required [by default VMs on same vnet can talk to each other]\n

\n
\n

\n sudo systemctl restart nfs-server\n

\n
\n \n SAP DB Instance Install\n \n
\n
\n
\n ##do common preparation steps such as zypper and hosts file etc\n
\n
\n #create disks for sybase\n
\n

\n sudo fdisk -l | grep /dev/sd\n

\n
\n

\n sudo fdisk /dev/sdc  -> n, p, w\n

\n
\n

\n sudo fdisk /dev/sdd  -> n, p, w\n

\n
\n #It is generally recommended to use LVM and create pv, lv etc here so we can test performance later with striping additional disks.\n
\n
\n Note: if multiple disk used in creating data / Backup / Log storage, make a necessary striping enabled to get optimal performance.\n
\n

\n Example:\n

\n
\n

\n vgcreate VG_DATA /dev/sdc /dev/sdd\n

\n
\n

\n lvcreate -l 100%F VG_DATA -n lv_data -i 2 -I 256\n

\n
\n sudo pvcreate /dev/sdc1 /dev/sdc1\n
\n
\n sudo pvcreate /dev/sdc1 /dev/sdd1\n
\n
\n sudo pvscan\n
\n
\n sudo vgcreate syb_data_vg /dev/sdc1\n
\n
\n sudo vgcreate syb_log_vg /dev/sdd1\n
\n
\n sudo lvcreate -i1 -l 100%FREE -n syb_data_lvsyb_data_vg\n
\n
\n sudo lvcreate -i1 -l 100%FREE -n syb_log_lvsyb_log_vg\n
\n
\n sudo mkfs. xfs -f /dev/syb_data_vg/syb_data_lv\n
\n
\n sudo mkfs. xfs -f/dev/syb_log_vg/syb_log_lv\n
\n
\n sudo mkdir -p /sybase/source\n
\n
\n sudo mkdir -p /log\n
\n
\n sudo mkdir -p /sapmnt\n
\n
\n sudo blkid | grep log\n
\n
\n sudo blkid | grep data\n
\n
\n Edit /etc/fstab and add the entries for the created disks.\n
\n

\n \n Option 1:\n
\n
\n

\n
\n Identify based on created volume group and lv details.\n
\n
\n Ex: ls /dev/mapper/\n
\n
\n And fetch the right devices\n
\n
\n Ex: syb_data_vg-syb_data_lv\n
\n
\n Add the the entries into /etc/fstab\n
\n
\n sudo vi /etc/fstab\n
\n
\n Add the lines.\n
\n
\n /dev/mapper/syb_data_vg-syb_data_lv /hana/data xfs defaults,nofail 1 2\n
\n

\n \n Option 2:\n
\n
\n

\n
\n #now sudo su - to root user and run this (replace GUID) - cannot run this with sudo command, must be root\n
\n
\n sudo su -\n
\n
\n echo \"/dev/disk/by-uuid/799603d6-20c0-47af-80c9-75c72a573829 /sybase xfsdefaults,nofail02\">> /etc/fstab\n
\n
\n echo \"/dev/disk/by-uuid/2bb3f00c-c295-4417-b258-8de43a844e23 /log xfsdefaults,nofail02\">> /etc/fstab\n
\n
\n exit\n
\n
\n sudo mount -a\n
\n
\n sudo df -h\n
\n
\n ##create a directory for the source files.\n
\n
\n sudo mkdir /sybase/source\n
\n
\n ## copy source files\n
\n
\n sudo chmod 777 /sybase/source -R\n
\n
\n ## setup automount for /sapmnt\n
\n
\n ### - use auto mount not the \"old\" way sudo mount -t nfs4 -o rw sybapp1:/sapmnt /sapmnt\n
\n
\n sudo mkdir /sapmnt\n
\n
\n sudo vi /etc/auto.master\n
\n
\n # Add the following line to the file, save and exit\n
\n
\n +auto.master\n
\n
\n /- /etc/auto.direct\n
\n
\n sudo vi /etc/auto.direct\n
\n
\n # Add the following lines to the file, save and exit\n
\n
\n /sapmnt -nfsvers=4,nosymlink,sync sybapp1:/sapmnt\n
\n
\n sudo systemctl enable autofs\n
\n
\n sudo service autofs restart\n
\n
\n sudo /sybase/source/swpm/sapinst SAPINST_REMOTE_ACCESS_USER=<os-user>\n
\n
\n Open web browser and start installation\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n SAP PAS Install\n \n
\n
\n
\n ##do same preparations as ASCS for zypper and hosts file etc\n
\n
\n sudo /source/swpm/sapinst SAPINST_REMOTE_ACCESS_USER=<os-user>\n
\n
\n \n https://10. 1. 0. 10:4237/sapinst/docs/index. html\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n AlwaysOn Install Primary\n \n
\n
\n
\n ##do same preparations as ASCS for zypper and hosts file etc\n
\n
\n Check that these libraries are installed otherwise Fault Manager will silently fail\n
\n

\n sudo zypper install glibc-32bit\n

\n
\n

\n sudo zypper install libgcc_s1-32bit\n

\n
\n ##Login as syb<sid> - in this case the <sid> = ase\n
\n
\n
\n sybdb1 /sybase% whoami\n
\n
\n
\n sybase\n
\n
\n
\n sybdb1 /sybase% pwd\n
\n
\n
\n /sybase\n
\n
\n
\n sybdb1 /sybase% ls\n
\n
\n
\n ASEsourcesybdb1_dma.rssybdb1_setup_hadr. rs\n
\n
\n
\n sybdb1 /sybase% cat sybdb1_dma.rs | grep USER_INSTALL_DIR\n
\n
\n
\n USER_INSTALL_DIR=/sybase/ASE\n
\n
\n
\n sybdb1 /sybase%\n
\n
\n
\n sybdb1 /sybase%\n \n source/ASE1633/BD_SYBASE_ASE_16. 0. 03. 03_RDBMS_for_BS_/SYBASE_LINUX_X86_64/setup.bin -f /sybase/sybdb1_dma. rs -i silent\n \n
\n
\n
\n
\n Note: if the command does not run put several <space> characters before the -i silent\n
\n Full path to setup.bin from ASE. ZIP file. Full path to response file otherwise it will fail with non-specific error message\n \n
\n
\n
\n
\n
\n
\n ##run this command to unlock the sa account. Command will fail if \"-X\" is not specified\n
\n
\n isql-Usapsso -PSAPHana12345 -SASE -X\n
\n
\n
\n sp_locklogin sa, unlock\n
\n
\n go\n
\n

\n \n

\n
\n ##If any errors occur review this note\n
\n
\n 2450148 - 'Warning: stopService() only supported on windows' message happened during HADR configuration -SAP ASE\n
\n
\n
\n ##Run setuphadr after editing the response file based on Sybase documentation (sample response file is attached to this blog)\n
\n
\n \n setuphadr /sybase/sybdb1_setup_hadr.rs\n \n
\n
\n

\n \n

\n
\n \n AlwaysOn Install Secondary\n \n
\n
\n
\n ##do same preparations as ASCS for zypper and hosts file etc\n
\n
\n Check that these libraries are installed otherwise Fault Manager will silently fail\n
\n

\n sudo zypper install glibc-32bit\n

\n
\n

\n sudo zypper install libgcc_s1-32bit\n

\n
\n ##do same preparations as ASCS for zypper and hosts file etc\n
\n
\n #create disks for sybase\n
\n
\n sudo fdisk -l | grep /dev/sd\n
\n
\n sudo fdisk /dev/sdc -> n, p, w\n
\n
\n sudo fdisk /dev/sdd -> n, p, w\n
\n
\n #only 1 disk, but created pv, lv etc here so we can test performance later with striping additional disks\n
\n
\n sudo pvcreate /dev/sdc1 /dev/sdc1\n
\n
\n sudo pvcreate /dev/sdc1 /dev/sdd1\n
\n
\n sudo pvscan\n
\n
\n sudo vgcreate syb_data_vg /dev/sdc1\n
\n
\n sudo vgcreate syb_log_vg /dev/sdd1\n
\n
\n sudo lvcreate -i1 -l 100%FREE -n syb_data_lvsyb_data_vg\n
\n
\n sudo lvcreate -i1 -l 100%FREE -n syb_log_lvsyb_log_vg\n
\n
\n sudo mkfs. xfs -f /dev/syb_data_vg/syb_data_lv\n
\n
\n sudo mkfs. xfs -f/dev/syb_log_vg/syb_log_lv\n
\n
\n sudo mkdir -p /sybase/source\n
\n
\n sudo mkdir -p /log\n
\n
\n sudo mkdir -p /sapmnt\n
\n
\n sudo blkid | grep log\n
\n
\n sudo blkid | grep data\n
\n
\n #now sudo su - to root user and run this (replace GUID) - cannot run this with sudo command, must be root\n
\n
\n sudo su -\n
\n
\n echo \"/dev/disk/by-uuid/799603d6-20c0-47af-80c9-75c72a573829 /sybase xfsdefaults,nofail02\">> /etc/fstab\n
\n
\n echo \"/dev/disk/by-uuid/2bb3f00c-c295-4417-b258-8de43a844e23 /log xfsdefaults,nofail02\">> /etc/fstab\n
\n
\n exit\n
\n
\n sudo mount -a\n
\n
\n sudo df -h\n
\n
\n sudo mount -a\n
\n
\n sudo df -h\n
\n
\n ##create a directory for the source files.\n
\n
\n sudo mkdir /sybase/source\n
\n
\n ## copy source files\n
\n
\n sudo chmod 777 /sybase/source -R\n
\n
\n ## setup automount for /sapmnt\n
\n
\n ### - use auto mount not the \"old\" way sudo mount -t nfs4 -o rw sybapp1:/sapmnt /sapmnt\n
\n
\n sudo mkdir /sapmnt\n
\n
\n sudo vi /etc/auto.master\n
\n
\n # Add the following line to the file, save and exit\n
\n
\n +auto.master\n
\n
\n /- /etc/auto.direct\n
\n
\n sudo vi /etc/auto.direct\n
\n
\n # Add the following lines to the file, save and exit\n
\n
\n /sapmnt -nfsvers=4,nosymlink,sync sybapp1:/sapmnt\n
\n
\n sudo systemctl enable autofs\n
\n
\n sudo service autofs restart\n
\n
\n sudo /sybase/source/swpm/sapinst SAPINST_REMOTE_ACCESS_USER=<os-user>\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n Stop the autofs and unmount the /sapmnt - sapinst will continue\n
\n
\n The /sapmnt must be mounted again shortly after\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n ##Login as syb<sid> - in this case the <sid> = ase\n
\n
\n
\n \n /sybase/source/ASE1633/BD_SYBASE_ASE_16. 0. 03. 03_RDBMS_for_BS_/SYBASE_LINUX_X86_64/setup. bin -f /sybase/sybdb2_dma. rs -i silent\n \n
\n
\n
\n isql-Usapsso -PSAPHana12345 -SASE -X\n
\n
\n
\n sp_locklogin sa, unlock\n
\n
\n go\n
\n
\n 2450148 - 'Warning: stopService() only supported on windows' message happened during HADR configuration -SAP ASE\n
\n
\n
\n ##Run setuphadr after editing the response file based on Sybase documentation (sample response file is attached to this blog)\n
\n
\n \n setuphadr /sybase/sybdb2_setup_hadr.rs\n \n
\n
\n

\n \n

\n
\n Do not restart the RMA - this is not required\n
\n
\n \n AlwaysOn FM Install & Post Steps\n \n
\n
\n
\n The Sybase documentation for these steps is here.\n
\n
\n \n https://help. sap. com/viewer/efe56ad3cad0467d837c8ff1ac6ba75c/16. 0. 3. 3/en-US/286f4fc8b3ab4439b3400e97288152dc. html\n \n
\n
\n The documentation is not complete. After doing the steps on the documentation link review this Note\n
\n
\n \n 1959660 - SYB: Database Fault Management\n \n
\n
\n
\n su - aseadm\n
\n
\n
\n rsecssfx put DB_CONNECT/SYB/DR_USER DR_admin -plain\n
\n
\n
\n rsecssfx put DB_CONNECT/SYB/DR_PASSWORD SAPHana12345\n
\n
\n
\n sybdb1:~ #su - aseadm\n
\n
\n
\n sybdb1:aseadm 1> rsecssfx put DB_CONNECT/SYB/DR_USER DR_admin -plain\n
\n
\n
\n sybdb1:aseadm 2> rsecssfx put DB_CONNECT/SYB/DR_PASSWORD SAPHana12345\n
\n
\n
\n sybdb1:aseadm 3>\n
\n
\n
\n sybdb2:~ #su - aseadm\n
\n
\n
\n sybdb2:aseadm 1> rsecssfx put DB_CONNECT/SYB/DR_USER DR_admin -plain\n
\n
\n
\n sybdb2:aseadm 2> rsecssfx put DB_CONNECT/SYB/DR_PASSWORD SAPHana12345\n
\n
\n
\n sybdb2:aseadm 3>\n
\n
\n
\n ## Run AlwaysOn Tuning & Configuration script on Primary and Companion\n
\n
\n isql -UDR_admin -PSAPHana12345 -Ssybdb1:4909\n
\n
\n
\n sap_tune_rs Site1, 16, 4\n
\n
\n
\n isql -UDR_admin -PSAPHana12345 -Ssybdb2:4909\n
\n
\n
\n sap_tune_rs Site2, 16, 4\n
\n
\n
\n sybdb2:aseadm 3> isql -UDR_admin -PSAPHana12345 -Ssybdb2:4909\n
\n
\n
\n 1> sap_tune_rs Site2, 16, 4\n
\n
\n
\n 2> go\n
\n
\n
\n TASKNAMETYPE\n
\n
\n
\n VALUE\n
\n
\n
\n ----------------------- -----------------\n
\n
\n
\n ------------------------------------------------------------\n
\n
\n
\n Tune Replication Server Start Time\n
\n
\n
\n Sun Apr 29 06:20:37 UTC 2018\n
\n
\n
\n Tune Replication Server Elapsed Time\n
\n
\n
\n 00:07:11\n
\n
\n
\n TuneRSTask Name\n
\n
\n
\n Tune Replication Server\n
\n
\n
\n TuneRSTask State\n
\n
\n
\n Completed\n
\n
\n
\n TuneRSShort Description\n
\n
\n
\n Tune Replication Server configurations.\n
\n
\n
\n TuneRSLong Description\n
\n
\n
\n Waiting 180 seconds: Waiting Replication Server to fully up.\n
\n
\n
\n TuneRSTask Start\n
\n
\n
\n Sun Apr 29 06:20:37 UTC 2018\n
\n
\n
\n TuneRSTask End\n
\n
\n
\n Sun Apr 29 06:27:48 UTC 2018\n
\n
\n
\n TuneRSHostname\n
\n
\n
\n sybdb2\n
\n
\n
\n (9 rows affected)\n
\n
\n
\n ## On the APP server only\n
\n
\n sudo vi . dbenv. csh\n
\n
\n
\n setenv dbs_syb_ha 1\n
\n
\n
\n setenv dbs_syb_server sybdb1:sybdb2\n
\n
\n
\n ## Restart the SAP App server\n
\n
\n sapcontrol -nr 00 -function StopSystem ALL\n
\n
\n sapcontrol -nr 00 -function StartSystem ALL\n
\n
\n
\n \n https://help. sap. com/viewer/efe56ad3cad0467d837c8ff1ac6ba75c/16. 0. 3. 3/en-US/41b39cb667664dc09d2d9f4c87b299a7. html\n \n
\n
\n sybapp1:aseadm 6> rsecssfx list\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | Record Key | Status | Time Stamp of Last Update |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/DEFAULT_DB_PASSWORD | Encrypted| 2018-04-2903:07:11UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/DEFAULT_DB_USER | Plaintext| 2018-04-2903:07:07UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/DR_PASSWORD | Encrypted| 2018-04-2906:18:26UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/DR_USER | Plaintext| 2018-04-2906:18:22UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/SADB_PASSWORD | Encrypted| 2018-04-2903:07:19UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/SADB_USER | Plaintext| 2018-04-2903:07:14UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/SAPSID_PASSWORD | Encrypted| 2018-04-2903:07:42UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/SAPSID_USER | Plaintext| 2018-04-2903:07:37UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/SSODB_PASSWORD| Encrypted| 2018-04-2903:07:27UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/SSODB_USER| Plaintext| 2018-04-2903:07:22UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/SYBSID_PASSWORD | Encrypted| 2018-04-2903:07:34UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | DB_CONNECT/SYB/SYBSID_USER | Plaintext| 2018-04-2903:07:30UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | SYSTEM_PKI/PIN | Encrypted| 2018-04-2722:36:39UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n | SYSTEM_PKI/PSE | Encrypted (binary) | 2018-04-2722:36:45UTC |\n
\n
\n
\n |---------------------------------------------------------------------------------|\n
\n
\n
\n Summary\n
\n
\n
\n -------\n
\n
\n
\n ActiveRecords : 14 (Encrypted: 8, Plain: 6, Wrong Key: 0, Error: 0)\n
\n
\n
\n Defunct Records : 12 (180+ days: 0; Show: \"list -withHistory\", Remove: \"compact\")\n
\n
\n
\n ## Run the Fault Manager Installation steps on the SAP PAS application server\n
\n
\n sybapp1:aseadm 24> pwd\n
\n
\n
\n /sapmnt/ASE/exe/uc/linuxx86_64\n
\n
\n
\n sybapp1:aseadm 25> whoami\n
\n
\n
\n aseadm\n
\n
\n
\n sybapp1:aseadm 26>\n \n . /sybdbfm install\n \n
\n
\n
\n replication manager agent user DR_admin and password set in Secure Store.\n
\n
\n
\n Keep existing values (yes/no)? (yes)\n
\n
\n
\n SAPHostAgent connect user: (sapadm)\n
\n
\n
\n Enter password for user sapadm.\n
\n
\n
\n Password:\n
\n
\n
\n Enter value for primary database host: (sybdb1)\n
\n
\n
\n Enter value for primary database name: (ASE)\n
\n
\n
\n Enter value for primary database port: (4901)\n
\n
\n
\n Enter value for primary site name: (Site1)\n
\n
\n
\n Enter value for primary database heart beat port: (13777)\n
\n
\n
\n Enter value for standby database host: (sybdb2)\n
\n
\n
\n Enter value for standby database name: (ASE)\n
\n
\n
\n Enter value for standby database port: (4901)\n
\n
\n
\n Enter value for standby site name : (Site2)\n
\n
\n
\n Enter value for standby database heart beat port: (13787)\n
\n
\n
\n Enter value for fault manager host: (sybapp1)\n
\n
\n
\n Enter value for heart beat to heart beat port: (13797)\n
\n
\n
\n Enter value for support for floating database ip: (no)\n
\n
\n
\n Enter value for use SAP ASE Cockpit if it is installed and running: (no)\n
\n
\n
\n installation finished successfully.\n
\n
\n
\n Restart the SAP Instance - FM is added to the ASCS start profile\n
\n
\n \n
\n
\n sybapp1:aseadm 32>\n \n sybdbfm status\n \n
\n
\n
\n fault manager running, pid = 4338, fault manager overall status = OK, currently executing in mode PAUSING\n
\n
\n
\n *** sanity check report (5)***.\n
\n
\n
\n node 1: server sybdb1, site Site1.\n
\n
\n
\n db host status: OK.\n
\n
\n
\n db status OK hadr status PRIMARY.\n
\n
\n
\n node 2: server sybdb2, site Site2.\n
\n
\n
\n db host status: OK.\n
\n
\n
\n db status OK hadr status STANDBY.\n
\n
\n
\n replication status: SYNC_OK.\n
\n
\n
\n \n AlwaysOn Install 3rd Node (DR) Async\n \n
\n
\n
\n Official SAP Sybase documentation and Links:\n
\n
\n \n https://blogs. sap. com/2018/04/19/high-availability-disaster-recovery-3-node-hadr-with-sap-ase-16. 0-sp03/\n \n
\n
\n Documentation\n \n https://help. sap. com/viewer/38af74a09e48457ab699e83f6dfb051a/16. 0. 3. 3/en-US\n \n
\n
\n \n https://help. sap. com/viewer/38af74a09e48457ab699e83f6dfb051a/16. 0. 3. 3/en-US/6ca81e90696e4946a68e9257fa2d3c31. html\n \n
\n
\n 1. Install the DB host using SWPM in the same way as the companion host\n
\n
\n 2. Copy the companion host response file\n
\n
\n 3. Duplicate the section with all the COMP entries and add it at the bottom and rename at section of the newly copied COMPs to DR (for example). Leave the old COMP and PRIM entries as is.\n
\n
\n 4. Change the setup site to DR\n
\n
\n 5. All other entries from PRIM and COMP must remain the same since the setuphadr run for 3rd node needs to know about previous 2 hosts.\n
\n
\n 6. Execute setuphadr\n
\n
\n Review the Sample Response File attached to this blog\n
\n
\n \n
\n
\n ##do same preparations as ASCS for zypper and hosts file etc\n
\n
\n Check that these libraries are installed otherwise Fault Manager will silently fail\n
\n
\n sudo zypper install glibc-32bit\n
\n
\n sudo zypper install libgcc_s1-32bit\n
\n
\n ##do same preparations as ASCS for zypper and hosts file etc\n
\n
\n #create disks for sybase\n
\n

\n Note : when multiple disks are added for data/log/backup to create a single volume, use right striping method to get better performance\n

\n
\n

\n Example:\n

\n
\n

\n vgcreate VG_DATA /dev/sdc /dev/sdd\n

\n
\n

\n lvcreate -l 100%F VG_DATA -n lv_data -i 2 -I 256\n

\n
\n

\n (for log use –l 32 )\n

\n
\n sudo fdisk -l | grep /dev/sd\n
\n
\n sudo fdisk /dev/sdc -> n, p, w\n
\n
\n sudo fdisk /dev/sdd -> n, p, w\n
\n
\n #only 1 disk, but created pv, lv etc here so we can test performance later with striping additional disks\n
\n
\n sudo pvcreate /dev/sdc1 /dev/sdc1\n
\n
\n sudo pvcreate /dev/sdc1 /dev/sdd1\n
\n
\n sudo pvscan\n
\n
\n sudo vgcreate syb_data_vg /dev/sdc1\n
\n
\n sudo vgcreate syb_log_vg /dev/sdd1\n
\n
\n sudo lvcreate -i1 -l 100%FREE -n syb_data_lvsyb_data_vg\n
\n
\n sudo lvcreate -i1 -l 100%FREE -n syb_log_lvsyb_log_vg\n
\n
\n sudo mkfs. xfs -f /dev/syb_data_vg/syb_data_lv\n
\n
\n sudo mkfs. xfs -f/dev/syb_log_vg/syb_log_lv\n
\n
\n sudo mkdir -p /sybase/source\n
\n
\n sudo mkdir -p /log\n
\n
\n sudo mkdir -p /sapmnt\n
\n
\n sudo blkid | grep log\n
\n
\n sudo blkid | grep data\n
\n
\n edit /etc/fstab and add the entries for the created disks.\n
\n

\n \n Option 1 :\n
\n
\n

\n
\n Identify based on created volume group and lv details.\n
\n
\n Ex: ls /dev/mapper/\n
\n
\n And fetch the right devices\n
\n
\n Ex: syb_data_vg-syb_data_lv\n
\n
\n Add the the entries into /etc/fstab\n
\n
\n sudo vi /etc/fstab\n
\n
\n Add the lines.\n
\n
\n /dev/mapper/syb_data_vg-syb_data_lv /hana/data xfs defaults,nofail 1 2\n
\n

\n \n Option 2 :\n
\n
\n

\n
\n #now sudo su - to root user and run this (replace GUID) - cannot run this with sudo command, must be root\n
\n
\n sudo su -\n
\n
\n echo \"/dev/disk/by-uuid/799603d6-20c0-47af-80c9-75c72a573829 /sybase xfsdefaults,nofail02\">> /etc/fstab\n
\n
\n echo \"/dev/disk/by-uuid/2bb3f00c-c295-4417-b258-8de43a844e23 /log xfsdefaults,nofail02\">> /etc/fstab\n
\n
\n exit\n
\n
\n sudo mount -a\n
\n
\n sudo df -h\n
\n
\n sudo mount -a\n
\n
\n sudo df -h\n
\n
\n Note: mount points are visible only when the folders are accessed in df –h command when auto mount is enabled.\n
\n
\n ##create a directory for the source files.\n
\n
\n sudo mkdir -p /sybase/source\n
\n
\n ## copy source files\n
\n
\n sudo chmod 777 /sybase/source -R\n
\n
\n ## setup automount for /sapmnt\n
\n
\n ### - use auto mount not the \"old\" way sudo mount -t nfs4 -o rw sybapp1:/sapmnt /sapmnt\n
\n
\n sudo mkdir /sapmnt\n
\n
\n sudo vi /etc/auto.master\n
\n
\n # Add the following line to the file, save and exit\n
\n
\n +auto.master\n
\n
\n /- /etc/auto.direct\n
\n
\n sudo vi /etc/auto.direct\n
\n
\n # Add the following lines to the file, save and exit\n
\n
\n /sapmnt -nfsvers=4,nosymlink,sync sybapp1:/sapmnt\n
\n
\n sudo systemctl enable autofs\n
\n
\n sudo service autofs restart\n
\n
\n sudo /sybase/source/swpm/sapinst SAPINST_REMOTE_ACCESS_USER=<os-user>\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n Stop the autofs and unmount the /sapmnt - sapinst will continue\n
\n
\n The /sapmnt must be mounted again shortly after\n
\n
\n \n
\n
\n \n
\n
\n ## Install the DMA on the DR Node\n
\n
\n ##Login as syb<sid> - in this case the <sid> = ase\n
\n
\n
\n source/ASE1633/BD_SYBASE_ASE_16. 0. 03. 03_RDBMS_for_BS_/SYBASE_LINUX_X86_64/setup. bin -f /sybase/sybdb3_dma. rs -i silent\n
\n
\n \n isql-Usapsso -PSAPHana12345 -SASE -X\n \n
\n
\n
\n sp_locklogin sa, unlock\n
\n
\n go\n
\n
\n sybdb3 /sybase% uname -a\n
\n
\n
\n Linux sybdb3 4. 4. 120-92. 70-default #1 SMP Wed Mar 14 15:59:43 UTC 2018 (52a83de) x86_64 x86_64 x86_64 GNU/Linux\n
\n
\n
\n sybdb3 /sybase% whoami\n
\n
\n
\n sybase\n
\n
\n
\n ##Run setuphadr after editing the response file based on Sybase documentation (sample response file is attached to this blog)\n
\n
\n sybdb3 /sybase%\n \n setuphadr /sybase/sybdb3_setup_hadr.rs\n \n
\n
\n

\n \n

\n
\n \n AlwaysOn Testing & Useful Command Syntax\n \n
\n
\n
\n In the section below planned and unplanned failovers as well as monitoring commands are used.\n
\n
\n It is recommended to review the Sybase documentation and also to review these SAP Notes:\n
\n
\n 1982469 - SYB: Updating SAP ASE with saphostctrl\n
\n
\n 1959660 - SYB: Database Fault Management\n
\n
\n 2179305 - SYB: Usage of saphostctrl for SAP ASE and SAP Replication Server\n
\n
\n ## Check if Fault Manager is running on the SAP PAS with this command\n
\n
\n ps -ef | grep sybdbfm\n
\n
\n
\n executable in /usr/sap/<SID>/ASCS00/work\n
\n
\n
\n sybdbfm is copied to sybdbfm. sap<SID>_ASCS00\n
\n
\n
\n cd /usr/sap/<SID>/ASCS00/work\n
\n
\n
\n . /sybdbfm. sapASE_ASCS00 status\n
\n
\n
\n . /sybdbfm. sapASE_ASCS00 hibernate\n
\n
\n
\n . /sybdbfm. sapASE_ASCS00 resume\n
\n
\n
\n login as syb<sid> in this case sybase\n
\n
\n
\n ## Login to the RMA\n
\n
\n
\n isql -UDR_admin -P<<password>> -SASE_RMA_Site1 -I DM/interfaces -X -w999\n
\n
\n
\n ## to see all the components that are running\n
\n
\n
\n sap_version all\n
\n
\n
\n go\n
\n
\n
\n ## to see the status of a replication path\n
\n
\n
\n sap_status path\n
\n
\n
\n go\n
\n
\n
\n ## to see the status of resources\n
\n
\n
\n sap_status resource\n
\n
\n
\n go\n
\n
\n
\n ## Login to ASE\n
\n
\n
\n The syntax \"-I DM/interfaces\" does a lookup in the Sybase AlwaysOn configuration database to find the host and TCP port\n
\n
\n
\n isql -UDR_admin -P<<password>> -SASE_Site1 -I DM/interfaces -X-w999\n
\n
\n
\n ## to clear down the transaction log run this command\n
\n
\n
\n dump tran ASE with truncate_only\n
\n
\n
\n go\n
\n
\n
\n ## to show freespace in DB\n
\n
\n
\n sp_helpdb ASE\n
\n
\n
\n go\n
\n
\n
\n ## Transaction log backups are needed on all replicas otherwise the Trans Log will become full\n
\n
\n
\n ## to start/stop/get info on Sybase DB (and all required components for Always on like RMA) - run this on the DB host\n
\n
\n
\n \n sudo /usr/sap/hostctrl/exe/saphostctrl -user sapadm -function StartDatabase -dbname ASE -dbtype syb\n
\n
\n
\n
\n \n sudo /usr/sap/hostctrl/exe/saphostctrl -user sapadm -function StartDatabase -dbname ASE_REP -dbtype syb\n
\n
\n
\n

\n \n

\n
\n ## to get Sybase DB status\n
\n
\n
\n \n sudo /usr/sap/hostctrl/exe/saphostctrl -user sapadm -function GetDatabaseStatus -dbname ASE -dbtype syb\n
\n
\n
\n
\n ## to get Sybase DB replication status\n
\n
\n
\n \n sudo /usr/sap/hostctrl/exe/saphostctrl -user sapadm -function LiveDatabaseUpdate -dbname ASE -dbtype syb -updatemethod Check -updateoption TASK=REPLICATION_STATUS\n
\n
\n
\n

\n \n

\n
\n ## to send a trace ticket logon to RMA and execute these commands\n
\n
\n
\n sap_send_trace Site1\n
\n
\n
\n go\n
\n
\n
\n sap_status active\n
\n
\n
\n go\n
\n
\n
\n ## during HADR testing leave tail running on the file /usr/sap/<SID>/ASCS00/work\n
\n
\n
\n tail -100f dev_sybdbfm\n
\n
\n
\n ## to force a shutdown of the DB engine run the command below. Always-on will try to stop a normal shutdown of the DB\n
\n
\n
\n shutdown with wait nowait_hadr\n
\n
\n
\n go\n
\n
\n
\n ## to do a planned failover from Primary to Companion DB the normal sequence is:\n
\n
\n
\n 1. Failover from Primary to Companion\n
\n
\n
\n 2. Drain logs from Primary to the DR site\n
\n
\n
\n 3. Reverse Replication Route to start synchronization from the new Primary to the Companion and DR\n
\n
\n
\n -- There is a new command that does all these steps automatically:\n
\n
\n
\n \n /usr/sap/hostctrl/exe/saphostctrl -user sapadm - -function LiveDatabaseUpdate -dbname ASE -dbtype syb -updatemethod Execute -updateoption TASK=FAILOVER -updateoption FAILOVER_FORCE=1 -updateoption FAILOVER_TIME=300\n
\n
\n
\n
\n ## it is recommended to use this command. If there are errors check in the path /usr/sap/hostctrl/work for log files\n
\n
\n
\n ##other useful commands:\n
\n
\n
\n ## to disable/enable replication from a Site to all routes\n
\n
\n
\n sap_disable_replication Site1, <DB>\n
\n
\n
\n sap_enable_replication Site1,Site2,<DB>\n
\n
\n
\n ## command to manually failover\n
\n
\n
\n sap_failover <primary>,<standby>,<timeout>, [force], [unplanned]\n
\n
\n
\n ## Materialize is a \"dump and load\" to reinitialize Sybase Alwayson replica.\n
\n
\n
\n sap_materialize auto,Site1,Site2,master\n
\n
\n
\n sap_materialize auto,Site1,Site2,<SID>\n
\n
\n
\n \n Sybase How To & Links\n \n
\n
\n
\n Customers familiar with SQL Server AlwaysOn should note that although it is possible to take a DB or Log backup from a replica, these backups are not compatible between Primary <-> Replica databases. It is also a requirement to run transaction log backups on the replica nodes unlike SQL Server.\n
\n
\n SAP Notes:\n
\n
\n 2134316 - Can SAP ASE run in a cloud environment? - SAP ASE\n
\n
\n 1554717 - SYB: Planning information for SAP on ASE\n
\n
\n 1706801 - SYB: SAP ASE released for virtual systems\n
\n
\n 1590719 - SYB: Updates for SAP Adaptive Server Enterprise (SAP ASE)\n
\n
\n 1959660 - SYB: Database Fault Management\n
\n
\n 2450148 - 'Warning: stopService() only supported on windows' message happened during HADR configuration -SAP ASE\n
\n
\n 2489781 - SAP ASE 16. 0 SP03 Supported Operating Systems and Versions\n
\n
\n DBA Cockpit doesn't work by default after installation.\n
\n
\n Setup DBA Cockpit as per:\n
\n 2293673 - SYB: DBA Cockpit Correction Collection SAP Basis 7. 50\n
\n
\n 1605680 - SYB: Troubleshoot the setup of the DBA Cockpit on Sybase ASE\n
\n
\n 1245200 - DBA: ICF Service Activation for WebDynpro DBA Cockpit\n
\n
\n For SUSE Linux Release 12 with SP3 release note :\n \n https://www. suse. com/releasenotes/x86_64/SUSE-SLES/12-SP3/\n \n
\n
\n SAP Software Downloads\n \n https://support. sap. com/en/my-support/software-downloads. html\n \n
\n
\n SWPM Download\n \n https://support. sap. com/sltoolset\n \n
\n
\n Sybase Release Matrix\n \n https://wiki. scn. sap. com/wiki/display/SYBASE/Targeted+ASE+16. 0+Release+Schedule+and+CR+list+Information\n \n
\n
\n Sybase Official Documentation\n \n https://help. sap. com/viewer/product/SAP_ASE/16. 0. 3. 3/en-US\n \n
\n
\n Special thanks to Wajeeh Samdani from SAP Sybase Development in Walldorf\n
\n
\n Special thanks to Cognizant SAP Cloud Team for their input and review of this blog\n
\n
\n Content from third party websites, SAP and other sources reproduced in accordance with\n \n Fair Use\n \n criticism, comment, news reporting, teaching, scholarship, and research\n \n","kudosSumWeight":1,"postTime":"2019-03-13T11:11:47.975-07:00","images":{"__typename":"AssociatedImageConnection","edges":[{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDE","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODJpNEE4MEYzQkYyOTBCOTk5QQ?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDI","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODNpMzQzMkJDRjk5ODQwQTQ5RA?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDM","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODRpREE2MkRCNkZDOUVCRDBCQQ?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDQ","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODVpQkQ2OTA0Rjk5NENBRkIxMQ?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDU","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODZpRDZGNzFBMTM4Q0E4REJBNA?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDY","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODdpRkM3QTVCQjgyQ0U1MDg0OQ?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDc","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODhpNTA5NzFDMjM3NEZDQzZBMg?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDg","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODlpQzA5OEI3NDA4MUY5MUZCNA?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDk","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTBpQjBBQUMwMzQ1NjQ5MjhBRA?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDEw","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTFpQUJBQzcyMTFBODlBNUYxQw?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDEx","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTJpQjdBNTUwRjg1NEZCREU5RQ?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDEy","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTNpQTZFOTA1QTI0NDNCQUU5RQ?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDEz","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTRpM0IyNURBQjM0NkU1RDM0NQ?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDE0","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTVpQkMyMEEwMUMwMDg0RUM4RA?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDE1","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTZpOTU0NDVBRDFCQjE4QTBDRA?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDE2","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTdpNTJFOTI0NjVEODcxMEQ1Qw?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDE3","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OThpRDk4NTU2RjlFM0FFODVFQQ?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDE4","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTlpRERGQTlBM0ZFMTE5RkFGMg?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDE5","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDBpOTQzN0QxRkFGQjFCREVDNw?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDIw","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDFpQTg5Nzc0OUU3MzVEQjU0QQ?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDIx","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDJpMzIwM0YxODM4NjQyMjc1NA?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDIy","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDNpNTNENEM4NzBFRDcwODNBOQ?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDIz","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDRpMzFEMUU1MjNEMjI1RTNCMg?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDI0","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDVpQUYyNDdCNTEwQjRFMDk4NA?revision=2\"}"}},{"__typename":"AssociatedImageEdge","cursor":"MjUuM3wyLjF8b3wyNXxfTlZffDI1","node":{"__ref":"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDZpMjdBREFGNDU2MjhFM0YxRA?revision=2\"}"}}],"totalCount":37,"pageInfo":{"__typename":"PageInfo","hasNextPage":true,"endCursor":"MjUuM3wyLjF8b3wyNXxfTlZffDI1","hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"tags":{"__typename":"TagConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[{"__typename":"TagEdge","cursor":"MjUuM3wyLjF8b3wxMHxfTlZffDE","node":{"__typename":"Tag","id":"tag:azure","text":"azure","time":"2016-09-06T09:34:09.130-07:00","lastActivityTime":null,"messagesCount":null,"followersCount":null}},{"__typename":"TagEdge","cursor":"MjUuM3wyLjF8b3wxMHxfTlZffDI","node":{"__typename":"Tag","id":"tag:Sybase","text":"Sybase","time":"2019-03-13T11:11:50.494-07:00","lastActivityTime":null,"messagesCount":null,"followersCount":null}}]},"timeToRead":18,"rawTeaser":"First published on MSDN on Jun 18, 2018 In recent months we saw several customers with large investments into Hana technologies approach Microsoft for information about deploying large mission critical SAP applications on Azure with the Sybase ASE database.","introduction":"","coverImage":null,"coverImageProperties":{"__typename":"CoverImageProperties","style":"STANDARD","titlePosition":"BOTTOM","altText":""},"currentRevision":{"__ref":"Revision:revision:368199_2"},"latestVersion":{"__typename":"FriendlyVersion","major":"2","minor":"0"},"metrics":{"__typename":"MessageMetrics","views":23915},"visibilityScope":"PUBLIC","canonicalUrl":null,"seoTitle":null,"seoDescription":null,"placeholder":false,"originalMessageForPlaceholder":null,"contributors":{"__typename":"UserConnection","edges":[]},"nonCoAuthorContributors":{"__typename":"UserConnection","edges":[]},"coAuthors":{"__typename":"UserConnection","edges":[]},"blogMessagePolicies":{"__typename":"BlogMessagePolicies","canDoAuthoringActionsOnBlog":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.blog.action_can_do_authoring_action.accessDenied","key":"error.lithium.policies.blog.action_can_do_authoring_action.accessDenied","args":[]}}},"archivalData":null,"replies":{"__typename":"MessageConnection","edges":[{"__typename":"MessageEdge","cursor":"MjUuM3wyLjF8aXwxMHwxMzI6MHxpbnQsMTcyODQzMywxNzI4NDMz","node":{"__ref":"BlogReplyMessage:message:1728433"}}],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"revisions({\"constraints\":{\"isPublished\":{\"eq\":true}},\"first\":1})":{"__typename":"RevisionConnection","totalCount":2},"customFields":[]},"Conversation:conversation:368199":{"__typename":"Conversation","id":"conversation:368199","solved":false,"topic":{"__ref":"BlogTopicMessage:message:368199"},"lastPostingActivityTime":"2020-09-30T03:33:27.415-07:00","lastPostTime":"2020-09-30T03:33:27.415-07:00","unreadReplyCount":1,"isSubscribed":false},"ModerationData:moderation_data:368199":{"__typename":"ModerationData","id":"moderation_data:368199","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODJpNEE4MEYzQkYyOTBCOTk5QQ?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODJpNEE4MEYzQkYyOTBCOTk5QQ?revision=2","title":"","associationType":"BODY","width":518,"height":726,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODNpMzQzMkJDRjk5ODQwQTQ5RA?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODNpMzQzMkJDRjk5ODQwQTQ5RA?revision=2","title":"","associationType":"BODY","width":354,"height":267,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODRpREE2MkRCNkZDOUVCRDBCQQ?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODRpREE2MkRCNkZDOUVCRDBCQQ?revision=2","title":"","associationType":"BODY","width":655,"height":265,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODVpQkQ2OTA0Rjk5NENBRkIxMQ?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODVpQkQ2OTA0Rjk5NENBRkIxMQ?revision=2","title":"","associationType":"BODY","width":651,"height":225,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODZpRDZGNzFBMTM4Q0E4REJBNA?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODZpRDZGNzFBMTM4Q0E4REJBNA?revision=2","title":"","associationType":"BODY","width":707,"height":744,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODdpRkM3QTVCQjgyQ0U1MDg0OQ?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODdpRkM3QTVCQjgyQ0U1MDg0OQ?revision=2","title":"","associationType":"BODY","width":648,"height":254,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODhpNTA5NzFDMjM3NEZDQzZBMg?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODhpNTA5NzFDMjM3NEZDQzZBMg?revision=2","title":"","associationType":"BODY","width":637,"height":592,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODlpQzA5OEI3NDA4MUY5MUZCNA?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0ODlpQzA5OEI3NDA4MUY5MUZCNA?revision=2","title":"","associationType":"BODY","width":686,"height":479,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTBpQjBBQUMwMzQ1NjQ5MjhBRA?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTBpQjBBQUMwMzQ1NjQ5MjhBRA?revision=2","title":"","associationType":"BODY","width":612,"height":254,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTFpQUJBQzcyMTFBODlBNUYxQw?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTFpQUJBQzcyMTFBODlBNUYxQw?revision=2","title":"","associationType":"BODY","width":712,"height":648,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTJpQjdBNTUwRjg1NEZCREU5RQ?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTJpQjdBNTUwRjg1NEZCREU5RQ?revision=2","title":"","associationType":"BODY","width":683,"height":221,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTNpQTZFOTA1QTI0NDNCQUU5RQ?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTNpQTZFOTA1QTI0NDNCQUU5RQ?revision=2","title":"","associationType":"BODY","width":562,"height":485,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTRpM0IyNURBQjM0NkU1RDM0NQ?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTRpM0IyNURBQjM0NkU1RDM0NQ?revision=2","title":"","associationType":"BODY","width":653,"height":223,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTVpQkMyMEEwMUMwMDg0RUM4RA?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTVpQkMyMEEwMUMwMDg0RUM4RA?revision=2","title":"","associationType":"BODY","width":690,"height":484,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTZpOTU0NDVBRDFCQjE4QTBDRA?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTZpOTU0NDVBRDFCQjE4QTBDRA?revision=2","title":"","associationType":"BODY","width":671,"height":237,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTdpNTJFOTI0NjVEODcxMEQ1Qw?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTdpNTJFOTI0NjVEODcxMEQ1Qw?revision=2","title":"","associationType":"BODY","width":1602,"height":250,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OThpRDk4NTU2RjlFM0FFODVFQQ?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OThpRDk4NTU2RjlFM0FFODVFQQ?revision=2","title":"","associationType":"BODY","width":659,"height":151,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTlpRERGQTlBM0ZFMTE5RkFGMg?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg0OTlpRERGQTlBM0ZFMTE5RkFGMg?revision=2","title":"","associationType":"BODY","width":664,"height":414,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDBpOTQzN0QxRkFGQjFCREVDNw?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDBpOTQzN0QxRkFGQjFCREVDNw?revision=2","title":"","associationType":"BODY","width":593,"height":864,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDFpQTg5Nzc0OUU3MzVEQjU0QQ?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDFpQTg5Nzc0OUU3MzVEQjU0QQ?revision=2","title":"","associationType":"BODY","width":822,"height":600,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDJpMzIwM0YxODM4NjQyMjc1NA?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDJpMzIwM0YxODM4NjQyMjc1NA?revision=2","title":"","associationType":"BODY","width":795,"height":251,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDNpNTNENEM4NzBFRDcwODNBOQ?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDNpNTNENEM4NzBFRDcwODNBOQ?revision=2","title":"","associationType":"BODY","width":798,"height":454,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDRpMzFEMUU1MjNEMjI1RTNCMg?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDRpMzFEMUU1MjNEMjI1RTNCMg?revision=2","title":"","associationType":"BODY","width":870,"height":374,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDVpQUYyNDdCNTEwQjRFMDk4NA?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDVpQUYyNDdCNTEwQjRFMDk4NA?revision=2","title":"","associationType":"BODY","width":724,"height":559,"altText":null},"AssociatedImage:{\"url\":\"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDZpMjdBREFGNDU2MjhFM0YxRA?revision=2\"}":{"__typename":"AssociatedImage","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/images/bS0zNjgxOTktODg1MDZpMjdBREFGNDU2MjhFM0YxRA?revision=2","title":"","associationType":"BODY","width":856,"height":417,"altText":null},"Revision:revision:368199_2":{"__typename":"Revision","id":"revision:368199_2","lastEditTime":"2019-03-13T11:11:50.494-07:00"},"CachedAsset:theme:customTheme1-1747130788924":{"__typename":"CachedAsset","id":"theme:customTheme1-1747130788924","value":{"id":"customTheme1","animation":{"fast":"150ms","normal":"250ms","slow":"500ms","slowest":"750ms","function":"cubic-bezier(0.07, 0.91, 0.51, 1)","__typename":"AnimationThemeSettings"},"avatar":{"borderRadius":"50%","collections":["default"],"__typename":"AvatarThemeSettings"},"basics":{"browserIcon":{"imageAssetName":"favicon-1730836283320.png","imageLastModified":"1730836286415","__typename":"ThemeAsset"},"customerLogo":{"imageAssetName":"favicon-1730836271365.png","imageLastModified":"1730836274203","__typename":"ThemeAsset"},"maximumWidthOfPageContent":"1300px","oneColumnNarrowWidth":"800px","gridGutterWidthMd":"30px","gridGutterWidthXs":"10px","pageWidthStyle":"WIDTH_OF_BROWSER","__typename":"BasicsThemeSettings"},"buttons":{"borderRadiusSm":"3px","borderRadius":"3px","borderRadiusLg":"5px","paddingY":"5px","paddingYLg":"7px","paddingYHero":"var(--lia-bs-btn-padding-y-lg)","paddingX":"12px","paddingXLg":"16px","paddingXHero":"60px","fontStyle":"NORMAL","fontWeight":"700","textTransform":"NONE","disabledOpacity":0.5,"primaryTextColor":"var(--lia-bs-white)","primaryTextHoverColor":"var(--lia-bs-white)","primaryTextActiveColor":"var(--lia-bs-white)","primaryBgColor":"var(--lia-bs-primary)","primaryBgHoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.85))","primaryBgActiveColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.7))","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","primaryBorderActive":"1px solid transparent","primaryBorderFocus":"1px solid var(--lia-bs-white)","primaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","secondaryTextColor":"var(--lia-bs-gray-900)","secondaryTextHoverColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.95))","secondaryTextActiveColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.9))","secondaryBgColor":"var(--lia-bs-gray-200)","secondaryBgHoverColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96))","secondaryBgActiveColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92))","secondaryBorder":"1px solid transparent","secondaryBorderHover":"1px solid transparent","secondaryBorderActive":"1px solid transparent","secondaryBorderFocus":"1px solid transparent","secondaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","tertiaryTextColor":"var(--lia-bs-gray-900)","tertiaryTextHoverColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.95))","tertiaryTextActiveColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.9))","tertiaryBgColor":"transparent","tertiaryBgHoverColor":"transparent","tertiaryBgActiveColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.04)","tertiaryBorder":"1px solid transparent","tertiaryBorderHover":"1px solid hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","tertiaryBorderActive":"1px solid transparent","tertiaryBorderFocus":"1px solid transparent","tertiaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","destructiveTextColor":"var(--lia-bs-danger)","destructiveTextHoverColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.95))","destructiveTextActiveColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.9))","destructiveBgColor":"var(--lia-bs-gray-200)","destructiveBgHoverColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.96))","destructiveBgActiveColor":"hsl(var(--lia-bs-gray-200-h), var(--lia-bs-gray-200-s), calc(var(--lia-bs-gray-200-l) * 0.92))","destructiveBorder":"1px solid transparent","destructiveBorderHover":"1px solid transparent","destructiveBorderActive":"1px solid transparent","destructiveBorderFocus":"1px solid transparent","destructiveBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","__typename":"ButtonsThemeSettings"},"border":{"color":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","mainContent":"NONE","sideContent":"LIGHT","radiusSm":"3px","radius":"5px","radiusLg":"9px","radius50":"100vw","__typename":"BorderThemeSettings"},"boxShadow":{"xs":"0 0 0 1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.08), 0 3px 0 -1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.16)","sm":"0 2px 4px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.12)","md":"0 5px 15px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.3)","lg":"0 10px 30px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.3)","__typename":"BoxShadowThemeSettings"},"cards":{"bgColor":"var(--lia-panel-bg-color)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":"var(--lia-box-shadow-xs)","__typename":"CardsThemeSettings"},"chip":{"maxWidth":"300px","height":"30px","__typename":"ChipThemeSettings"},"coreTypes":{"defaultMessageLinkColor":"var(--lia-bs-link-color)","defaultMessageLinkDecoration":"none","defaultMessageLinkFontStyle":"NORMAL","defaultMessageLinkFontWeight":"400","defaultMessageFontStyle":"NORMAL","defaultMessageFontWeight":"400","defaultMessageFontFamily":"var(--lia-bs-font-family-base)","forumColor":"#4099E2","forumFontFamily":"var(--lia-bs-font-family-base)","forumFontWeight":"var(--lia-default-message-font-weight)","forumLineHeight":"var(--lia-bs-line-height-base)","forumFontStyle":"var(--lia-default-message-font-style)","forumMessageLinkColor":"var(--lia-default-message-link-color)","forumMessageLinkDecoration":"var(--lia-default-message-link-decoration)","forumMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","forumMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","forumSolvedColor":"#148563","blogColor":"#1CBAA0","blogFontFamily":"var(--lia-bs-font-family-base)","blogFontWeight":"var(--lia-default-message-font-weight)","blogLineHeight":"1.75","blogFontStyle":"var(--lia-default-message-font-style)","blogMessageLinkColor":"var(--lia-default-message-link-color)","blogMessageLinkDecoration":"var(--lia-default-message-link-decoration)","blogMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","blogMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","tkbColor":"#4C6B90","tkbFontFamily":"var(--lia-bs-font-family-base)","tkbFontWeight":"var(--lia-default-message-font-weight)","tkbLineHeight":"1.75","tkbFontStyle":"var(--lia-default-message-font-style)","tkbMessageLinkColor":"var(--lia-default-message-link-color)","tkbMessageLinkDecoration":"var(--lia-default-message-link-decoration)","tkbMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","tkbMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaColor":"#4099E2","qandaFontFamily":"var(--lia-bs-font-family-base)","qandaFontWeight":"var(--lia-default-message-font-weight)","qandaLineHeight":"var(--lia-bs-line-height-base)","qandaFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkColor":"var(--lia-default-message-link-color)","qandaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","qandaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaSolvedColor":"#3FA023","ideaColor":"#FF8000","ideaFontFamily":"var(--lia-bs-font-family-base)","ideaFontWeight":"var(--lia-default-message-font-weight)","ideaLineHeight":"var(--lia-bs-line-height-base)","ideaFontStyle":"var(--lia-default-message-font-style)","ideaMessageLinkColor":"var(--lia-default-message-link-color)","ideaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","ideaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","ideaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","contestColor":"#FCC845","contestFontFamily":"var(--lia-bs-font-family-base)","contestFontWeight":"var(--lia-default-message-font-weight)","contestLineHeight":"var(--lia-bs-line-height-base)","contestFontStyle":"var(--lia-default-message-link-font-style)","contestMessageLinkColor":"var(--lia-default-message-link-color)","contestMessageLinkDecoration":"var(--lia-default-message-link-decoration)","contestMessageLinkFontStyle":"ITALIC","contestMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","occasionColor":"#D13A1F","occasionFontFamily":"var(--lia-bs-font-family-base)","occasionFontWeight":"var(--lia-default-message-font-weight)","occasionLineHeight":"var(--lia-bs-line-height-base)","occasionFontStyle":"var(--lia-default-message-font-style)","occasionMessageLinkColor":"var(--lia-default-message-link-color)","occasionMessageLinkDecoration":"var(--lia-default-message-link-decoration)","occasionMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","occasionMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","grouphubColor":"#333333","categoryColor":"#949494","communityColor":"#FFFFFF","productColor":"#949494","__typename":"CoreTypesThemeSettings"},"colors":{"black":"#000000","white":"#FFFFFF","gray100":"#F7F7F7","gray200":"#F7F7F7","gray300":"#E8E8E8","gray400":"#D9D9D9","gray500":"#CCCCCC","gray600":"#717171","gray700":"#707070","gray800":"#545454","gray900":"#333333","dark":"#545454","light":"#F7F7F7","primary":"#0069D4","secondary":"#333333","bodyText":"#1E1E1E","bodyBg":"#FFFFFF","info":"#409AE2","success":"#41C5AE","warning":"#FCC844","danger":"#BC341B","alertSystem":"#FF6600","textMuted":"#707070","highlight":"#FFFCAD","outline":"var(--lia-bs-primary)","custom":["#D3F5A4","#243A5E"],"__typename":"ColorsThemeSettings"},"divider":{"size":"3px","marginLeft":"4px","marginRight":"4px","borderRadius":"50%","bgColor":"var(--lia-bs-gray-600)","bgColorActive":"var(--lia-bs-gray-600)","__typename":"DividerThemeSettings"},"dropdown":{"fontSize":"var(--lia-bs-font-size-sm)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius-sm)","dividerBg":"var(--lia-bs-gray-300)","itemPaddingY":"5px","itemPaddingX":"20px","headerColor":"var(--lia-bs-gray-700)","__typename":"DropdownThemeSettings"},"email":{"link":{"color":"#0069D4","hoverColor":"#0061c2","decoration":"none","hoverDecoration":"underline","__typename":"EmailLinkSettings"},"border":{"color":"#e4e4e4","__typename":"EmailBorderSettings"},"buttons":{"borderRadiusLg":"5px","paddingXLg":"16px","paddingYLg":"7px","fontWeight":"700","primaryTextColor":"#ffffff","primaryTextHoverColor":"#ffffff","primaryBgColor":"#0069D4","primaryBgHoverColor":"#005cb8","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","__typename":"EmailButtonsSettings"},"panel":{"borderRadius":"5px","borderColor":"#e4e4e4","__typename":"EmailPanelSettings"},"__typename":"EmailThemeSettings"},"emoji":{"skinToneDefault":"#ffcd43","skinToneLight":"#fae3c5","skinToneMediumLight":"#e2cfa5","skinToneMedium":"#daa478","skinToneMediumDark":"#a78058","skinToneDark":"#5e4d43","__typename":"EmojiThemeSettings"},"heading":{"color":"var(--lia-bs-body-color)","fontFamily":"Segoe UI","fontStyle":"NORMAL","fontWeight":"400","h1FontSize":"34px","h2FontSize":"32px","h3FontSize":"28px","h4FontSize":"24px","h5FontSize":"20px","h6FontSize":"16px","lineHeight":"1.3","subHeaderFontSize":"11px","subHeaderFontWeight":"500","h1LetterSpacing":"normal","h2LetterSpacing":"normal","h3LetterSpacing":"normal","h4LetterSpacing":"normal","h5LetterSpacing":"normal","h6LetterSpacing":"normal","subHeaderLetterSpacing":"2px","h1FontWeight":"var(--lia-bs-headings-font-weight)","h2FontWeight":"var(--lia-bs-headings-font-weight)","h3FontWeight":"var(--lia-bs-headings-font-weight)","h4FontWeight":"var(--lia-bs-headings-font-weight)","h5FontWeight":"var(--lia-bs-headings-font-weight)","h6FontWeight":"var(--lia-bs-headings-font-weight)","__typename":"HeadingThemeSettings"},"icons":{"size10":"10px","size12":"12px","size14":"14px","size16":"16px","size20":"20px","size24":"24px","size30":"30px","size40":"40px","size50":"50px","size60":"60px","size80":"80px","size120":"120px","size160":"160px","__typename":"IconsThemeSettings"},"imagePreview":{"bgColor":"var(--lia-bs-gray-900)","titleColor":"var(--lia-bs-white)","controlColor":"var(--lia-bs-white)","controlBgColor":"var(--lia-bs-gray-800)","__typename":"ImagePreviewThemeSettings"},"input":{"borderColor":"var(--lia-bs-gray-600)","disabledColor":"var(--lia-bs-gray-600)","focusBorderColor":"var(--lia-bs-primary)","labelMarginBottom":"10px","btnFontSize":"var(--lia-bs-font-size-sm)","focusBoxShadow":"0 0 0 3px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","checkLabelMarginBottom":"2px","checkboxBorderRadius":"3px","borderRadiusSm":"var(--lia-bs-border-radius-sm)","borderRadius":"var(--lia-bs-border-radius)","borderRadiusLg":"var(--lia-bs-border-radius-lg)","formTextMarginTop":"4px","textAreaBorderRadius":"var(--lia-bs-border-radius)","activeFillColor":"var(--lia-bs-primary)","__typename":"InputThemeSettings"},"loading":{"dotDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.2)","dotLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.5)","barDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.06)","barLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.4)","__typename":"LoadingThemeSettings"},"link":{"color":"var(--lia-bs-primary)","hoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) - 10%))","decoration":"none","hoverDecoration":"underline","__typename":"LinkThemeSettings"},"listGroup":{"itemPaddingY":"15px","itemPaddingX":"15px","borderColor":"var(--lia-bs-gray-300)","__typename":"ListGroupThemeSettings"},"modal":{"contentTextColor":"var(--lia-bs-body-color)","contentBg":"var(--lia-bs-white)","backgroundBg":"var(--lia-bs-black)","smSize":"440px","mdSize":"760px","lgSize":"1080px","backdropOpacity":0.3,"contentBoxShadowXs":"var(--lia-bs-box-shadow-sm)","contentBoxShadow":"var(--lia-bs-box-shadow)","headerFontWeight":"700","__typename":"ModalThemeSettings"},"navbar":{"position":"FIXED","background":{"attachment":null,"clip":null,"color":"var(--lia-bs-white)","imageAssetName":"","imageLastModified":"0","origin":null,"position":"CENTER_CENTER","repeat":"NO_REPEAT","size":"COVER","__typename":"BackgroundProps"},"backgroundOpacity":0.8,"paddingTop":"15px","paddingBottom":"15px","borderBottom":"1px solid var(--lia-bs-border-color)","boxShadow":"var(--lia-bs-box-shadow-sm)","brandMarginRight":"30px","brandMarginRightSm":"10px","brandLogoHeight":"30px","linkGap":"10px","linkJustifyContent":"flex-start","linkPaddingY":"5px","linkPaddingX":"10px","linkDropdownPaddingY":"9px","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkColor":"var(--lia-bs-body-color)","linkHoverColor":"var(--lia-bs-primary)","linkFontSize":"var(--lia-bs-font-size-sm)","linkFontStyle":"NORMAL","linkFontWeight":"400","linkTextTransform":"NONE","linkLetterSpacing":"normal","linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkBgColor":"transparent","linkBgHoverColor":"transparent","linkBorder":"none","linkBorderHover":"none","linkBoxShadow":"none","linkBoxShadowHover":"none","linkTextBorderBottom":"none","linkTextBorderBottomHover":"none","dropdownPaddingTop":"10px","dropdownPaddingBottom":"15px","dropdownPaddingX":"10px","dropdownMenuOffset":"2px","dropdownDividerMarginTop":"10px","dropdownDividerMarginBottom":"10px","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","controllerIconColor":"var(--lia-bs-body-color)","controllerIconHoverColor":"var(--lia-bs-body-color)","controllerTextColor":"var(--lia-nav-controller-icon-color)","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","controllerHighlightColor":"hsla(30, 100%, 50%)","controllerHighlightTextColor":"var(--lia-yiq-light)","controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerColor":"var(--lia-nav-controller-icon-color)","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","hamburgerBgColor":"transparent","hamburgerBgHoverColor":"transparent","hamburgerBorder":"none","hamburgerBorderHover":"none","collapseMenuMarginLeft":"20px","collapseMenuDividerBg":"var(--lia-nav-link-color)","collapseMenuDividerOpacity":0.16,"__typename":"NavbarThemeSettings"},"pager":{"textColor":"var(--lia-bs-link-color)","textFontWeight":"var(--lia-font-weight-md)","textFontSize":"var(--lia-bs-font-size-sm)","__typename":"PagerThemeSettings"},"panel":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-bs-border-radius)","borderColor":"var(--lia-bs-border-color)","boxShadow":"none","__typename":"PanelThemeSettings"},"popover":{"arrowHeight":"8px","arrowWidth":"16px","maxWidth":"300px","minWidth":"100px","headerBg":"var(--lia-bs-white)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius)","boxShadow":"0 0.5rem 1rem hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.15)","__typename":"PopoverThemeSettings"},"prism":{"color":"#000000","bgColor":"#f5f2f0","fontFamily":"var(--font-family-monospace)","fontSize":"var(--lia-bs-font-size-base)","fontWeightBold":"var(--lia-bs-font-weight-bold)","fontStyleItalic":"italic","tabSize":2,"highlightColor":"#b3d4fc","commentColor":"#62707e","punctuationColor":"#6f6f6f","namespaceOpacity":"0.7","propColor":"#990055","selectorColor":"#517a00","operatorColor":"#906736","operatorBgColor":"hsla(0, 0%, 100%, 0.5)","keywordColor":"#0076a9","functionColor":"#d3284b","variableColor":"#c14700","__typename":"PrismThemeSettings"},"rte":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":" var(--lia-panel-box-shadow)","customColor1":"#bfedd2","customColor2":"#fbeeb8","customColor3":"#f8cac6","customColor4":"#eccafa","customColor5":"#c2e0f4","customColor6":"#2dc26b","customColor7":"#f1c40f","customColor8":"#e03e2d","customColor9":"#b96ad9","customColor10":"#3598db","customColor11":"#169179","customColor12":"#e67e23","customColor13":"#ba372a","customColor14":"#843fa1","customColor15":"#236fa1","customColor16":"#ecf0f1","customColor17":"#ced4d9","customColor18":"#95a5a6","customColor19":"#7e8c8d","customColor20":"#34495e","customColor21":"#000000","customColor22":"#ffffff","defaultMessageHeaderMarginTop":"40px","defaultMessageHeaderMarginBottom":"20px","defaultMessageItemMarginTop":"0","defaultMessageItemMarginBottom":"10px","diffAddedColor":"hsla(170, 53%, 51%, 0.4)","diffChangedColor":"hsla(43, 97%, 63%, 0.4)","diffNoneColor":"hsla(0, 0%, 80%, 0.4)","diffRemovedColor":"hsla(9, 74%, 47%, 0.4)","specialMessageHeaderMarginTop":"40px","specialMessageHeaderMarginBottom":"20px","specialMessageItemMarginTop":"0","specialMessageItemMarginBottom":"10px","__typename":"RteThemeSettings"},"tags":{"bgColor":"var(--lia-bs-gray-200)","bgHoverColor":"var(--lia-bs-gray-400)","borderRadius":"var(--lia-bs-border-radius-sm)","color":"var(--lia-bs-body-color)","hoverColor":"var(--lia-bs-body-color)","fontWeight":"var(--lia-font-weight-md)","fontSize":"var(--lia-font-size-xxs)","textTransform":"UPPERCASE","letterSpacing":"0.5px","__typename":"TagsThemeSettings"},"toasts":{"borderRadius":"var(--lia-bs-border-radius)","paddingX":"12px","__typename":"ToastsThemeSettings"},"typography":{"fontFamilyBase":"Segoe UI","fontStyleBase":"NORMAL","fontWeightBase":"400","fontWeightLight":"300","fontWeightNormal":"400","fontWeightMd":"500","fontWeightBold":"700","letterSpacingSm":"normal","letterSpacingXs":"normal","lineHeightBase":"1.5","fontSizeBase":"16px","fontSizeXxs":"11px","fontSizeXs":"12px","fontSizeSm":"14px","fontSizeLg":"20px","fontSizeXl":"24px","smallFontSize":"14px","customFonts":[{"source":"SERVER","name":"Segoe UI","styles":[{"style":"NORMAL","weight":"400","__typename":"FontStyleData"},{"style":"NORMAL","weight":"300","__typename":"FontStyleData"},{"style":"NORMAL","weight":"600","__typename":"FontStyleData"},{"style":"NORMAL","weight":"700","__typename":"FontStyleData"},{"style":"ITALIC","weight":"400","__typename":"FontStyleData"}],"assetNames":["SegoeUI-normal-400.woff2","SegoeUI-normal-300.woff2","SegoeUI-normal-600.woff2","SegoeUI-normal-700.woff2","SegoeUI-italic-400.woff2"],"__typename":"CustomFont"},{"source":"SERVER","name":"MWF Fluent Icons","styles":[{"style":"NORMAL","weight":"400","__typename":"FontStyleData"}],"assetNames":["MWFFluentIcons-normal-400.woff2"],"__typename":"CustomFont"}],"__typename":"TypographyThemeSettings"},"unstyledListItem":{"marginBottomSm":"5px","marginBottomMd":"10px","marginBottomLg":"15px","marginBottomXl":"20px","marginBottomXxl":"25px","__typename":"UnstyledListItemThemeSettings"},"yiq":{"light":"#ffffff","dark":"#000000","__typename":"YiqThemeSettings"},"colorLightness":{"primaryDark":0.36,"primaryLight":0.74,"primaryLighter":0.89,"primaryLightest":0.95,"infoDark":0.39,"infoLight":0.72,"infoLighter":0.85,"infoLightest":0.93,"successDark":0.24,"successLight":0.62,"successLighter":0.8,"successLightest":0.91,"warningDark":0.39,"warningLight":0.68,"warningLighter":0.84,"warningLightest":0.93,"dangerDark":0.41,"dangerLight":0.72,"dangerLighter":0.89,"dangerLightest":0.95,"__typename":"ColorLightnessThemeSettings"},"localOverride":false,"__typename":"Theme"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-1745505307000","value":{"title":"Loading..."},"localOverride":false},"CachedAsset:quilt:o365.prod:pages/blogs/BlogMessagePage:board:SAPApplications-1747130786968":{"__typename":"CachedAsset","id":"quilt:o365.prod:pages/blogs/BlogMessagePage:board:SAPApplications-1747130786968","value":{"id":"BlogMessagePage","container":{"id":"Common","headerProps":{"backgroundImageProps":null,"backgroundColor":null,"addComponents":null,"removeComponents":["community.widget.bannerWidget"],"componentOrder":null,"__typename":"QuiltContainerSectionProps"},"headerComponentProps":{"community.widget.breadcrumbWidget":{"disableLastCrumbForDesktop":false}},"footerProps":null,"footerComponentProps":null,"items":[{"id":"blog-article","layout":"ONE_COLUMN","bgColor":null,"showTitle":null,"showDescription":null,"textPosition":null,"textColor":null,"sectionEditLevel":"LOCKED","bgImage":null,"disableSpacing":null,"edgeToEdgeDisplay":null,"fullHeight":null,"showBorder":null,"__typename":"OneColumnQuiltSection","columnMap":{"main":[{"id":"blogs.widget.blogArticleWidget","className":"lia-blog-container","props":null,"__typename":"QuiltComponent"}],"__typename":"OneSectionColumns"}},{"id":"section-1729184836777","layout":"MAIN_SIDE","bgColor":"transparent","showTitle":false,"showDescription":false,"textPosition":"CENTER","textColor":"var(--lia-bs-body-color)","sectionEditLevel":null,"bgImage":null,"disableSpacing":null,"edgeToEdgeDisplay":null,"fullHeight":null,"showBorder":null,"__typename":"MainSideQuiltSection","columnMap":{"main":[],"side":[],"__typename":"MainSideSectionColumns"}}],"__typename":"QuiltContainer"},"__typename":"Quilt","localOverride":false},"localOverride":false},"CachedAsset:text:en_US-components/common/EmailVerification-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/common/EmailVerification-1745505307000","value":{"email.verification.title":"Email Verification Required","email.verification.message.update.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. To change your email, visit My Settings.","email.verification.message.resend.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. Resend email."},"localOverride":false},"CachedAsset:text:en_US-pages/blogs/BlogMessagePage-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-pages/blogs/BlogMessagePage-1745505307000","value":{"title":"{contextMessageSubject} | {communityTitle}","errorMissing":"This blog post cannot be found","name":"Blog Message Page","section.blog-article.title":"Blog Post","archivedMessageTitle":"This Content Has Been Archived","section.section-1729184836777.title":"","section.section-1729184836777.description":"","section.CncIde.title":"Blog Post","section.tifEmD.description":"","section.tifEmD.title":""},"localOverride":false},"CachedAsset:quiltWrapper:o365.prod:Common:1747130722036":{"__typename":"CachedAsset","id":"quiltWrapper:o365.prod:Common:1747130722036","value":{"id":"Common","header":{"backgroundImageProps":{"assetName":null,"backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"CENTER_CENTER","lastModified":null,"__typename":"BackgroundImageProps"},"backgroundColor":"transparent","items":[{"id":"community.widget.navbarWidget","props":{"showUserName":true,"showRegisterLink":true,"useIconLanguagePicker":true,"useLabelLanguagePicker":true,"className":"QuiltComponent_lia-component-edit-mode__0nCcm","links":{"sideLinks":[],"mainLinks":[{"children":[],"linkType":"INTERNAL","id":"gxcuf89792","params":{},"routeName":"CommunityPage"},{"children":[],"linkType":"EXTERNAL","id":"external-link","url":"/Directory","target":"SELF"},{"children":[{"linkType":"INTERNAL","id":"microsoft365","params":{"categoryId":"microsoft365"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"windows","params":{"categoryId":"Windows"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"Common-microsoft365-copilot-link","params":{"categoryId":"Microsoft365Copilot"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-teams","params":{"categoryId":"MicrosoftTeams"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-securityand-compliance","params":{"categoryId":"microsoft-security"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"azure","params":{"categoryId":"Azure"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"Common-content_management-link","params":{"categoryId":"Content_Management"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"exchange","params":{"categoryId":"Exchange"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"windows-server","params":{"categoryId":"Windows-Server"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"outlook","params":{"categoryId":"Outlook"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-endpoint-manager","params":{"categoryId":"microsoftintune"},"routeName":"CategoryPage"},{"linkType":"EXTERNAL","id":"external-link-2","url":"/Directory","target":"SELF"}],"linkType":"EXTERNAL","id":"communities","url":"/","target":"BLANK"},{"children":[{"linkType":"INTERNAL","id":"a-i","params":{"categoryId":"AI"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"education-sector","params":{"categoryId":"EducationSector"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"partner-community","params":{"categoryId":"PartnerCommunity"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"i-t-ops-talk","params":{"categoryId":"ITOpsTalk"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"healthcare-and-life-sciences","params":{"categoryId":"HealthcareAndLifeSciences"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-mechanics","params":{"categoryId":"MicrosoftMechanics"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"public-sector","params":{"categoryId":"PublicSector"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"s-m-b","params":{"categoryId":"MicrosoftforNonprofits"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"io-t","params":{"categoryId":"IoT"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"startupsat-microsoft","params":{"categoryId":"StartupsatMicrosoft"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"driving-adoption","params":{"categoryId":"DrivingAdoption"},"routeName":"CategoryPage"},{"linkType":"EXTERNAL","id":"external-link-1","url":"/Directory","target":"SELF"}],"linkType":"EXTERNAL","id":"communities-1","url":"/","target":"SELF"},{"children":[],"linkType":"EXTERNAL","id":"external","url":"/Blogs","target":"SELF"},{"children":[],"linkType":"EXTERNAL","id":"external-1","url":"/Events","target":"SELF"},{"children":[{"linkType":"INTERNAL","id":"microsoft-learn-1","params":{"categoryId":"MicrosoftLearn"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"microsoft-learn-blog","params":{"boardId":"MicrosoftLearnBlog","categoryId":"MicrosoftLearn"},"routeName":"BlogBoardPage"},{"linkType":"EXTERNAL","id":"external-10","url":"https://learningroomdirectory.microsoft.com/","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-3","url":"https://docs.microsoft.com/learn/dynamics365/?WT.mc_id=techcom_header-webpage-m365","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-4","url":"https://docs.microsoft.com/learn/m365/?wt.mc_id=techcom_header-webpage-m365","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-5","url":"https://docs.microsoft.com/learn/topics/sci/?wt.mc_id=techcom_header-webpage-m365","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-6","url":"https://docs.microsoft.com/learn/powerplatform/?wt.mc_id=techcom_header-webpage-powerplatform","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-7","url":"https://docs.microsoft.com/learn/github/?wt.mc_id=techcom_header-webpage-github","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-8","url":"https://docs.microsoft.com/learn/teams/?wt.mc_id=techcom_header-webpage-teams","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-9","url":"https://docs.microsoft.com/learn/dotnet/?wt.mc_id=techcom_header-webpage-dotnet","target":"BLANK"},{"linkType":"EXTERNAL","id":"external-2","url":"https://docs.microsoft.com/learn/azure/?WT.mc_id=techcom_header-webpage-m365","target":"BLANK"}],"linkType":"INTERNAL","id":"microsoft-learn","params":{"categoryId":"MicrosoftLearn"},"routeName":"CategoryPage"},{"children":[],"linkType":"INTERNAL","id":"community-info-center","params":{"categoryId":"Community-Info-Center"},"routeName":"CategoryPage"}]},"style":{"boxShadow":"var(--lia-bs-box-shadow-sm)","controllerHighlightColor":"hsla(30, 100%, 50%)","linkFontWeight":"400","dropdownDividerMarginBottom":"10px","hamburgerBorderHover":"none","linkBoxShadowHover":"none","linkFontSize":"14px","backgroundOpacity":0.8,"controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerBgColor":"transparent","hamburgerColor":"var(--lia-nav-controller-icon-color)","linkTextBorderBottom":"none","brandLogoHeight":"30px","linkBgHoverColor":"transparent","linkLetterSpacing":"normal","collapseMenuDividerOpacity":0.16,"dropdownPaddingBottom":"15px","paddingBottom":"15px","dropdownMenuOffset":"2px","hamburgerBgHoverColor":"transparent","borderBottom":"1px solid var(--lia-bs-border-color)","hamburgerBorder":"none","dropdownPaddingX":"10px","brandMarginRightSm":"10px","linkBoxShadow":"none","collapseMenuDividerBg":"var(--lia-nav-link-color)","linkColor":"var(--lia-bs-body-color)","linkJustifyContent":"flex-start","dropdownPaddingTop":"10px","controllerHighlightTextColor":"var(--lia-yiq-dark)","controllerTextColor":"var(--lia-nav-controller-icon-color)","background":{"imageAssetName":"","color":"var(--lia-bs-white)","size":"COVER","repeat":"NO_REPEAT","position":"CENTER_CENTER","imageLastModified":""},"linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkHoverColor":"var(--lia-bs-body-color)","position":"FIXED","linkBorder":"none","linkTextBorderBottomHover":"2px solid var(--lia-bs-body-color)","brandMarginRight":"30px","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","linkBorderHover":"none","collapseMenuMarginLeft":"20px","linkFontStyle":"NORMAL","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","linkPaddingX":"10px","linkPaddingY":"5px","paddingTop":"15px","linkTextTransform":"NONE","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","linkBgColor":"transparent","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkDropdownPaddingY":"9px","controllerIconColor":"var(--lia-bs-body-color)","dropdownDividerMarginTop":"10px","linkGap":"10px","controllerIconHoverColor":"var(--lia-bs-body-color)"},"showSearchIcon":false,"languagePickerStyle":"iconAndLabel"},"__typename":"QuiltComponent"},{"id":"community.widget.breadcrumbWidget","props":{"backgroundColor":"transparent","linkHighlightColor":"var(--lia-bs-primary)","visualEffects":{"showBottomBorder":true},"linkTextColor":"var(--lia-bs-gray-700)"},"__typename":"QuiltComponent"},{"id":"custom.widget.HeroBanner","props":{"widgetVisibility":"signedInOrAnonymous","usePageWidth":false,"useTitle":true,"cMax_items":3,"useBackground":false,"title":"","lazyLoad":false,"widgetChooser":"custom.widget.HeroBanner"},"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"footer":{"backgroundImageProps":{"assetName":null,"backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"CENTER_CENTER","lastModified":null,"__typename":"BackgroundImageProps"},"backgroundColor":"transparent","items":[{"id":"custom.widget.MicrosoftFooter","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"__typename":"QuiltWrapper","localOverride":false},"localOverride":false},"CachedAsset:text:en_US-components/common/ActionFeedback-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/common/ActionFeedback-1745505307000","value":{"joinedGroupHub.title":"Welcome","joinedGroupHub.message":"You are now a member of this group and are subscribed to updates.","groupHubInviteNotFound.title":"Invitation Not Found","groupHubInviteNotFound.message":"Sorry, we could not find your invitation to the group. The owner may have canceled the invite.","groupHubNotFound.title":"Group Not Found","groupHubNotFound.message":"The grouphub you tried to join does not exist. It may have been deleted.","existingGroupHubMember.title":"Already Joined","existingGroupHubMember.message":"You are already a member of this group.","accountLocked.title":"Account Locked","accountLocked.message":"Your account has been locked due to multiple failed attempts. Try again in {lockoutTime} minutes.","editedGroupHub.title":"Changes Saved","editedGroupHub.message":"Your group has been updated.","leftGroupHub.title":"Goodbye","leftGroupHub.message":"You are no longer a member of this group and will not receive future updates.","deletedGroupHub.title":"Deleted","deletedGroupHub.message":"The group has been deleted.","groupHubCreated.title":"Group Created","groupHubCreated.message":"{groupHubName} is ready to use","accountClosed.title":"Account Closed","accountClosed.message":"The account has been closed and you will now be redirected to the homepage","resetTokenExpired.title":"Reset Password Link has Expired","resetTokenExpired.message":"Try resetting your password again","invalidUrl.title":"Invalid URL","invalidUrl.message":"The URL you're using is not recognized. Verify your URL and try again.","accountClosedForUser.title":"Account Closed","accountClosedForUser.message":"{userName}'s account is closed","inviteTokenInvalid.title":"Invitation Invalid","inviteTokenInvalid.message":"Your invitation to the community has been canceled or expired.","inviteTokenError.title":"Invitation Verification Failed","inviteTokenError.message":"The url you are utilizing is not recognized. Verify your URL and try again","pageNotFound.title":"Access Denied","pageNotFound.message":"You do not have access to this area of the community or it doesn't exist","eventAttending.title":"Responded as Attending","eventAttending.message":"You'll be notified when there's new activity and reminded as the event approaches","eventInterested.title":"Responded as Interested","eventInterested.message":"You'll be notified when there's new activity and reminded as the event approaches","eventNotFound.title":"Event Not Found","eventNotFound.message":"The event you tried to respond to does not exist.","redirectToRelatedPage.title":"Showing Related Content","redirectToRelatedPageForBaseUsers.title":"Showing Related Content","redirectToRelatedPageForBaseUsers.message":"The content you are trying to access is archived","redirectToRelatedPage.message":"The content you are trying to access is archived","relatedUrl.archivalLink.flyoutMessage":"The content you are trying to access is archived View Archived Content"},"localOverride":false},"QueryVariables:TopicReplyList:message:368199:2":{"__typename":"QueryVariables","id":"TopicReplyList:message:368199:2","value":{"id":"message:368199","first":10,"sorts":{"postTime":{"direction":"DESC"}},"repliesFirst":3,"repliesFirstDepthThree":1,"repliesSorts":{"postTime":{"direction":"DESC"}},"useAvatar":true,"useAuthorLogin":true,"useAuthorRank":true,"useBody":true,"useKudosCount":true,"useTimeToRead":false,"useMedia":false,"useReadOnlyIcon":false,"useRepliesCount":true,"useSearchSnippet":false,"useAcceptedSolutionButton":false,"useSolvedBadge":false,"useAttachments":false,"attachmentsFirst":5,"useTags":true,"useNodeAncestors":false,"useUserHoverCard":false,"useNodeHoverCard":false,"useModerationStatus":true,"usePreviewSubjectModal":false,"useMessageStatus":true}},"ROOT_MUTATION":{"__typename":"Mutation"},"CachedAsset:component:custom.widget.HeroBanner-en-us-1747150703326":{"__typename":"CachedAsset","id":"component:custom.widget.HeroBanner-en-us-1747150703326","value":{"component":{"id":"custom.widget.HeroBanner","template":{"id":"HeroBanner","markupLanguage":"REACT","style":null,"texts":{"searchPlaceholderText":"Search this community","followActionText":"Follow","unfollowActionText":"Following","searchOnHoverText":"Please enter your search term(s) and then press return key to complete a search.","blogs.sidebar.pagetitle":"Latest Blogs | Microsoft Tech Community","followThisNode":"Follow this node","unfollowThisNode":"Unfollow this node"},"defaults":{"config":{"applicablePages":[],"description":null,"fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[{"id":"max_items","dataType":"NUMBER","list":false,"defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"control":"INPUT","__typename":"PropDefinition"}],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.HeroBanner","form":{"fields":[{"id":"widgetChooser","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"title","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useTitle","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useBackground","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"widgetVisibility","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"moreOptions","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"cMax_items","validation":null,"noValidation":null,"dataType":"NUMBER","list":false,"control":"INPUT","defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"__typename":"FormField"}],"layout":{"rows":[{"id":"widgetChooserGroup","type":"fieldset","as":null,"items":[{"id":"widgetChooser","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"titleGroup","type":"fieldset","as":null,"items":[{"id":"title","className":null,"__typename":"FormFieldRef"},{"id":"useTitle","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"useBackground","type":"fieldset","as":null,"items":[{"id":"useBackground","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"widgetVisibility","type":"fieldset","as":null,"items":[{"id":"widgetVisibility","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"moreOptionsGroup","type":"fieldset","as":null,"items":[{"id":"moreOptions","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"componentPropsGroup","type":"fieldset","as":null,"items":[{"id":"cMax_items","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"}],"actionButtons":null,"className":"custom_widget_HeroBanner_form","formGroupFieldSeparator":"divider","__typename":"FormLayout"},"__typename":"Form"},"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":null,"fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[{"id":"max_items","dataType":"NUMBER","list":false,"defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"control":"INPUT","__typename":"PropDefinition"}],"__typename":"ComponentProperties"},"form":{"fields":[{"id":"widgetChooser","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"title","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useTitle","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useBackground","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"widgetVisibility","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"moreOptions","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"cMax_items","validation":null,"noValidation":null,"dataType":"NUMBER","list":false,"control":"INPUT","defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"__typename":"FormField"}],"layout":{"rows":[{"id":"widgetChooserGroup","type":"fieldset","as":null,"items":[{"id":"widgetChooser","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"titleGroup","type":"fieldset","as":null,"items":[{"id":"title","className":null,"__typename":"FormFieldRef"},{"id":"useTitle","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"useBackground","type":"fieldset","as":null,"items":[{"id":"useBackground","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"widgetVisibility","type":"fieldset","as":null,"items":[{"id":"widgetVisibility","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"moreOptionsGroup","type":"fieldset","as":null,"items":[{"id":"moreOptions","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"componentPropsGroup","type":"fieldset","as":null,"items":[{"id":"cMax_items","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"}],"actionButtons":null,"className":"custom_widget_HeroBanner_form","formGroupFieldSeparator":"divider","__typename":"FormLayout"},"__typename":"Form"},"__typename":"Component","localOverride":false},"globalCss":null,"form":{"fields":[{"id":"widgetChooser","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"title","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useTitle","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"useBackground","validation":null,"noValidation":null,"dataType":"BOOLEAN","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"widgetVisibility","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"moreOptions","validation":null,"noValidation":null,"dataType":"STRING","list":null,"control":null,"defaultValue":null,"label":null,"description":null,"possibleValues":null,"__typename":"FormField"},{"id":"cMax_items","validation":null,"noValidation":null,"dataType":"NUMBER","list":false,"control":"INPUT","defaultValue":"3","label":"Max Items","description":"The maximum number of items to display in the carousel","possibleValues":null,"__typename":"FormField"}],"layout":{"rows":[{"id":"widgetChooserGroup","type":"fieldset","as":null,"items":[{"id":"widgetChooser","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"titleGroup","type":"fieldset","as":null,"items":[{"id":"title","className":null,"__typename":"FormFieldRef"},{"id":"useTitle","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"useBackground","type":"fieldset","as":null,"items":[{"id":"useBackground","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"widgetVisibility","type":"fieldset","as":null,"items":[{"id":"widgetVisibility","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"moreOptionsGroup","type":"fieldset","as":null,"items":[{"id":"moreOptions","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"},{"id":"componentPropsGroup","type":"fieldset","as":null,"items":[{"id":"cMax_items","className":null,"__typename":"FormFieldRef"}],"props":null,"legend":null,"description":null,"className":null,"viewVariant":null,"toggleState":null,"__typename":"FormFieldset"}],"actionButtons":null,"className":"custom_widget_HeroBanner_form","formGroupFieldSeparator":"divider","__typename":"FormLayout"},"__typename":"Form"}},"localOverride":false},"CachedAsset:component:custom.widget.MicrosoftFooter-en-us-1747150703326":{"__typename":"CachedAsset","id":"component:custom.widget.MicrosoftFooter-en-us-1747150703326","value":{"component":{"id":"custom.widget.MicrosoftFooter","template":{"id":"MicrosoftFooter","markupLanguage":"HANDLEBARS","style":".context-uhf {\n min-width: 280px;\n font-size: 15px;\n box-sizing: border-box;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n & *,\n & *:before,\n & *:after {\n box-sizing: inherit;\n }\n a.c-uhff-link {\n color: #616161;\n word-break: break-word;\n text-decoration: none;\n }\n &a:link,\n &a:focus,\n &a:hover,\n &a:active,\n &a:visited {\n text-decoration: none;\n color: inherit;\n }\n & div {\n font-family: 'Segoe UI', SegoeUI, 'Helvetica Neue', Helvetica, Arial, sans-serif;\n }\n}\n.c-uhff {\n background: #f2f2f2;\n margin: -1.5625;\n width: auto;\n height: auto;\n}\n.c-uhff-nav {\n margin: 0 auto;\n max-width: calc(1600px + 10%);\n padding: 0 5%;\n box-sizing: inherit;\n &:before,\n &:after {\n content: ' ';\n display: table;\n clear: left;\n }\n @media only screen and (max-width: 1083px) {\n padding-left: 12px;\n }\n .c-heading-4 {\n color: #616161;\n word-break: break-word;\n font-size: 15px;\n line-height: 20px;\n padding: 36px 0 4px;\n font-weight: 600;\n }\n .c-uhff-nav-row {\n .c-uhff-nav-group {\n display: block;\n float: left;\n min-height: 1px;\n vertical-align: text-top;\n padding: 0 12px;\n width: 100%;\n zoom: 1;\n &:first-child {\n padding-left: 0;\n @media only screen and (max-width: 1083px) {\n padding-left: 12px;\n }\n }\n @media only screen and (min-width: 540px) and (max-width: 1082px) {\n width: 33.33333%;\n }\n @media only screen and (min-width: 1083px) {\n width: 16.6666666667%;\n }\n ul.c-list.f-bare {\n font-size: 11px;\n line-height: 16px;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 0;\n list-style-type: none;\n li {\n word-break: break-word;\n padding: 8px 0;\n margin: 0;\n }\n }\n }\n }\n}\n.c-uhff-base {\n background: #f2f2f2;\n margin: 0 auto;\n max-width: calc(1600px + 10%);\n padding: 30px 5% 16px;\n &:before,\n &:after {\n content: ' ';\n display: table;\n }\n &:after {\n clear: both;\n }\n a.c-uhff-ccpa {\n font-size: 11px;\n line-height: 16px;\n float: left;\n margin: 3px 0;\n }\n a.c-uhff-ccpa:hover {\n text-decoration: underline;\n }\n ul.c-list {\n font-size: 11px;\n line-height: 16px;\n float: right;\n margin: 3px 0;\n color: #616161;\n li {\n padding: 0 24px 4px 0;\n display: inline-block;\n }\n }\n .c-list.f-bare {\n padding-left: 0;\n list-style-type: none;\n }\n @media only screen and (max-width: 1083px) {\n display: flex;\n flex-wrap: wrap;\n padding: 30px 24px 16px;\n }\n}\n\n.social-share {\n position: fixed;\n top: 60%;\n transform: translateY(-50%);\n left: 0;\n z-index: 1000;\n}\n\n.sharing-options {\n list-style: none;\n padding: 0;\n margin: 0;\n display: block;\n flex-direction: column;\n background-color: white;\n width: 43px;\n border-radius: 0px 7px 7px 0px;\n}\n.linkedin-icon {\n border-top-right-radius: 7px;\n}\n.linkedin-icon:hover {\n border-radius: 0;\n}\n.social-share-rss-image {\n border-bottom-right-radius: 7px;\n}\n.social-share-rss-image:hover {\n border-radius: 0;\n}\n\n.social-link-footer {\n position: relative;\n display: block;\n margin: -2px 0;\n transition: all 0.2s ease;\n}\n.social-link-footer:hover .linkedin-icon {\n border-radius: 0;\n}\n.social-link-footer:hover .social-share-rss-image {\n border-radius: 0;\n}\n\n.social-link-footer img {\n width: 40px;\n height: auto;\n transition: filter 0.3s ease;\n}\n\n.social-share-list {\n width: 40px;\n}\n.social-share-rss-image {\n width: 40px;\n}\n\n.share-icon {\n border: 2px solid transparent;\n display: inline-block;\n position: relative;\n}\n\n.share-icon:hover {\n opacity: 1;\n border: 2px solid white;\n box-sizing: border-box;\n}\n\n.share-icon:hover .label {\n opacity: 1;\n visibility: visible;\n border: 2px solid white;\n box-sizing: border-box;\n border-left: none;\n}\n\n.label {\n position: absolute;\n left: 100%;\n white-space: nowrap;\n opacity: 0;\n visibility: hidden;\n transition: all 0.2s ease;\n color: white;\n border-radius: 0 10 0 10px;\n top: 50%;\n transform: translateY(-50%);\n height: 40px;\n border-radius: 0 6px 6px 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 20px 5px 20px 8px;\n margin-left: -1px;\n}\n.linkedin {\n background-color: #0474b4;\n}\n.facebook {\n background-color: #3c5c9c;\n}\n.twitter {\n background-color: white;\n color: black;\n}\n.reddit {\n background-color: #fc4404;\n}\n.mail {\n background-color: #848484;\n}\n.bluesky {\n background-color: white;\n color: black;\n}\n.rss {\n background-color: #ec7b1c;\n}\n#RSS {\n width: 40px;\n height: 40px;\n}\n\n@media (max-width: 991px) {\n .social-share {\n display: none;\n }\n}\n","texts":{"New tab":"What's New","New 1":"Surface Laptop Studio 2","New 2":"Surface Laptop Go 3","New 3":"Surface Pro 9","New 4":"Surface Laptop 5","New 5":"Surface Studio 2+","New 6":"Copilot in Windows","New 7":"Microsoft 365","New 8":"Windows 11 apps","Store tab":"Microsoft Store","Store 1":"Account Profile","Store 2":"Download Center","Store 3":"Microsoft Store Support","Store 4":"Returns","Store 5":"Order tracking","Store 6":"Certified Refurbished","Store 7":"Microsoft Store Promise","Store 8":"Flexible Payments","Education tab":"Education","Edu 1":"Microsoft in education","Edu 2":"Devices for education","Edu 3":"Microsoft Teams for Education","Edu 4":"Microsoft 365 Education","Edu 5":"How to buy for your school","Edu 6":"Educator Training and development","Edu 7":"Deals for students and parents","Edu 8":"Azure for students","Business tab":"Business","Bus 1":"Microsoft Cloud","Bus 2":"Microsoft Security","Bus 3":"Dynamics 365","Bus 4":"Microsoft 365","Bus 5":"Microsoft Power Platform","Bus 6":"Microsoft Teams","Bus 7":"Microsoft Industry","Bus 8":"Small Business","Developer tab":"Developer & IT","Dev 1":"Azure","Dev 2":"Developer Center","Dev 3":"Documentation","Dev 4":"Microsoft Learn","Dev 5":"Microsoft Tech Community","Dev 6":"Azure Marketplace","Dev 7":"AppSource","Dev 8":"Visual Studio","Company tab":"Company","Com 1":"Careers","Com 2":"About Microsoft","Com 3":"Company News","Com 4":"Privacy at Microsoft","Com 5":"Investors","Com 6":"Diversity and inclusion","Com 7":"Accessiblity","Com 8":"Sustainibility"},"defaults":{"config":{"applicablePages":[],"description":"The Microsoft Footer","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.MicrosoftFooter","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"The Microsoft Footer","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":{"css":".custom_widget_MicrosoftFooter_context-uhf_105bp_1 {\n min-width: 17.5rem;\n font-size: 0.9375rem;\n box-sizing: border-box;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n & *,\n & *:before,\n & *:after {\n box-sizing: inherit;\n }\n a.custom_widget_MicrosoftFooter_c-uhff-link_105bp_12 {\n color: #616161;\n word-break: break-word;\n text-decoration: none;\n }\n &a:link,\n &a:focus,\n &a:hover,\n &a:active,\n &a:visited {\n text-decoration: none;\n color: inherit;\n }\n & div {\n font-family: 'Segoe UI', SegoeUI, 'Helvetica Neue', Helvetica, Arial, sans-serif;\n }\n}\n.custom_widget_MicrosoftFooter_c-uhff_105bp_12 {\n background: #f2f2f2;\n margin: -1.5625;\n width: auto;\n height: auto;\n}\n.custom_widget_MicrosoftFooter_c-uhff-nav_105bp_35 {\n margin: 0 auto;\n max-width: calc(100rem + 10%);\n padding: 0 5%;\n box-sizing: inherit;\n &:before,\n &:after {\n content: ' ';\n display: table;\n clear: left;\n }\n @media only screen and (max-width: 1083px) {\n padding-left: 0.75rem;\n }\n .custom_widget_MicrosoftFooter_c-heading-4_105bp_49 {\n color: #616161;\n word-break: break-word;\n font-size: 0.9375rem;\n line-height: 1.25rem;\n padding: 2.25rem 0 0.25rem;\n font-weight: 600;\n }\n .custom_widget_MicrosoftFooter_c-uhff-nav-row_105bp_57 {\n .custom_widget_MicrosoftFooter_c-uhff-nav-group_105bp_58 {\n display: block;\n float: left;\n min-height: 0.0625rem;\n vertical-align: text-top;\n padding: 0 0.75rem;\n width: 100%;\n zoom: 1;\n &:first-child {\n padding-left: 0;\n @media only screen and (max-width: 1083px) {\n padding-left: 0.75rem;\n }\n }\n @media only screen and (min-width: 540px) and (max-width: 1082px) {\n width: 33.33333%;\n }\n @media only screen and (min-width: 1083px) {\n width: 16.6666666667%;\n }\n ul.custom_widget_MicrosoftFooter_c-list_105bp_78.custom_widget_MicrosoftFooter_f-bare_105bp_78 {\n font-size: 0.6875rem;\n line-height: 1rem;\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 0;\n list-style-type: none;\n li {\n word-break: break-word;\n padding: 0.5rem 0;\n margin: 0;\n }\n }\n }\n }\n}\n.custom_widget_MicrosoftFooter_c-uhff-base_105bp_94 {\n background: #f2f2f2;\n margin: 0 auto;\n max-width: calc(100rem + 10%);\n padding: 1.875rem 5% 1rem;\n &:before,\n &:after {\n content: ' ';\n display: table;\n }\n &:after {\n clear: both;\n }\n a.custom_widget_MicrosoftFooter_c-uhff-ccpa_105bp_107 {\n font-size: 0.6875rem;\n line-height: 1rem;\n float: left;\n margin: 0.1875rem 0;\n }\n a.custom_widget_MicrosoftFooter_c-uhff-ccpa_105bp_107:hover {\n text-decoration: underline;\n }\n ul.custom_widget_MicrosoftFooter_c-list_105bp_78 {\n font-size: 0.6875rem;\n line-height: 1rem;\n float: right;\n margin: 0.1875rem 0;\n color: #616161;\n li {\n padding: 0 1.5rem 0.25rem 0;\n display: inline-block;\n }\n }\n .custom_widget_MicrosoftFooter_c-list_105bp_78.custom_widget_MicrosoftFooter_f-bare_105bp_78 {\n padding-left: 0;\n list-style-type: none;\n }\n @media only screen and (max-width: 1083px) {\n display: flex;\n flex-wrap: wrap;\n padding: 1.875rem 1.5rem 1rem;\n }\n}\n.custom_widget_MicrosoftFooter_social-share_105bp_138 {\n position: fixed;\n top: 60%;\n transform: translateY(-50%);\n left: 0;\n z-index: 1000;\n}\n.custom_widget_MicrosoftFooter_sharing-options_105bp_146 {\n list-style: none;\n padding: 0;\n margin: 0;\n display: block;\n flex-direction: column;\n background-color: white;\n width: 2.6875rem;\n border-radius: 0 0.4375rem 0.4375rem 0;\n}\n.custom_widget_MicrosoftFooter_linkedin-icon_105bp_156 {\n border-top-right-radius: 7px;\n}\n.custom_widget_MicrosoftFooter_linkedin-icon_105bp_156:hover {\n border-radius: 0;\n}\n.custom_widget_MicrosoftFooter_social-share-rss-image_105bp_162 {\n border-bottom-right-radius: 7px;\n}\n.custom_widget_MicrosoftFooter_social-share-rss-image_105bp_162:hover {\n border-radius: 0;\n}\n.custom_widget_MicrosoftFooter_social-link-footer_105bp_169 {\n position: relative;\n display: block;\n margin: -0.125rem 0;\n transition: all 0.2s ease;\n}\n.custom_widget_MicrosoftFooter_social-link-footer_105bp_169:hover .custom_widget_MicrosoftFooter_linkedin-icon_105bp_156 {\n border-radius: 0;\n}\n.custom_widget_MicrosoftFooter_social-link-footer_105bp_169:hover .custom_widget_MicrosoftFooter_social-share-rss-image_105bp_162 {\n border-radius: 0;\n}\n.custom_widget_MicrosoftFooter_social-link-footer_105bp_169 img {\n width: 2.5rem;\n height: auto;\n transition: filter 0.3s ease;\n}\n.custom_widget_MicrosoftFooter_social-share-list_105bp_188 {\n width: 2.5rem;\n}\n.custom_widget_MicrosoftFooter_social-share-rss-image_105bp_162 {\n width: 2.5rem;\n}\n.custom_widget_MicrosoftFooter_share-icon_105bp_195 {\n border: 2px solid transparent;\n display: inline-block;\n position: relative;\n}\n.custom_widget_MicrosoftFooter_share-icon_105bp_195:hover {\n opacity: 1;\n border: 2px solid white;\n box-sizing: border-box;\n}\n.custom_widget_MicrosoftFooter_share-icon_105bp_195:hover .custom_widget_MicrosoftFooter_label_105bp_207 {\n opacity: 1;\n visibility: visible;\n border: 2px solid white;\n box-sizing: border-box;\n border-left: none;\n}\n.custom_widget_MicrosoftFooter_label_105bp_207 {\n position: absolute;\n left: 100%;\n white-space: nowrap;\n opacity: 0;\n visibility: hidden;\n transition: all 0.2s ease;\n color: white;\n border-radius: 0 10 0 0.625rem;\n top: 50%;\n transform: translateY(-50%);\n height: 2.5rem;\n border-radius: 0 0.375rem 0.375rem 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1.25rem 0.3125rem 1.25rem 0.5rem;\n margin-left: -0.0625rem;\n}\n.custom_widget_MicrosoftFooter_linkedin_105bp_156 {\n background-color: #0474b4;\n}\n.custom_widget_MicrosoftFooter_facebook_105bp_237 {\n background-color: #3c5c9c;\n}\n.custom_widget_MicrosoftFooter_twitter_105bp_240 {\n background-color: white;\n color: black;\n}\n.custom_widget_MicrosoftFooter_reddit_105bp_244 {\n background-color: #fc4404;\n}\n.custom_widget_MicrosoftFooter_mail_105bp_247 {\n background-color: #848484;\n}\n.custom_widget_MicrosoftFooter_bluesky_105bp_250 {\n background-color: white;\n color: black;\n}\n.custom_widget_MicrosoftFooter_rss_105bp_254 {\n background-color: #ec7b1c;\n}\n#custom_widget_MicrosoftFooter_RSS_105bp_1 {\n width: 2.5rem;\n height: 2.5rem;\n}\n@media (max-width: 991px) {\n .custom_widget_MicrosoftFooter_social-share_105bp_138 {\n display: none;\n }\n}\n","tokens":{"context-uhf":"custom_widget_MicrosoftFooter_context-uhf_105bp_1","c-uhff-link":"custom_widget_MicrosoftFooter_c-uhff-link_105bp_12","c-uhff":"custom_widget_MicrosoftFooter_c-uhff_105bp_12","c-uhff-nav":"custom_widget_MicrosoftFooter_c-uhff-nav_105bp_35","c-heading-4":"custom_widget_MicrosoftFooter_c-heading-4_105bp_49","c-uhff-nav-row":"custom_widget_MicrosoftFooter_c-uhff-nav-row_105bp_57","c-uhff-nav-group":"custom_widget_MicrosoftFooter_c-uhff-nav-group_105bp_58","c-list":"custom_widget_MicrosoftFooter_c-list_105bp_78","f-bare":"custom_widget_MicrosoftFooter_f-bare_105bp_78","c-uhff-base":"custom_widget_MicrosoftFooter_c-uhff-base_105bp_94","c-uhff-ccpa":"custom_widget_MicrosoftFooter_c-uhff-ccpa_105bp_107","social-share":"custom_widget_MicrosoftFooter_social-share_105bp_138","sharing-options":"custom_widget_MicrosoftFooter_sharing-options_105bp_146","linkedin-icon":"custom_widget_MicrosoftFooter_linkedin-icon_105bp_156","social-share-rss-image":"custom_widget_MicrosoftFooter_social-share-rss-image_105bp_162","social-link-footer":"custom_widget_MicrosoftFooter_social-link-footer_105bp_169","social-share-list":"custom_widget_MicrosoftFooter_social-share-list_105bp_188","share-icon":"custom_widget_MicrosoftFooter_share-icon_105bp_195","label":"custom_widget_MicrosoftFooter_label_105bp_207","linkedin":"custom_widget_MicrosoftFooter_linkedin_105bp_156","facebook":"custom_widget_MicrosoftFooter_facebook_105bp_237","twitter":"custom_widget_MicrosoftFooter_twitter_105bp_240","reddit":"custom_widget_MicrosoftFooter_reddit_105bp_244","mail":"custom_widget_MicrosoftFooter_mail_105bp_247","bluesky":"custom_widget_MicrosoftFooter_bluesky_105bp_250","rss":"custom_widget_MicrosoftFooter_rss_105bp_254","RSS":"custom_widget_MicrosoftFooter_RSS_105bp_1"}},"form":null},"localOverride":false},"CachedAsset:text:en_US-components/community/Breadcrumb-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/community/Breadcrumb-1745505307000","value":{"navLabel":"Breadcrumbs","dropdown":"Additional parent page navigation"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBanner-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBanner-1745505307000","value":{"messageMarkedAsSpam":"This post has been marked as spam","messageMarkedAsSpam@board:TKB":"This article has been marked as spam","messageMarkedAsSpam@board:BLOG":"This post has been marked as spam","messageMarkedAsSpam@board:FORUM":"This discussion has been marked as spam","messageMarkedAsSpam@board:OCCASION":"This event has been marked as spam","messageMarkedAsSpam@board:IDEA":"This idea has been marked as spam","manageSpam":"Manage Spam","messageMarkedAsAbuse":"This post has been marked as abuse","messageMarkedAsAbuse@board:TKB":"This article has been marked as abuse","messageMarkedAsAbuse@board:BLOG":"This post has been marked as abuse","messageMarkedAsAbuse@board:FORUM":"This discussion has been marked as abuse","messageMarkedAsAbuse@board:OCCASION":"This event has been marked as abuse","messageMarkedAsAbuse@board:IDEA":"This idea has been marked as abuse","preModCommentAuthorText":"This comment will be published as soon as it is approved","preModCommentModeratorText":"This comment is awaiting moderation","messageMarkedAsOther":"This post has been rejected due to other reasons","messageMarkedAsOther@board:TKB":"This article has been rejected due to other reasons","messageMarkedAsOther@board:BLOG":"This post has been rejected due to other reasons","messageMarkedAsOther@board:FORUM":"This discussion has been rejected due to other reasons","messageMarkedAsOther@board:OCCASION":"This event has been rejected due to other reasons","messageMarkedAsOther@board:IDEA":"This idea has been rejected due to other reasons","messageArchived":"This post was archived on {date}","relatedUrl":"View Related Content","relatedContentText":"Showing related content","archivedContentLink":"View Archived Content"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageView/MessageViewStandard-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageView/MessageViewStandard-1745505307000","value":{"anonymous":"Anonymous","author":"{messageAuthorLogin}","authorBy":"{messageAuthorLogin}","board":"{messageBoardTitle}","replyToUser":" to {parentAuthor}","showMoreReplies":"Show More","replyText":"Reply","repliesText":"Replies","markedAsSolved":"Marked as Solution","movedMessagePlaceholder.BLOG":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.TKB":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.FORUM":"{count, plural, =0 {This reply has been} other {These replies have been} }","movedMessagePlaceholder.IDEA":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.OCCASION":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholderUrlText":"moved.","messageStatus":"Status: ","statusChanged":"Status changed: {previousStatus} to {currentStatus}","statusAdded":"Status added: {status}","statusRemoved":"Status removed: {status}","labelExpand":"expand replies","labelCollapse":"collapse replies","unhelpfulReason.reason1":"Content is outdated","unhelpfulReason.reason2":"Article is missing information","unhelpfulReason.reason3":"Content is for a different Product","unhelpfulReason.reason4":"Doesn't match what I was searching for"},"localOverride":false},"CachedAsset:text:en_US-components/messages/ThreadedReplyList-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/ThreadedReplyList-1745505307000","value":{"title":"{count, plural, one{# Reply} other{# Replies}}","title@board:BLOG":"{count, plural, one{# Comment} other{# Comments}}","title@board:TKB":"{count, plural, one{# Comment} other{# Comments}}","title@board:IDEA":"{count, plural, one{# Comment} other{# Comments}}","title@board:OCCASION":"{count, plural, one{# Comment} other{# Comments}}","noRepliesTitle":"No Replies","noRepliesTitle@board:BLOG":"No Comments","noRepliesTitle@board:TKB":"No Comments","noRepliesTitle@board:IDEA":"No Comments","noRepliesTitle@board:OCCASION":"No Comments","noRepliesDescription":"Be the first to reply","noRepliesDescription@board:BLOG":"Be the first to comment","noRepliesDescription@board:TKB":"Be the first to comment","noRepliesDescription@board:IDEA":"Be the first to comment","noRepliesDescription@board:OCCASION":"Be the first to comment","messageReadOnlyAlert:BLOG":"Comments have been turned off for this post","messageReadOnlyAlert:TKB":"Comments have been turned off for this article","messageReadOnlyAlert:IDEA":"Comments have been turned off for this idea","messageReadOnlyAlert:FORUM":"Replies have been turned off for this discussion","messageReadOnlyAlert:OCCASION":"Comments have been turned off for this event"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyCallToAction-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyCallToAction-1745505307000","value":{"leaveReply":"Leave a reply...","leaveReply@board:BLOG@message:root":"Leave a comment...","leaveReply@board:TKB@message:root":"Leave a comment...","leaveReply@board:IDEA@message:root":"Leave a comment...","leaveReply@board:OCCASION@message:root":"Leave a comment...","repliesTurnedOff.FORUM":"Replies are turned off for this topic","repliesTurnedOff.BLOG":"Comments are turned off for this topic","repliesTurnedOff.TKB":"Comments are turned off for this topic","repliesTurnedOff.IDEA":"Comments are turned off for this topic","repliesTurnedOff.OCCASION":"Comments are turned off for this topic","infoText":"Stop poking me!"},"localOverride":false},"Category:category:Exchange":{"__typename":"Category","id":"category:Exchange","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Outlook":{"__typename":"Category","id":"category:Outlook","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Community-Info-Center":{"__typename":"Category","id":"category:Community-Info-Center","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:EducationSector":{"__typename":"Category","id":"category:EducationSector","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:DrivingAdoption":{"__typename":"Category","id":"category:DrivingAdoption","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Azure":{"__typename":"Category","id":"category:Azure","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Windows-Server":{"__typename":"Category","id":"category:Windows-Server","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:MicrosoftTeams":{"__typename":"Category","id":"category:MicrosoftTeams","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:PublicSector":{"__typename":"Category","id":"category:PublicSector","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:microsoft365":{"__typename":"Category","id":"category:microsoft365","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:IoT":{"__typename":"Category","id":"category:IoT","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:HealthcareAndLifeSciences":{"__typename":"Category","id":"category:HealthcareAndLifeSciences","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:ITOpsTalk":{"__typename":"Category","id":"category:ITOpsTalk","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:MicrosoftLearn":{"__typename":"Category","id":"category:MicrosoftLearn","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Blog:board:MicrosoftLearnBlog":{"__typename":"Blog","id":"board:MicrosoftLearnBlog","blogPolicies":{"__typename":"BlogPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:AI":{"__typename":"Category","id":"category:AI","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:MicrosoftMechanics":{"__typename":"Category","id":"category:MicrosoftMechanics","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:MicrosoftforNonprofits":{"__typename":"Category","id":"category:MicrosoftforNonprofits","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:StartupsatMicrosoft":{"__typename":"Category","id":"category:StartupsatMicrosoft","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:PartnerCommunity":{"__typename":"Category","id":"category:PartnerCommunity","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Microsoft365Copilot":{"__typename":"Category","id":"category:Microsoft365Copilot","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Windows":{"__typename":"Category","id":"category:Windows","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Content_Management":{"__typename":"Category","id":"category:Content_Management","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:microsoft-security":{"__typename":"Category","id":"category:microsoft-security","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:microsoftintune":{"__typename":"Category","id":"category:microsoftintune","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Rank:rank:37":{"__typename":"Rank","id":"rank:37","position":18,"name":"Copper Contributor","color":"333333","icon":null,"rankStyle":"TEXT"},"User:user:814638":{"__typename":"User","id":"user:814638","uid":814638,"login":"2r_arne","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2020-09-30T03:07:52.637-07:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/m_assets/avatars/default/avatar-6.svg?time=0"},"rank":{"__ref":"Rank:rank:37"},"entityType":"USER","eventPath":"community:gxcuf89792/user:814638"},"ModerationData:moderation_data:1728433":{"__typename":"ModerationData","id":"moderation_data:1728433","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"BlogReplyMessage:message:1728433":{"__typename":"BlogReplyMessage","author":{"__ref":"User:user:814638"},"id":"message:1728433","revisionNum":1,"uid":1728433,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Blog:board:SAPApplications"},"parent":{"__ref":"BlogTopicMessage:message:368199"},"conversation":{"__ref":"Conversation:conversation:368199"},"subject":"Re: Installation Procedure for Sybase 16. 3 Patch Level 3 Always-on + DR on Suse 12. 3 – Recen","moderationData":{"__ref":"ModerationData:moderation_data:1728433"},"body":"

Deployment Config

Step 11. Typo error... End Of Life ... should be End Of Line 

Explanation:
This relates to the fact that windows OS uses 2 characters as the \"end of a line\", while unix uses only 1 character.

Windows uses CR+LF  - Carriage Return and Line Feed --- like and old manual typewriter it places the \"Carriage\" back to it's starting position on the next line, while unix uses only the LF character.

When transferring a text file (Binary) from unix to Windows, then open in Notepad - you apparently see no \"linebreaks\" and it might look messy.

When transferring a file from Windows to unix, you see the ^M (CR) character visible ... which several programs will take as an invalid special character...

 

One method to avoid this is to use \"ASCII transfer\" for text files - which often will identify this and adjust EOL to your OS. *)

 

If you've got a file with ^M characters on unix and want to get rid of this character, you can easily do this like this (using unix tr command)

         cat mywindowsfile.txt | tr -d '\\r' > myunixfile.txt

 

*) depending on your transfer program

","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"218","kudosSumWeight":0,"repliesCount":0,"postTime":"2020-09-30T03:33:27.415-07:00","lastPublishTime":"2020-09-30T03:33:27.415-07:00","metrics":{"__typename":"MessageMetrics","views":7429},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"entityType":"BLOG_REPLY","eventPath":"category:SAPonMicrosoft/category:products-services/category:communities/community:gxcuf89792board:SAPApplications/message:368199/message:1728433","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"CachedAsset:text:en_US-components/community/Navbar-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/community/Navbar-1745505307000","value":{"community":"Community Home","inbox":"Inbox","manageContent":"Manage Content","tos":"Terms of Service","forgotPassword":"Forgot Password","themeEditor":"Theme Editor","edit":"Edit Navigation Bar","skipContent":"Skip to content","gxcuf89792":"Tech Community","external-1":"Events","s-m-b":"Nonprofit Community","windows-server":"Windows Server","education-sector":"Education Sector","driving-adoption":"Driving Adoption","Common-content_management-link":"Content Management","microsoft-learn":"Microsoft Learn","s-q-l-server":"Content Management","partner-community":"Microsoft Partner Community","microsoft365":"Microsoft 365","external-9":".NET","external-8":"Teams","external-7":"Github","products-services":"Products","external-6":"Power Platform","communities-1":"Topics","external-5":"Microsoft Security","planner":"Outlook","external-4":"Microsoft 365","external-3":"Dynamics 365","azure":"Azure","healthcare-and-life-sciences":"Healthcare and Life Sciences","external-2":"Azure","microsoft-mechanics":"Microsoft Mechanics","microsoft-learn-1":"Community","external-10":"Learning Room Directory","microsoft-learn-blog":"Blog","windows":"Windows","i-t-ops-talk":"ITOps Talk","external-link-1":"View All","microsoft-securityand-compliance":"Microsoft Security","public-sector":"Public Sector","community-info-center":"Lounge","external-link-2":"View All","microsoft-teams":"Microsoft Teams","external":"Blogs","microsoft-endpoint-manager":"Microsoft Intune","startupsat-microsoft":"Startups at Microsoft","exchange":"Exchange","a-i":"AI and Machine Learning","io-t":"Internet of Things (IoT)","Common-microsoft365-copilot-link":"Microsoft 365 Copilot","outlook":"Microsoft 365 Copilot","external-link":"Community Hubs","communities":"Products"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarHamburgerDropdown-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarHamburgerDropdown-1745505307000","value":{"hamburgerLabel":"Side Menu"},"localOverride":false},"CachedAsset:text:en_US-components/community/BrandLogo-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/community/BrandLogo-1745505307000","value":{"logoAlt":"Khoros","themeLogoAlt":"Brand Logo"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarTextLinks-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarTextLinks-1745505307000","value":{"more":"More"},"localOverride":false},"CachedAsset:text:en_US-components/authentication/AuthenticationLink-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/authentication/AuthenticationLink-1745505307000","value":{"title.login":"Sign In","title.registration":"Register","title.forgotPassword":"Forgot Password","title.multiAuthLogin":"Sign In"},"localOverride":false},"CachedAsset:text:en_US-components/nodes/NodeLink-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/nodes/NodeLink-1745505307000","value":{"place":"Place {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageCoverImage-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageCoverImage-1745505307000","value":{"coverImageTitle":"Cover Image"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeTitle-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeTitle-1745505307000","value":{"nodeTitle":"{nodeTitle, select, community {Community} other {{nodeTitle}}} "},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageTimeToRead-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageTimeToRead-1745505307000","value":{"minReadText":"{min} MIN READ"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSubject-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSubject-1745505307000","value":{"noSubject":"(no subject)"},"localOverride":false},"CachedAsset:text:en_US-components/users/UserLink-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/users/UserLink-1745505307000","value":{"authorName":"View Profile: {author}","anonymous":"Anonymous"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserRank-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserRank-1745505307000","value":{"rankName":"{rankName}","userRank":"Author rank {rankName}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageTime-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageTime-1745505307000","value":{"postTime":"Published: {time}","lastPublishTime":"Last Update: {time}","conversation.lastPostingActivityTime":"Last posting activity time: {time}","conversation.lastPostTime":"Last post time: {time}","moderationData.rejectTime":"Rejected time: {time}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBody-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBody-1745505307000","value":{"showMessageBody":"Show More","mentionsErrorTitle":"{mentionsType, select, board {Board} user {User} message {Message} other {}} No Longer Available","mentionsErrorMessage":"The {mentionsType} you are trying to view has been removed from the community.","videoProcessing":"Video is being processed. Please try again in a few minutes.","bannerTitle":"Video provider requires cookies to play the video. Accept to continue or {url} it directly on the provider's site.","buttonTitle":"Accept","urlText":"watch"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageCustomFields-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageCustomFields-1745505307000","value":{"CustomField.default.label":"Value of {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageRevision-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageRevision-1745505307000","value":{"lastUpdatedDatePublished":"{publishCount, plural, one{Published} other{Updated}} {date}","lastUpdatedDateDraft":"Created {date}","version":"Version {major}.{minor}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/QueryHandler-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/QueryHandler-1745505307000","value":{"title":"Query Handler"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyButton-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyButton-1745505307000","value":{"repliesCount":"{count}","title":"Reply","title@board:BLOG@message:root":"Comment","title@board:TKB@message:root":"Comment","title@board:IDEA@message:root":"Comment","title@board:OCCASION@message:root":"Comment"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageAuthorBio-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageAuthorBio-1745505307000","value":{"sendMessage":"Send Message","actionMessage":"Follow this blog board to get notified when there's new activity","coAuthor":"CO-PUBLISHER","contributor":"CONTRIBUTOR","userProfile":"View Profile","iconlink":"Go to {name} {type}"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarDropdownToggle-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarDropdownToggle-1745505307000","value":{"ariaLabelClosed":"Press the down arrow to open the menu"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserAvatar-1745505307000","value":{"altText":"{login}'s avatar","altTextGeneric":"User's avatar"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/ranks/UserRankLabel-1745505307000","value":{"altTitle":"Icon for {rankName} rank"},"localOverride":false},"CachedAsset:text:en_US-components/tags/TagView/TagViewChip-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/tags/TagView/TagViewChip-1745505307000","value":{"tagLabelName":"Tag name {tagName}"},"localOverride":false},"CachedAsset:text:en_US-components/users/UserRegistrationDate-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/users/UserRegistrationDate-1745505307000","value":{"noPrefix":"{date}","withPrefix":"Joined {date}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeAvatar-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeAvatar-1745505307000","value":{"altTitle":"Node avatar for {nodeTitle}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeDescription-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeDescription-1745505307000","value":{"description":"{description}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageListMenu-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageListMenu-1745505307000","value":{"postTimeAsc":"Oldest","postTimeDesc":"Newest","kudosSumWeightAsc":"Least Liked","kudosSumWeightDesc":"Most Liked","sortTitle":"Sort By","sortedBy.item":" { itemName, select, postTimeAsc {Oldest} postTimeDesc {Newest} kudosSumWeightAsc {Least Liked} kudosSumWeightDesc {Most Liked} other {}}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1745505307000":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeIcon-1745505307000","value":{"contentType":"Content Type {style, select, FORUM {Forum} BLOG {Blog} TKB {Knowledge Base} IDEA {Ideas} OCCASION {Events} other {}} icon"},"localOverride":false}}}},"page":"/blogs/BlogMessagePage/BlogMessagePage","query":{"boardId":"sapapplications","messageSubject":"installation-procedure-for-sybase-16-3-patch-level-3-always-on--dr-on-suse-12-3-","messageId":"368199"},"buildId":"YK32GCbhJqbL-HLk4DLXM","runtimeConfig":{"buildInformationVisible":false,"logLevelApp":"info","logLevelMetrics":"info","openTelemetryClientEnabled":false,"openTelemetryConfigName":"o365","openTelemetryServiceVersion":"25.3.0","openTelemetryUniverse":"prod","openTelemetryCollector":"http://localhost:4318","openTelemetryRouteChangeAllowedTime":"5000","apolloDevToolsEnabled":false,"inboxMuteWipFeatureEnabled":false},"isFallback":false,"isExperimentalCompile":false,"dynamicIds":["./components/community/Navbar/NavbarWidget.tsx","./components/community/Breadcrumb/BreadcrumbWidget.tsx","./components/customComponent/CustomComponent/CustomComponent.tsx","./components/blogs/BlogArticleWidget/BlogArticleWidget.tsx","./components/messages/MessageView/MessageViewStandard/MessageViewStandard.tsx","./components/messages/ThreadedReplyList/ThreadedReplyList.tsx","./components/external/components/ExternalComponent.tsx","../shared/client/components/common/List/UnwrappedList/UnwrappedList.tsx","./components/tags/TagView/TagView.tsx","./components/tags/TagView/TagViewChip/TagViewChip.tsx","../shared/client/components/common/List/UnstyledList/UnstyledList.tsx","./components/messages/MessageView/MessageView.tsx","./components/customComponent/CustomComponentContent/TemplateContent.tsx"],"appGip":true,"scriptLoader":[{"id":"analytics","src":"https://techcommunity.microsoft.com/t5/s/gxcuf89792/pagescripts/1730819800000/analytics.js?page.id=BlogMessagePage&entity.id=board%3Asapapplications&entity.id=message%3A368199","strategy":"afterInteractive"}]}