Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
c_baker
Employee
Employee

Introduction


Currently we document creating an Always-on (HADR) environment for Custom and Business Suite applications HADR Users Guide and adding a 3rd node DR to a Business Suite Application HADR System with DR Node Users Guide, but in the latter document there is no section on "Adding a DR Node to an Existing Custom HA System".

My intention is to have such information added to the documentation in the future, but in the meantime, the purpose of this blog is to demonstrate how to do this with a custom system.

For a description and diagrams of HADR and HADR + 3rd node, I will point you to the following blog post High Availability + Disaster Recovery (3 Node HADR) with SAP ASE 16.0 SP03. For this blog and examples, I will be using ASE 16.0 SP04PL03.

This blog of how to do this will be broken down into several sections:

  • Installing and configuring a primary and companion node HADR configuration (Part 1)

  • Adding the DR node (Part 1)

  • Adding a database to the HADR cluster (Part 2)

  • Planned Failover (Part 2)

  • Planned Failback (Part 2)

  • Removing a database from the HADR cluster (Part 3)

  • Dropping the DR node (Part 3)


The components of an HADR configuration are shown here:


HADR Cluster


All components required for the HADR installation are provided with the SAP Adaptive Server Enterprise (ASE) installation media.  No additional

Adding the DR node as the third node allows a disaster recovery capability for the HADR cluster.  (Recovering the HADR cluster from the DR node is documented at Recovering the HADR Cluster from the DR Node).


HADR Cluster + 3rd node DR


The Fault Manager (FM) and SAP Host Agent are only required on the HADR cluster as failover and failback is still only between the two instances of the HADR cluster.

As with the components shown in the first diagram, the DR node does have a Replication Management Agent (RMA) and SAP Replication Server (SRS) instance installed.

The addition of the DR node does not require any additional SAP Replication Server license.  The Replication Management Agent and SAP Replication Server instances will be configured when adding the DR node to an existing HADR cluster.

Failover, whether planned or unplanned, and failback, do take into account the presence of the DR environment and automatically switch the source of replication for the DR node database(s) to the active source database(s).

When configuring HADR + 3rd node, remember that all 3 ASE instances must be configured as follows:

  • ASE sa passwords must match.

  • RMA DR_admin passwords must match.

  • RMA DR_maint passwords must match.

  • master db must be the same size (this will be replicated).

  • the <SID> database must be created on all instances.  This will be created automatically if using Method 1 (below).  If using Method 2 (below), the database can be created on the primary, companion and DR manually or by the setup_hadr response file.

  • server page size, character set and sort order must be the same.


Installing and configuring a primary and companion node HADR configuration


There are 2 methods that I will document here for installing and configuring an HADR cluster:

  • Install and build a new HADR cluster from the installation media

  • Add HADR to an existing ASE primary instance


Regardless of the method chosen, the companion or standby node and the future DR node should be new ASE instances.  Existing instances cannot be used, primarily due to conflicts with possibly already created SUIDs.

Regardless of the method selected, the final HADR cluster built using either method can have a DR node added.

Also, user databases can be added to the HADR system during the HADR cluster creation or later via RMA commands.

To simplify things, the ASE installation directory is /opt/sybase/ASE while all the data devices for ASE, the data movement (DM) components (SRS) are under a /data folder as shown below.
/data
├── ASE
│ ├── data
│ └── dump
└── SRS
├── data
└── ssd


Regardless of the method used, a Backup Server instance will be needed use by HADR.  (AMC also requires a Job Scheduler, so all open servers were created anyway).

Method 1 - Install and build a new HADR cluster from the installation media


This method assumes no existing $SYBASE directory is installed on any node of the HADR cluster, but the installation media has been un-tarred and is available in an installation directory on both nodes that will participate in the HADR cluster.

Most of this is already documented in Installing HADR for Custom Application, however, what is provided blow provided is another setup.bin response file similar to the one provided in the documentation at Sample Response Files.

In addition, since ASE Cockpit is now deprecated, there is no need to install or configure it.

'Custom' setup is also used instead of 'Typical' or 'TypicalASEHADR' so AMC can be installed using the 'fase_amc' feature.  ASE HADR data movement components (SRS) are added with the 'fase_hadr' feature and will eventually reside in the $SYBASE/DM folder.

This method will also install the 'SAP Host Agent' that a Fault Manager node will require.

Sample HADR Primary Response File
##############################################################################
# HADR sample responses file for SAP Adaptive Server Enterprise 16.0 SP04.
#
# This sample responses file installs and setup primary site for HADR.
#
# Prerequisite:
# HADR is installed and setup on companion site.
#
# Following servers are configured:
#
# SAP ASE (with HADR)
# Backupserver
# XP server
# Job Scheduler (with Self Management)
#
##############################################################################

#Validate Response File
#----------------------
#
RUN_SILENT=true

#Choose Install Folder
#---------------------
# USER_INSTALL_DIR=<Destination directory in absolute path>
#
USER_INSTALL_DIR=/opt/sybase/ASE

#Install older version
#---------------------
# INSTALL_OLDER_VERSION=<true|false>.
# This determines whether installer can overwrite newer version.
#
INSTALL_OLDER_VERSION=false

#Choose Update Installation
#--------------------------
# DO_UPDATE_INSTALL=<true|false>.
# This determines if the installer selects and applies
# updates to the installed product/features.
# DO_UPDATE_INSTALL_HADR_COMPONENT=<ASE|DM|ALL>
# Which component to update for ASE HADR.
# This is only valid if DO_UPDATE_INSTALL=true and
# installed directory has ASE HADR.
# Valid values are:
# -----------------
# ASE --> Update only the SAP ASE components in rolling upgrade
# DM --> Update only the Data Movement component in rolling upgrade
# ALL --> Update all components
#
DO_UPDATE_INSTALL=false
DO_UPDATE_INSTALL_HADR_COMPONENT=DM

#Choose Install Set
#------------------
# CHOSEN_INSTALL_SET=<Typical|TypicalASEHADR|Full|Custom>
# CHOSEN_FEATURE_LIST=<Features you want to install>
# Valid values are:
# -----------------
# fase_srv --> SAP Adaptive Server Enterprise
# fase_add_lm --> Additional SAP ASE Language Modules
# fase_amc --> Administration and Management Console
# fase_hadr --> SAP ASE Data Movement for HADR
# Available on:
# Itanium/HP-UX 64-bit
# IBM/AIX 64-bit
# x86-64/Linux 64-bit
# SPARC/Solaris 64-bit
# x86-64/Windows 64-bit
# fopen_client --> Open Client
# fdblib --> DB-Library
# fesql_c_lang --> Embedded SQL/C
# fesql_cobol_lang --> Embedded SQL/Cobol
# fxa --> XA Interface Library for SAP ASE Distributed Transaction Manager
# Available on:
# Itanium/HP-UX 64-bit
# IBM/AIX 64-bit
# x86-64/Linux 64-bit
# SPARC/Solaris 64-bit
# x86-64/Solaris 64-bit
# x86-64/Windows 64-bit
# fconn_add_lm --> Additional Connectivity Language Modules
# fjconnect160 --> jConnect 16.0 for JDBC
# fodbcl --> SAP ASE ODBC Driver
# fodata_ase --> OData Server for SAP ASE
# Available on:
# x86-64/Linux 64-bit
# x86-64/Windows 64-bit
# fdbisql --> Interactive SQL
# fqptune --> QPTune
# fsysam_util --> SySAM License Utilities
# fsysam_server --> SySAM License Server
# fscc_server --> Cockpit
# fasecmap --> SAP ASE Cockpit
# fase_cagent --> Remote Command and Control Agent for SAP ASE
# fconn_python --> SAP ASE extension module for Python
# fconn_perl --> SAP ASE database driver for PERL
# Available on:
# x86-64/Linux 64-bit
# x86-64/Windows 64-bit
# fconn_php --> SAP ASE extension module for PHP
#
# Notes:
# - If DO_UPDATE_INSTALL=true, CHOSEN_INSTALL_SET and CHOSEN_FEATURE_LIST
# are ignored.
# - If CHOSEN_INSTALL_SET is set to "Typical", "TypicalASEHADR", or "Full", do not set
# CHOSEN_FEATURE_LIST.
#
CHOSEN_INSTALL_SET=Custom
CHOSEN_FEATURE_LIST=fase_srv,fopen_client,fdblib,fconn_python,fconn_perl,fconn_php,fjconnect160,fodbcl,fdbisql,fqptune,fsysam_util,fase_hadr,fase_amc

#SAP Host Agent
#--------------
# Install SAP Host Agent for ASE HADR.
#
# You need root permission to install
# SAP Host Agent. Enter your password for
# installer to execute "sudo" command to
# install SAP Host Agent. If you do not
# have "sudo" permission, set
# INSTALL_SAP_HOST_AGENT=FALSE and ask
# your system administrator to manually
# install SAP Host Agent at later time.
#
# Notes:
# - You also can set SUDO_PASSWORD property value
# through SUDO_PASSWORD environment variable.
#
INSTALL_SAP_HOST_AGENT=TRUE
SUDO_PASSWORD=<password>

#Choose Product License Type
#---------------------------
# SYBASE_PRODUCT_LICENSE_TYPE=<license|evaluate|express>
# This is the End User License Agreement (EULA) you agreed to when run
# installer with "-DAGREE_TO_SAP_LICENSE=true" argument.
#
# Note:
# - 'evaluate' and 'express' only available on some platforms.
#
SYBASE_PRODUCT_LICENSE_TYPE=license

#Choose Sybase Software Asset Management License
#-----------------------------------------------
# SYSAM_LICENSE_SOURCE=<license_file|existing_license_server|proceed_without_license>
# SYSAM_LICENSE_FILE_PATHNAME=<license key file path>
# Required when SYSAM_LICENSE_SOURCE is set to 'license_file'.
# SYSAM_EXISTING_LICENSE_SERVER_HOSTNAME=<license key server name>
# Required when SYSAM_LICENSE_SOURCE is set to 'existing_license_server'.
# SYSAM_EXISTING_LICENSE_SERVER_PORTNUMBER=<license key server port number>
# Set this to null for default port number.
#
SYSAM_LICENSE_SOURCE=existing_license_server
SYSAM_LICENSE_FILE_PATHNAME=
SYSAM_EXISTING_LICENSE_SERVER_HOSTNAME=<license server host FQDN>
SYSAM_EXISTING_LICENSE_SERVER_PORTNUMBER=27000

#Choose SYSAM Product Edition and License Type
#--------------------------------------------
# SYSAM_PRODUCT_EDITION=<Enterprise Edition|Small Business Edition|Unknown>
# SYSAM_LICENSE_TYPE=<License type>
# Valid SYSAM_LICENSE_TYPE value for SYSAM_PRODUCT_EDITION='Enterprise Edition':
# CP : CPU License
# SF : Standby CPU License
# SR : Server License
# SV : Standby Server License
# DT : Development and Test License
# EV : Evaluation License
# OT : Other License
# SS : Standalone Seat License
# DV : Developer License
# NA : Not Applicable or Other License
# AC : OEM Application Deployment CPU License
# BC : OEM Application Deployment Standby CPU License
# AR : OEM Application Deployment Server License
# BR : OEM Application Deployment Standby Server License
# AO : OEM Application Deployment Other License
# LP : Application Specific CPU License
# LF : Application Specific Standby CPU License
# LR : Application Specific Server License
# LV : Application Specific Standby Server License
# Unknown
# Valid SYSAM_LICENSE_TYPE value for SYSAM_PRODUCT_EDITION='Small Business Edition':
# CP : CPU License
# SF : Standby CPU License
# SR : Server License
# SV : Standby Server License
# DT : Development and Test License
# EV : Evaluation License
# OT : Other License
# SS : Standalone Seat License
# DV : Developer License
# NA : Not Applicable or Other License
# AC : OEM Application Deployment CPU License
# BC : OEM Application Deployment Standby CPU License
# AR : OEM Application Deployment Server License
# BR : OEM Application Deployment Standby Server License
# AO : OEM Application Deployment Other License
# LP : Application Specific CPU License
# LF : Application Specific Standby CPU License
# LR : Application Specific Server License
# LV : Application Specific Standby Server License
# DH : Development and Testing Chip License
# CH : Chip License
# SH : Standby Chip License
# AH : Application Deployment Chip License
# BH : Application Deployment Standby Chip License
# LH : Application Specific Chip License
# LI : Application Specific Standby Chip License
# Unknown
# Valid SYSAM_LICENSE_TYPE value for SYSAM_PRODUCT_EDITION=Unknown
# None
#
SYSAM_PRODUCT_EDITION=Enterprise Edition
SYSAM_LICENSE_TYPE=CP : CPU License

#Software Asset Management Notification Setting
#----------------------------------------------
# SYSAM_NOTIFICATION_ENABLE=<true|false>
# Enable SySAM email notification
# SYSAM_NOTIFICATION_SMTP_HOSTNAME=<SMTP server host name>
# Required if SYSAM_NOTIFICATION_ENABLE=true
# SYSAM_NOTIFICATION_SMTP_PORTNUMBER=<SMTP server port number>
# Required if SYSAM_NOTIFICATION_ENABLE=true
# SYSAM_NOTIFICATION_SENDER_EMAIL=<Sender email>
# Required if SYSAM_NOTIFICATION_ENABLE=true
# SYSAM_NOTIFICATION_RECIPIENT_EMAIL=<Recipient emails>
# Required if SYSAM_NOTIFICATION_ENABLE=true
# SYSAM_NOTIFICATION_EMAIL_SEVERITY=<INFORMATIONAL|WARNING|ERROR>
# Required if SYSAM_NOTIFICATION_ENABLE=true
#
SYSAM_NOTIFICATION_ENABLE=false
SYSAM_NOTIFICATION_SMTP_HOSTNAME=smtp
SYSAM_NOTIFICATION_SMTP_PORTNUMBER=25
SYSAM_NOTIFICATION_SENDER_EMAIL=sybase
SYSAM_NOTIFICATION_RECIPIENT_EMAIL=<email@companycom>
SYSAM_NOTIFICATION_EMAIL_SEVERITY=NONE

#Choose Update SAP ASE
#-----------------------------
# DO_UPDATE_ASE_SERVER=<true|false>
# This property determines whether to update the existing SAP ASE.
# It is only valid if DO_UPDATE_INSTALL=true.
# UPDATE_ASE_SERVER_NAME_[n]=<SAP ASE name to update>
# UPDATE_ASE_PASSWORD_[n]=<SAP ASE SA password>
#
# Notes:
# - You also can set UPDATE_ASE_SERVER_NAME_[n] and UPDATE_ASE_PASSWORD_[n]
# property values through the environment variables UPDATE_ASE_SERVER_NAME_[n]
# and UPDATE_ASE_PASSWORD_[n], respectively.
# - If the ASE password is null, set UPDATE_ASE_SERVER_NAME_[n] value to "NA".
#
DO_UPDATE_ASE_SERVER=false

#Configure New Servers
#---------------------
# SY_CONFIG_ASE_SERVER=<true|false>
# This property determines whether to configure SAP ASE.
# SY_CONFIG_HADR_SERVER=<true|false>
# This property determines whether to setup ASE HADR.
# Available on:
# Itanium/HP-UX 64-bit
# Power/AIX 64-bit
# x86-64/Linux 64-bit
# SPARC/Solaris 64-bit
# SY_CONFIG_BS_SERVER=<true|false>
# This property determines whether to configure Backup Server.
# SY_CONFIG_XP_SERVER=<true|false>
# This property determines whether to configure XP Server.
# SY_CONFIG_JS_SERVER=<true|false>
# This property determines whether to configure Job Scheduler Agent.
# SY_CONFIG_SM_SERVER=<true|false>
# This property determines whether to enable Self Management.
# SY_CONFIG_SCC_SERVER=<true|false>
# This property determines whether to configure Cockpit.
#
# Notes:
# - These properties are ignored if you set DO_UPDATE_INSTALL=true.
# See above for updating the existing ASE servers.
# - If SY_CONFIG_BS_SERVER, SY_CONFIG_XP_SERVER, and/or SY_CONFIG_JS_SERVER,
# are set to "true", SY_CONFIG_ASE_SERVER must also set to "true".
# - If SY_CONFIG_HADR_SERVER=true, SY_CONFIG_ASE_SERVER and SY_CONFIG_BS_SERVER
# must also set to "true".
# - If SY_CONFIG_SM_SERVER=true, SY_CONFIG_JS_SERVER must also set to "true".
#
SY_CONFIG_ASE_SERVER=true
SY_CONFIG_HADR_SERVER=true
SY_CONFIG_BS_SERVER=true
SY_CONFIG_XP_SERVER=true
SY_CONFIG_JS_SERVER=true
SY_CONFIG_SM_SERVER=false
SY_CONFIG_SCC_SERVER=false

#Configure Servers with Different User Account
#---------------------------------------------
# If SY_CFG_USER_ACCOUNT_CHANGE=yes, below properties are required:
#
# SY_CFG_USER_ACCOUNT_NAME=<user name>
# SY_CFG_USER_ACCOUNT_PASSWORD=<user password>
#
SY_CFG_USER_ACCOUNT_CHANGE=no
SY_CFG_USER_ACCOUNT_NAME=
SY_CFG_USER_ACCOUNT_PASSWORD=

#User Configuration Data Directory
#---------------------------------
#SY_CFG_USER_DATA_DIRECTORY=/data/ASE
SY_CFG_USER_DATA_DIRECTORY=/opt/sybase/ASE

#Configure New SAP ASE
#-----------------------------
# If SY_CONFIG_ASE_SERVER=true, below properties are required:
#
# SY_CFG_ASE_SERVER_NAME=<SAP ASE name>
# SY_CFG_ASE_PORT_NUMBER=<SAP ASE port number>
# SY_CFG_ASE_APPL_TYPE=<MIXED|OLTP|DSS>
# This property describes the intended use of the ASE server:
# OLTP --> Online Transaction Proccessing
# DSS --> Decision Support Systems
# Mixed --> OLTP/DSS
# SY_CFG_ASE_PAGESIZE=<2k|4k|8k|16k>
# SAP ASE page size
# ASE_ADDL_CMD_ARG=<Additional command line arguments to ASE>
# SY_CFG_ASE_PASSWORD=<SA's password>
# SY_CFG_ASE_MASTER_DEV_NAME=<Master device name>
# SY_CFG_ASE_MASTER_DEV_SIZE=<Master device size in MB>
# SY_CFG_ASE_MASTER_DB_SIZE=<Master database size in MB>
# SY_CFG_ASE_SYBPROC_DEV_NAME=<System procedure device name>
# SY_CFG_ASE_SYBPROC_DEV_SIZE=<System procedure device size in MB>
# SY_CFG_ASE_SYBPROC_DB_SIZE=<System procedure database size in MB>
# SY_CFG_ASE_SYBTEMP_DEV_NAME=<System device name for two phase commit>
# SY_CFG_ASE_SYBTEMP_DEV_SIZE=<System device size in MB>
# SY_CFG_ASE_SYBTEMP_DB_SIZE=<System database size in MB>
# SY_CFG_ASE_ERROR_LOG=<Error log>
# CFG_REMOTE_AND_CONTROL_AGENT=<true|false>
# Configures Remote Command and Control Agent for SAP ASE.
# This is only valid if Remote Command and Control Agent
# for SAP ASE is installed.
# ENABLE_COCKPIT_MONITORING=<true|false>
# Enable SAP ASE for SAP ASE Cockpit monitoring.
# This is only valid if SAP ASE Cockpit is installed.
# COCKPIT_TECH_USER=<SAP ASE Cockpit technical user>
# Required if ENABLE_COCKPIT_MONITORING=true.
# COCKPIT_TECH_USER_PASSWORD=<SAP ASE Cockpit technical user password>
# Required if ENABLE_COCKPIT_MONITORING=true.
# SY_CFG_ASE_PCI_ENABLE=<true|false>
# This property determines if Java in database feature is enabled.
# SY_CFG_ASE_PCI_DEV_NAME=<Device name for "sybpcidb" database>
# Required if SY_CFG_ASE_PCI_ENABLE=true
# SY_CFG_ASE_PCI_DEV_SIZE=<PCI device size in MB>
# Required if SY_CFG_ASE_PCI_ENABLE=true
# SY_CFG_ASE_PCI_DB_SIZE=<PCI database size in MB>
# Required if SY_CFG_ASE_PCI_ENABLE=true
# SY_CFG_ASE_AMC_ENABLE=<true|false>
# This property determines if AMC feature is enabled.
# SY_CFG_ASE_AMC_PORT_NUMBER=<AMC port number>
# Required if SY_CFG_ASE_AMC_ENABLE=true
# SY_CFG_ASE_TEMP_DEV_NAME=<Device for temporary database>
# SY_CFG_ASE_TEMP_DEV_SIZE=<Temporary device size in MB>
# SY_CFG_ASE_TEMP_DB_SIZE=<Temporary database size in MB>
# SY_CFG_ASE_OPT_ENABLE=<true|false>
# This property determines if it should optimized the SAP ASE.
# SY_CFG_ASE_CPU_NUMBER=<Available physical memory for ASE in MB>
# Required if SY_CFG_ASE_OPT_ENABLE=true
# SY_CFG_ASE_MEMORY=<Available number of CPU for ASE>
# Required if SY_CFG_ASE_OPT_ENABLE=true
# SY_CFG_ASE_LANG=<Default language in ASE>
# Set this to null to use default language.
# SY_CFG_ASE_CHARSET=<Default character set in ASE>
# Set this to null to use default character set.
# SY_CFG_ASE_SORTORDER=<Default sort order in ASE>
# Set this to null to use default sort order.
# SY_CFG_ASE_SAMPLE_DB=<true|false>
# Determines whether to create pubs2 and pubs3 sample databases.
#
SY_CFG_ASE_SERVER_NAME=PRIMARY_ASE
#SY_CFG_ASE_HOST_NAME=<Local host name or canonical host name>
SY_CFG_ASE_PORT_NUMBER=5000
SY_CFG_ASE_APPL_TYPE=MIXED
SY_CFG_ASE_PAGESIZE=16k
ASE_ADDL_CMD_ARG=
SY_CFG_ASE_PASSWORD=<password>
SY_CFG_ASE_MASTER_DEV_NAME=/data/ASE/data/master.dat
SY_CFG_ASE_MASTER_DEV_SIZE=1000
SY_CFG_ASE_MASTER_DB_SIZE=500
SY_CFG_ASE_SYBPROC_DEV_NAME=/data/ASE/data/sysprocs.dat
SY_CFG_ASE_SYBPROC_DEV_SIZE=200
SY_CFG_ASE_SYBPROC_DB_SIZE=200
SY_CFG_ASE_SYBTEMP_DEV_NAME=/data/ASE/data/sybsysdb.dat
SY_CFG_ASE_SYBTEMP_DEV_SIZE=24
SY_CFG_ASE_SYBTEMP_DB_SIZE=24
SY_CFG_ASE_ERROR_LOG=/data/ASE/PRIMARY_ASE.log
CFG_REMOTE_AND_CONTROL_AGENT=false
ENABLE_COCKPIT_MONITORING=false
SY_CFG_ASE_PCI_ENABLE=false
SY_CFG_ASE_PCI_DEV_NAME=
SY_CFG_ASE_PCI_DEV_SIZE=
SY_CFG_ASE_PCI_DB_SIZE=
SY_CFG_ASE_AMC_ENABLE=true
SY_CFG_ASE_AMC_PORT_NUMBER=8080
SY_CFG_ASE_TEMP_DEV_NAME=/data/ASE/data/tempdbdev.dat
SY_CFG_ASE_TEMP_DEV_SIZE=1000
SY_CFG_ASE_TEMP_DB_SIZE=1000
SY_CFG_ASE_OPT_ENABLE=true
SY_CFG_ASE_CPU_NUMBER=8
SY_CFG_ASE_MEMORY=8192
SY_CFG_ASE_LANG=us_english
SY_CFG_ASE_CHARSET=utf8
SY_CFG_ASE_SORTORDER=utf8bin
SY_CFG_ASE_SAMPLE_DB=true

#Configure New Backup Server
#---------------------------
# If SY_CONFIG_BS_SERVER=true, below properties are required:
#
# SY_CFG_BS_SERVER_NAME=<Backup Server name>
# SY_CFG_BS_PORT_NUMBER=<Backup Server port number>
# SY_CFG_BS_ERROR_LOG=<Backup Server error log>
# SY_CFG_BS_ALLOW_HOSTS=<Comma separated list of hosts allow to connect to this Backup Server>
# BS_ADDL_CMD_ARG=<Additional command line arguments to Backup Server>
#
SY_CFG_BS_SERVER_NAME=PRIMARY_ASE_BS
SY_CFG_BS_PORT_NUMBER=5001
SY_CFG_BS_ERROR_LOG=/data/ASE/PRIMARY_ASE_BS.log
SY_CFG_BS_ALLOW_HOSTS=
BS_ADDL_CMD_ARG=

#Configure New XP Server
#-----------------------
# If SY_CONFIG_XP_SERVER=true, below properties are required:
#
# SY_CFG_XP_SERVER_NAME=<XP Server name>
# The name must be "<ASE server name (SY_CFG_ASE_SERVER_NAME) in uppercase>_XP" format.
# SY_CFG_XP_PORT_NUMBER=<XP Server port number>
# SY_CFG_XP_ERROR_LOG=<XP Server error log>
#
SY_CFG_XP_SERVER_NAME=PRIMARY_ASE_XP
SY_CFG_XP_PORT_NUMBER=5002
SY_CFG_XP_ERROR_LOG=/data/ASE/PRIMARY_ASE_XP.log

#Configure New Job Scheduler
#---------------------------
# If SY_CONFIG_JS_SERVER=true, below properties are required:
#
# SY_CFG_JS_SERVER_NAME=<Job Scheduler Agent name>
# SY_CFG_JS_PORT_NUMBER=<Job Scheduler Agent port number>
# SY_CFG_JS_MANAG_DEV_NAME=<SAP ASE management device name>
# SY_CFG_JS_MANAG_DEV_SIZE=<SAP ASE management device size in MB>
# SY_CFG_JS_MANAG_DB_SIZE=<SAP ASE management database size in MB>
#
SY_CFG_JS_SERVER_NAME=PRIMARY_ASE_JS
SY_CFG_JS_PORT_NUMBER=4900
SY_CFG_JS_ERROR_LOG=/data/ASE/PRIMARY_ASE_JS.log
SY_CFG_JS_MANAG_DEV_NAME=/data/ASE/data/sybmgmtdb.dat
SY_CFG_JS_MANAG_DEV_SIZE=80
SY_CFG_JS_MANAG_DB_SIZE=80

#Configure Self Management
#-------------------------
# If SY_CONFIG_SM_SERVER=true, below properties are required:
#
# SY_CFG_SM_USER_NAME=<Self Management user name>
# SY_CFG_SM_PASSWORD=<Self Management user password>
#
SY_CFG_SM_USER_NAME=sa
SY_CFG_SM_PASSWORD=<password>

#ASE HADR Setup Site
#-------------------
# If SY_CONFIG_HADR_SERVER=TRUE, below properties are required:
#
# HADR_CLUSTER_ID=<ID that identifies this cluster. Value must be 3 characters in length>
# HADR_SETUP_SITE=<primary|companion>
# Which site being configured
# HADR_SYNC_MODE=<sync|async>
# How data is replicated
#
HADR_CLUSTER_ID=DEM
HADR_SETUP_SITE=primary
HADR_SYNC_MODE=sync

#ASE HADR on Primary Site
#--------------------------
# ASE and SRS servers on this (primary) site.
#
HADR_PRIMARY_ASE_HOST_NAME=>primary node name<
HADR_PRIMARY_SITE_NAME=>primary site name<
HADR_PRIMARY_ASE_SERVER_NAME=PRIMARY_ASE
HADR_PRIMARY_ASE_SERVER_PORT=5000
HADR_PRIMARY_BS_SERVER_NAME=PRIMARY_ASE_BS
HADR_PRIMARY_BS_SERVER_PORT=5001
HADR_PRIMARY_BS_DUMP_DIR=/data/ASE/dump
HADR_PRIMARY_RMA_RMI_PORT=7000
HADR_PRIMARY_RMA_TDS_PORT=7001
HADR_PRIMARY_SRS_PORT=5005
HADR_PRIMARY_SRS_DEVICE_BUFFER_DIR=/data/SRS/data
HADR_PRIMARY_SRS_DEVICE_BUFFER_SIZE=8192
# For synchronous replication, recommend path to an SSD
# (solid state drive) or other type of fast read/write storage device.
HADR_PRIMARY_SRS_PERSISTENT_QUEUE_DIR=/data/SRS/ssd
HADR_PRIMARY_SRS_PERSISTENT_QUEUE_SIZE=8000

#Users for ASE HADR
#------------------
# Logins for HADR. These properties values must be same
# on both primary and companions sites.
#
# HADR_MAINTENANCE_USER=<ASE HADR maintenance user>
# HADR_MAINTENANCE_PASSWORD=<ASE HADR maintenance user password>
# RMA_ADMIN_USER=<RMA administrator user>
# RMA_ADMIN_PASSWORD=<RMA administrator password>
#
ASE_SA_USER=sa
ASE_SA_PASSWORD=<password>
HADR_MAINTENANCE_USER=DR_maint
HADR_MAINTENANCE_PASSWORD=<password>
RMA_ADMIN_USER=DR_admin
RMA_ADMIN_PASSWORD=<password>

#Replicate Databases in ASE HADR
#-------------------------------
# User databases to create and setup for replication.
# The database names and sizes must be same on both
# primary and companions sites.
#
# HADR_USER_DB_[x]=<Databases that will participate in replication>
# HADR_USER_DB_MATERIALIZE_[x]=<"auto" materialize database to companion>
#
# HADR_PRIMARY_DATA_DEVICE_CREATE_[x]_[y]=<logical device>,<physical device path>,<device size in MB>
# HADR_PRIMARY_LOG_DEVICE_CREATE_[x]_[y]=<logical device>,<physical device path>,<device size in MB>
#

#ASE HADR Secondary Site
#-----------------------
#
# HADR_IS_SECONDARY_SITE_SETUP=<Is secondary site setup? true or false>
#
HADR_IS_SECONDARY_SITE_SETUP=false

#ASE HADR on Companion (Secondary) Site
#------------------------------------
# ASE and SRS servers on secondary (companion) site.
#
# If HADR_IS_SECONDARY_SITE_SETUP=true, below properties are required:
#
HADR_COMPANION_ASE_HOST_NAME=<companion node name>
HADR_COMPANION_SITE_NAME=<companion site name>
HADR_COMPANION_ASE_INSTALL_DIR=/opt/sybase/ASE
HADR_COMPANION_ASE_SERVER_NAME=COMPANION_ASE
HADR_COMPANION_ASE_SERVER_PORT=5000
HADR_COMPANION_BS_SERVER_NAME=COMPANION_ASE_BS
HADR_COMPANION_BS_SERVER_PORT=5001
HADR_COMPANION_BS_DUMP_DIR=/data/ASE/dump
HADR_COMPANION_RMA_RMI_PORT=7000
HADR_COMPANION_RMA_TDS_PORT=7001
HADR_COMPANION_SRS_PORT=5005
HADR_COMPANION_SRS_DEVICE_BUFFER_DIR=/data/SRS/data
HADR_COMPANION_SRS_DEVICE_BUFFER_SIZE=8192
# For synchronous replication, recommend path to an SSD
# (solid state drive) or other type of fast read/write storage device.
HADR_COMPANION_SRS_PERSISTENT_QUEUE_DIR=/data/SRS/ssd
HADR_COMPANION_SRS_PERSISTENT_QUEUE_SIZE=8000

 

Sample HADR Companion Response File
##############################################################################
# HADR sample responses file for SAP Adaptive Server Enterprise 16.0 SP04.
#
# This sample responses file installs and prepares companion site for HADR.
#
# Following servers are configured:
#
# SAP ASE (with HADR)
# Backupserver
# XP server
# Job Scheduler (with Self Management)
#
##############################################################################

#Validate Response File
#----------------------
#
RUN_SILENT=true

#Choose Install Folder
#---------------------
# USER_INSTALL_DIR=<Destination directory in absolute path>
#
USER_INSTALL_DIR=/opt/sybase/ASE

#Install older version
#---------------------
# INSTALL_OLDER_VERSION=<true|false>.
# This determines whether installer can overwrite newer version.
#
INSTALL_OLDER_VERSION=false

#Choose Update Installation
#--------------------------
# DO_UPDATE_INSTALL=<true|false>.
# This determines if the installer selects and applies
# updates to the installed product/features.
# DO_UPDATE_INSTALL_HADR_COMPONENT=<ASE|DM|ALL>
# Which component to update for ASE HADR.
# This is only valid if DO_UPDATE_INSTALL=true and
# installed directory has ASE HADR.
# Valid values are:
# -----------------
# ASE --> Update only the SAP ASE components in rolling upgrade
# DM --> Update only the Data Movement component in rolling upgrade
# ALL --> Update all components
#
DO_UPDATE_INSTALL=false

#Choose Install Set
#------------------
# CHOSEN_INSTALL_SET=<Typical|TypicalASEHADR|Full|Custom>
# CHOSEN_FEATURE_LIST=<Features you want to install>
# Valid values are:
# -----------------
# fase_srv --> SAP Adaptive Server Enterprise
# fase_amc --> Administration and Management Console
# fase_hadr --> SAP ASE Data Movement for HADR
# Available on:
# Itanium/HP-UX 64-bit
# IBM/AIX 64-bit
# x86-64/Linux 64-bit
# SPARC/Solaris 64-bit
# x86-64/Windows 64-bit
# fase_add_lm --> Additional SAP ASE Language Modules
# fopen_client --> Open Client
# fdblib --> DB-Library
# fesql_c_lang --> Embedded SQL/C
# fesql_cobol_lang --> Embedded SQL/Cobol
# fxa --> XA Interface Library for SAP ASE Distributed Transaction Manager
# Available on:
# Itanium/HP-UX 64-bit
# IBM/AIX 64-bit
# x86-64/Linux 64-bit
# SPARC/Solaris 64-bit
# x86-64/Solaris 64-bit
# x86-64/Windows 64-bit
# fconn_add_lm --> Additional Connectivity Language Modules
# fjconnect160 --> jConnect 16.0 for JDBC
# fodbcl --> SAP ASE ODBC Driver
# fodata_ase --> OData Server for SAP ASE
# Available on:
# x86-64/Linux 64-bit
# x86-64/Windows 64-bit
# fdbisql --> Interactive SQL
# fqptune --> QPTune
# fsysam_util --> SySAM License Utilities
# fsysam_server --> SySAM License Server
# fscc_server --> Cockpit
# fasecmap --> SAP ASE Cockpit
# fase_cagent --> Remote Command and Control Agent for SAP ASE
# fconn_python --> SAP ASE extension module for Python
# fconn_perl --> SAP ASE database driver for PERL
# Available on:
# x86-64/Linux 64-bit
# x86-64/Windows 64-bit
# fconn_php --> SAP ASE extension module for PHP
#
# Notes:
# - If DO_UPDATE_INSTALL=true, CHOSEN_INSTALL_SET and CHOSEN_FEATURE_LIST
# are ignored.
# - If CHOSEN_INSTALL_SET is set to "Typical", "TypicalASEHADR", or "Full", do not set
# CHOSEN_FEATURE_LIST.
#

CHOSEN_INSTALL_SET=Custom
CHOSEN_FEATURE_LIST=fase_srv,fopen_client,fdblib,fconn_python,fconn_perl,fconn_php,fjconnect160,fodbcl,fdbisql,fqptune,fsysam_util,fase_hadr,fase_amc

#SAP Host Agent
#--------------
# Install SAP Host Agent for ASE HADR.
#
# You need root permission to install
# SAP Host Agent. Enter your password for
# installer to execute "sudo" command to
# install SAP Host Agent. If you do not
# have "sudo" permission, set
# INSTALL_SAP_HOST_AGENT=FALSE and ask
# your system administrator to manually
# install SAP Host Agent at later time.
#
# Notes:
# - You also can set SUDO_PASSWORD property value
# through SUDO_PASSWORD environment variable.
#
INSTALL_SAP_HOST_AGENT=TRUE
SUDO_PASSWORD=<password>

#Choose Product License Type
#---------------------------
# SYBASE_PRODUCT_LICENSE_TYPE=<license|evaluate|express>
# This is the End User License Agreement (EULA) you agreed to when run
# installer with "-DAGREE_TO_SAP_LICENSE=true" argument.
#
# Note:
# - 'evaluate' and 'express' only available on some platforms.
#
SYBASE_PRODUCT_LICENSE_TYPE=license

#Choose Sybase Software Asset Management License
#-----------------------------------------------
# SYSAM_LICENSE_SOURCE=<license_file|existing_license_server|proceed_without_license>
# SYSAM_LICENSE_FILE_PATHNAME=<license key file path>
# Required when SYSAM_LICENSE_SOURCE is set to 'license_file'.
# SYSAM_EXISTING_LICENSE_SERVER_HOSTNAME=<license key server name>
# Required when SYSAM_LICENSE_SOURCE is set to 'existing_license_server'.
# SYSAM_EXISTING_LICENSE_SERVER_PORTNUMBER=<license key server port number>
# Set this to null for default port number.
#
SYSAM_LICENSE_SOURCE=existing_license_server
SYSAM_LICENSE_FILE_PATHNAME=
SYSAM_EXISTING_LICENSE_SERVER_HOSTNAME=<license server host FQDN>
SYSAM_EXISTING_LICENSE_SERVER_PORTNUMBER=27000

#Choose SYSAM Product Edtion and License Type
#--------------------------------------------
# SYSAM_PRODUCT_EDITION=<Enterprise Edition|Small Business Edition|Unknown>
# SYSAM_LICENSE_TYPE=<License type>
# Valid SYSAM_LICENSE_TYPE value for SYSAM_PRODUCT_EDITION='Enterprise Edition':
# CP : CPU License
# SF : Standby CPU License
# SR : Server License
# SV : Standby Server License
# DT : Development and Test License
# EV : Evaluation License
# OT : Other License
# SS : Standalone Seat License
# DV : Developer License
# NA : Not Applicable or Other License
# AC : OEM Application Deployment CPU License
# BC : OEM Application Deployment Standby CPU License
# AR : OEM Application Deployment Server License
# BR : OEM Application Deployment Standby Server License
# AO : OEM Application Deployment Other License
# LP : Application Specific CPU License
# LF : Application Specific Standby CPU License
# LR : Application Specific Server License
# LV : Application Specific Standby Server License
# Unknown
# Valid SYSAM_LICENSE_TYPE value for SYSAM_PRODUCT_EDITION='Small Business Edition':
# CP : CPU License
# SF : Standby CPU License
# SR : Server License
# SV : Standby Server License
# DT : Development and Test License
# EV : Evaluation License
# OT : Other License
# SS : Standalone Seat License
# DV : Developer License
# NA : Not Applicable or Other License
# AC : OEM Application Deployment CPU License
# BC : OEM Application Deployment Standby CPU License
# AR : OEM Application Deployment Server License
# BR : OEM Application Deployment Standby Server License
# AO : OEM Application Deployment Other License
# LP : Application Specific CPU License
# LF : Application Specific Standby CPU License
# LR : Application Specific Server License
# LV : Application Specific Standby Server License
# DH : Development and Testing Chip License
# CH : Chip License
# SH : Standby Chip License
# AH : Application Deployment Chip License
# BH : Application Deployment Standby Chip License
# LH : Application Specific Chip License
# LI : Application Specific Standby Chip License
# Unknown
# Valid SYSAM_LICENSE_TYPE value for SYSAM_PRODUCT_EDITION=Unknown
# None
#
SYSAM_PRODUCT_EDITION=Enterprise Edition
SYSAM_LICENSE_TYPE=CP : CPU License

#Software Asset Management Notification Setting
#----------------------------------------------
# SYSAM_NOTIFICATION_ENABLE=<true|false>
# Enable SySAM email notification
# SYSAM_NOTIFICATION_SMTP_HOSTNAME=<SMTP server host name>
# Required if SYSAM_NOTIFICATION_ENABLE=true
# SYSAM_NOTIFICATION_SMTP_PORTNUMBER=<SMTP server port number>
# Required if SYSAM_NOTIFICATION_ENABLE=true
# SYSAM_NOTIFICATION_SENDER_EMAIL=<Sender email>
# Required if SYSAM_NOTIFICATION_ENABLE=true
# SYSAM_NOTIFICATION_RECIPIENT_EMAIL=<Recipient emails>
# Required if SYSAM_NOTIFICATION_ENABLE=true
# SYSAM_NOTIFICATION_EMAIL_SEVERITY=<INFORMATIONAL|WARNING|ERROR>
# Required if SYSAM_NOTIFICATION_ENABLE=true
#
SYSAM_NOTIFICATION_ENABLE=false
SYSAM_NOTIFICATION_SMTP_HOSTNAME=smtp
SYSAM_NOTIFICATION_SMTP_PORTNUMBER=25
SYSAM_NOTIFICATION_SENDER_EMAIL=sybase
SYSAM_NOTIFICATION_RECIPIENT_EMAIL=c.baker@sap.com
SYSAM_NOTIFICATION_EMAIL_SEVERITY=NONE

#Choose Update SAP ASE
#-----------------------------
# DO_UPDATE_ASE_SERVER=<true|false>
# This property determines whether to update the existing SAP ASE.
# It is only valid if DO_UPDATE_INSTALL=true.
# UPDATE_ASE_SERVER_NAME_[n]=<SAP ASE name to update>
# UPDATE_ASE_PASSWORD_[n]=<SAP ASE SA password>
#
# Notes:
# - You also can set UPDATE_ASE_SERVER_NAME_[n] and UPDATE_ASE_PASSWORD_[n]
# property values through the environment variables UPDATE_ASE_SERVER_NAME_[n]
# and UPDATE_ASE_PASSWORD_[n], respectively.
# - If the ASE password is null, set UPDATE_ASE_SERVER_NAME_[n] value to "NA".
#
DO_UPDATE_ASE_SERVER=false

#Configure New Servers
#---------------------
# SY_CONFIG_ASE_SERVER=<true|false>
# This property determines whether to configure SAP ASE.
# SY_CONFIG_HADR_SERVER=<true|false>
# This property determines whether to setup ASE HADR.
# Available on:
# Itanium/HP-UX 64-bit
# Power/AIX 64-bit
# x86-64/Linux 64-bit
# SPARC/Solaris 64-bit
# x86-64/Windows 64-bit
# SY_CONFIG_BS_SERVER=<true|false>
# This property determines whether to configure Backup Server.
# SY_CONFIG_XP_SERVER=<true|false>
# This property determines whether to configure XP Server.
# SY_CONFIG_JS_SERVER=<true|false>
# This property determines whether to configure Job Scheduler Agent.
# SY_CONFIG_SM_SERVER=<true|false>
# This property determines whether to enable Self Management.
# SY_CONFIG_SCC_SERVER=<true|false>
# This property determines whether to configure Cockpit.
#
# Notes:
# - These properties are ignored if you set DO_UPDATE_INSTALL=true.
# See above for updating the existing ASE servers.
# - If SY_CONFIG_BS_SERVER, SY_CONFIG_XP_SERVER, and/or SY_CONFIG_JS_SERVER,
# are set to "true", SY_CONFIG_ASE_SERVER must also set to "true".
# - If SY_CONFIG_HADR_SERVER=true, SY_CONFIG_ASE_SERVER and SY_CONFIG_BS_SERVER
# must also set to "true".
# - If SY_CONFIG_SM_SERVER=true, SY_CONFIG_JS_SERVER must also set to "true".
#
SY_CONFIG_ASE_SERVER=true
SY_CONFIG_HADR_SERVER=true
SY_CONFIG_BS_SERVER=true
SY_CONFIG_XP_SERVER=true
SY_CONFIG_JS_SERVER=true
SY_CONFIG_SM_SERVER=false
SY_CONFIG_SCC_SERVER=false

#Configure Servers with Different User Account
#---------------------------------------------
# If SY_CFG_USER_ACCOUNT_CHANGE=yes, below properties are required:
#
# SY_CFG_USER_ACCOUNT_NAME=<user name>
# SY_CFG_USER_ACCOUNT_PASSWORD=<user password>
#
SY_CFG_USER_ACCOUNT_CHANGE=no
SY_CFG_USER_ACCOUNT_NAME=
SY_CFG_USER_ACCOUNT_PASSWORD=

#User Configuration Data Directory
#---------------------------------
SY_CFG_USER_DATA_DIRECTORY=/opt/sybase/ASE

#Configure New SAP ASE
#-----------------------------
# If SY_CONFIG_ASE_SERVER=true, below properties are required:
#
# SY_CFG_ASE_SERVER_NAME=<SAP ASE name>
# SY_CFG_ASE_PORT_NUMBER=<SAP ASE port number>
# SY_CFG_ASE_APPL_TYPE=<MIXED|OLTP|DSS>
# This property describes the intended use of the ASE server:
# OLTP --> Online Transaction Proccessing
# DSS --> Decision Support Systems
# Mixed --> OLTP/DSS
# SY_CFG_ASE_PAGESIZE=<2k|4k|8k|16k>
# SAP ASE page size
# ASE_ADDL_CMD_ARG=<Additional command line arguments to ASE>
# SY_CFG_ASE_PASSWORD=<SA's password>
# SY_CFG_ASE_MASTER_DEV_NAME=<Master device name>
# SY_CFG_ASE_MASTER_DEV_SIZE=<Master device size in MB>
# SY_CFG_ASE_MASTER_DB_SIZE=<Master database size in MB>
# SY_CFG_ASE_SYBPROC_DEV_NAME=<System procedure device name>
# SY_CFG_ASE_SYBPROC_DEV_SIZE=<System procedure device size in MB>
# SY_CFG_ASE_SYBPROC_DB_SIZE=<System procedure database size in MB>
# SY_CFG_ASE_SYBTEMP_DEV_NAME=<System device name for two phase commit>
# SY_CFG_ASE_SYBTEMP_DEV_SIZE=<System device size in MB>
# SY_CFG_ASE_SYBTEMP_DB_SIZE=<System database size in MB>
# SY_CFG_ASE_ERROR_LOG=<Error log>
# CFG_REMOTE_AND_CONTROL_AGENT=<true|false>
# Configures Remote Command and Control Agent for SAP ASE.
# This is only valid if Remote Command and Control Agent
# for SAP ASE is installed.
# ENABLE_COCKPIT_MONITORING=<true|false>
# Enable SAP ASE for SAP ASE Cockpit monitoring.
# This is only valid if SAP ASE Cockpit is installed.
# COCKPIT_TECH_USER=<SAP ASE Cockpit technical user>
# Required if ENABLE_COCKPIT_MONITORING=true.
# COCKPIT_TECH_USER_PASSWORD=<SAP ASE Cockpit technical user password>
# Required if ENABLE_COCKPIT_MONITORING=true.
# SY_CFG_ASE_PCI_ENABLE=<true|false>
# This property determines if Java in database feature is enabled.
# SY_CFG_ASE_PCI_DEV_NAME=<Device name for "sybpcidb" database>
# Required if SY_CFG_ASE_PCI_ENABLE=true
# SY_CFG_ASE_PCI_DEV_SIZE=<PCI device size in MB>
# Required if SY_CFG_ASE_PCI_ENABLE=true
# SY_CFG_ASE_PCI_DB_SIZE=<PCI database size in MB>
# Required if SY_CFG_ASE_PCI_ENABLE=true
# SY_CFG_ASE_AMC_ENABLE=<true|false>
# This property determines if AMC feature is enabled.
# SY_CFG_ASE_AMC_PORT_NUMBER=<AMC port number>
# Required if SY_CFG_ASE_AMC_ENABLE=true
# SY_CFG_ASE_TEMP_DEV_NAME=<Device for temporary database>
# SY_CFG_ASE_TEMP_DEV_SIZE=<Temporary device size in MB>
# SY_CFG_ASE_TEMP_DB_SIZE=<Temporary database size in MB>
# SY_CFG_ASE_OPT_ENABLE=<true|false>
# This property determines if it should optimized the SAP ASE.
# SY_CFG_ASE_CPU_NUMBER=<Available physical memory for ASE in MB>
# Required if SY_CFG_ASE_OPT_ENABLE=true
# SY_CFG_ASE_MEMORY=<Available number of CPU for ASE>
# Required if SY_CFG_ASE_OPT_ENABLE=true
# SY_CFG_ASE_LANG=<Default language in ASE>
# Set this to null to use default language.
# SY_CFG_ASE_CHARSET=<Default character set in ASE>
# Set this to null to use default character set.
# SY_CFG_ASE_SORTORDER=<Default sort order in ASE>
# Set this to null to use default sort order.
# SY_CFG_ASE_SAMPLE_DB=<true|false>
# Determines whether to create pubs2 and pubs3 sample databases.
#
SY_CFG_ASE_SERVER_NAME=COMPANION_ASE
#SY_CFG_ASE_HOST_NAME=<Local host name or canonical host name>
SY_CFG_ASE_PORT_NUMBER=5000
SY_CFG_ASE_APPL_TYPE=MIXED
SY_CFG_ASE_PAGESIZE=16k
ASE_ADDL_CMD_ARG=
SY_CFG_ASE_PASSWORD=<password>
SY_CFG_ASE_MASTER_DEV_NAME=/data/ASE/data/master.dat
SY_CFG_ASE_MASTER_DEV_SIZE=1000
SY_CFG_ASE_MASTER_DB_SIZE=500
SY_CFG_ASE_SYBPROC_DEV_NAME=/data/ASE/data/sysprocs.dat
SY_CFG_ASE_SYBPROC_DEV_SIZE=200
SY_CFG_ASE_SYBPROC_DB_SIZE=200
SY_CFG_ASE_SYBTEMP_DEV_NAME=/data/ASE/data/sybsysdb.dat
SY_CFG_ASE_SYBTEMP_DEV_SIZE=24
SY_CFG_ASE_SYBTEMP_DB_SIZE=24
SY_CFG_ASE_ERROR_LOG=/data/ASE/COMPANION_ASE.log
CFG_REMOTE_AND_CONTROL_AGENT=false
ENABLE_COCKPIT_MONITORING=false
SY_CFG_ASE_PCI_ENABLE=false
SY_CFG_ASE_PCI_DEV_NAME=
SY_CFG_ASE_PCI_DEV_SIZE=
SY_CFG_ASE_PCI_DB_SIZE=
SY_CFG_ASE_AMC_ENABLE=false
SY_CFG_ASE_AMC_PORT_NUMBER=8080
SY_CFG_ASE_TEMP_DEV_NAME=/data/ASE/data/tempdbdev.dat
SY_CFG_ASE_TEMP_DEV_SIZE=1000
SY_CFG_ASE_TEMP_DB_SIZE=1000
SY_CFG_ASE_OPT_ENABLE=true
SY_CFG_ASE_CPU_NUMBER=8
SY_CFG_ASE_MEMORY=8192
SY_CFG_ASE_LANG=us_english
SY_CFG_ASE_CHARSET=utf8
SY_CFG_ASE_SORTORDER=utf8bin
SY_CFG_ASE_SAMPLE_DB=true

#Configure New Backup Server
#---------------------------
# If SY_CONFIG_BS_SERVER=true, below properties are required:
#
# SY_CFG_BS_SERVER_NAME=<Backup Server name>
# SY_CFG_BS_PORT_NUMBER=<Backup Server port number>
# SY_CFG_BS_ERROR_LOG=<Backup Server error log>
# SY_CFG_BS_ALLOW_HOSTS=<Comma separated list of hosts allow to connect to this Backup Server>
# BS_ADDL_CMD_ARG=<Additional command line arguments to Backup Server>
#
SY_CFG_BS_SERVER_NAME=COMPANION_ASE_BS
SY_CFG_BS_PORT_NUMBER=5001
SY_CFG_BS_ERROR_LOG=/data/ASE/COMPANION_ASE_BS.log
SY_CFG_BS_ALLOW_HOSTS=
BS_ADDL_CMD_ARG=

#Configure New XP Server
#-----------------------
# If SY_CONFIG_XP_SERVER=true, below properties are required:
#
# SY_CFG_XP_SERVER_NAME=<XP Server name>
# The name must be "<ASE server name (SY_CFG_ASE_SERVER_NAME) in uppercase>_XP" format.
# SY_CFG_XP_PORT_NUMBER=<XP Server port number>
# SY_CFG_XP_ERROR_LOG=<XP Server error log>
#
SY_CFG_XP_SERVER_NAME=COMPANION_ASE_XP
SY_CFG_XP_PORT_NUMBER=5002
SY_CFG_XP_ERROR_LOG=/data/ASE/COMPANION_ASE_XP.log

#Configure New Job Scheduler
#---------------------------
# If SY_CONFIG_JS_SERVER=true, below properties are required:
#
# SY_CFG_JS_SERVER_NAME=<Job Scheduler Agent name>
# SY_CFG_JS_PORT_NUMBER=<Job Scheduler Agent port number>
# SY_CFG_JS_MANAG_DEV_NAME=<SAP ASE management device name>
# SY_CFG_JS_MANAG_DEV_SIZE=<SAP ASE management device size in MB>
# SY_CFG_JS_MANAG_DB_SIZE=<SAP ASE management database size in MB>
#
SY_CFG_JS_SERVER_NAME=COMPANION_ASE_JS
SY_CFG_JS_PORT_NUMBER=4900
SY_CFG_JS_ERROR_LOG=/data/ASE/COMPANION_ASE_JS.log
SY_CFG_JS_MANAG_DEV_NAME=/data/ASE/data/sybmgmtdb.dat
SY_CFG_JS_MANAG_DEV_SIZE=80
SY_CFG_JS_MANAG_DB_SIZE=80

#Configure Self Management
#-------------------------
# If SY_CONFIG_SM_SERVER=true, below properties are required:
#
# SY_CFG_SM_USER_NAME=<Self Management user name>
# SY_CFG_SM_PASSWORD=<Self Management user password>
#
SY_CFG_SM_USER_NAME=sa
SY_CFG_SM_PASSWORD=Sybase1234

#ASE HADR Setup Site
#-------------------
# If SY_CONFIG_HADR_SERVER=TRUE, below properties are required:
#
# HADR_CLUSTER_ID=<ID that identifies this cluster. Value must be 3 characters in length>
# HADR_SETUP_SITE=<primary|companion>
# Which site being configured
# HADR_SYNC_MODE=<sync|async>
# How data is replicated
#
HADR_CLUSTER_ID=DEM
HADR_SETUP_SITE=companion
HADR_SYNC_MODE=sync

#ASE HADR on Companion Site
#--------------------------
# ASE and SRS servers on this (companion) site.
#
HADR_COMPANION_ASE_HOST_NAME=companionnode.openstack.na-ca-1.cloud.sap
HADR_COMPANION_SITE_NAME=London
HADR_COMPANION_ASE_SERVER_NAME=COMPANION_ASE
HADR_COMPANION_ASE_SERVER_PORT=5000
HADR_COMPANION_BS_SERVER_NAME=COMPANION_ASE_BS
HADR_COMPANION_BS_SERVER_PORT=5001
HADR_COMPANION_BS_DUMP_DIR=/data/ASE/dump
HADR_COMPANION_RMA_RMI_PORT=7000
HADR_COMPANION_RMA_TDS_PORT=7001
HADR_COMPANION_SRS_PORT=5005
HADR_COMPANION_SRS_DEVICE_BUFFER_DIR=/data/SRS/data
HADR_COMPANION_SRS_DEVICE_BUFFER_SIZE=8192
# For synchronous replication, recommend path to an SSD
# (solid state drive) or other type of fast read/write storage device.
HADR_COMPANION_SRS_PERSISTENT_QUEUE_DIR=/data/SRS/ssd
HADR_COMPANION_SRS_PERSISTENT_QUEUE_SIZE=8000

#Users for ASE HADR
#------------------
# Logins for HADR. These properties values must be same
# on both primary and companions sites.
#
# HADR_MAINTENANCE_USER=<ASE HADR maintenance user>
# HADR_MAINTENANCE_PASSWORD=<ASE HADR maintenance user password>
# RMA_ADMIN_USER=<RMA administrator user>
# RMA_ADMIN_PASSWORD=<RMA administrator password>
#
ASE_SA_USER=sa
ASE_SA_PASSWORD=<password>
HADR_MAINTENANCE_USER=DR_maint
HADR_MAINTENANCE_PASSWORD=<password>
RMA_ADMIN_USER=DR_admin
RMA_ADMIN_PASSWORD=<password>

#Replicate Databases in ASE HADR
#-------------------------------
# User databases to create and setup for replication.
# The database names and sizes must be same on both
# primary and companions sites.
#
# HADR_USER_DB_[x]=<Databases that will participate in replication>
# HADR_USER_DB_MATERIALIZE_[x]=<"auto" materialize database to companion>
#
# HADR_COMPANION_DATA_DEVICE_CREATE_[x]_[y]=<logical device>,<physical device path>,<device size in MB>
# HADR_COMPANION_LOG_DEVICE_CREATE_[x]_[y]=<logical device>,<physical device path>,<device size in MB>
#

#ASE HADR Secondary Site
#-----------------------
#
# HADR_IS_SECONDARY_SITE_SETUP=<Is secondary site setup? true or false>
#
HADR_IS_SECONDARY_SITE_SETUP=true

#ASE HADR on Primary (Secondary) Site
#------------------------------------
# ASE and SRS servers on secondary (primary) site.
#
# If HADR_IS_SECONDARY_SITE_SETUP=true, below properties are required:
#
HADR_PRIMARY_ASE_HOST_NAME=<primarynode name>
HADR_PRIMARY_SITE_NAME=<primery site name>
HADR_PRIMARY_ASE_INSTALL_DIR=/opt/sybase/ASE
HADR_PRIMARY_ASE_SERVER_NAME=PRIMARY_ASE
HADR_PRIMARY_ASE_SERVER_PORT=5000
HADR_PRIMARY_BS_SERVER_NAME=PRIMARY_ASE_BS
HADR_PRIMARY_BS_SERVER_PORT=5001
HADR_PRIMARY_BS_DUMP_DIR=/data/ASE/dump
HADR_PRIMARY_RMA_RMI_PORT=7000
HADR_PRIMARY_RMA_TDS_PORT=7001
HADR_PRIMARY_SRS_PORT=5005
HADR_PRIMARY_SRS_DEVICE_BUFFER_DIR=/data/SRS/data
HADR_PRIMARY_SRS_DEVICE_BUFFER_SIZE=8192
# For synchronous replication, recommend path to an SSD
# (solid state drive) or other type of fast read/write storage device.
HADR_PRIMARY_SRS_PERSISTENT_QUEUE_DIR=/data/SRS/ssd
HADR_PRIMARY_SRS_PERSISTENT_QUEUE_SIZE=8000

A few notes:

  • There will be an HADR cluster database created here.  It will default to the $SYBASE/%SYBASE_ASE/data folder.

  • ASE sa passwords must match

  • RMA DR_admin passwords must match

  • RMA DR_maint passwords must match


Both response files are similar.  The major difference is the line 'HADR_IS_SECONDARY_SITE_SETUP'.  This must be '=false' in the primary response file and '=true' in the secondary response file.

To install and set up the HADR primary and companion, 'cd' to the installation directory and run './setup.bin -r <response file>' on the primary and then the companion.  This will install the $SYBASE folder, create the various server instances and convert them to an HADR cluster.  The cluster database will be created in the $SYBASE/$SYBASE_ASE/data folder.

Method 2 - Add HADR to an existing ASE primary instance


This method can be used if an existing ASE instance is to be converted to HADR.

Since primary, companion (and the future DR instances) must have the same page size, character set and sort order, the primary ASE may need to be upgraded before continuing.

For this blog, the primary ASE and associated open servers will also be created, as will the companion ASE and associated open servers, using resource files and the srvbuildres/sqllocres utilities.  In the end we will first have two match ASE instances on separate nodes.

This method assumes that the software has already been installed in $SYBASE (in this case /opt/sybase/ASE).  When installing, ensure that the 'SAP Data Movement for HADR' component is also installed (requires 'Custom' or 'Typical SAP ASE, database always-on option' to be selected during installation).

Create the server instances on the primary and companion nodes using the resource files.  Examples provided:

Primary server resource files
### PRIMARY_ASE.rs ###
srvbuild.release_directory: /opt/sybase/ASE
srvbuild.product: sqlsrv
srvbuild.server_name: PRIMARY_ASE
srvbuild.sa_password: <password>
srvbuild.new_config: yes
srvbuild.do_add_server: yes
srvbuild.do_upgrade: no
srvbuild.network_protocol_list: tcp
srvbuild.network_hostname_list: <primary node host>
srvbuild.network_port_list: 5000
srvbuild.application_type: MIXED
srvbuild.server_page_size: 16k
srvbuild.master_device_physical_name: /data/ASE/data/master.dat
srvbuild.master_device_size: 300
srvbuild.master_database_size: 110
srvbuild.errorlog: /data/ASE/PRIMARY_ASE.log
srvbuild.sybsystemprocs_device_physical_name: /data/ASE/data/sysprocs.dat
srvbuild.sybsystemprocs_device_size: 200
srvbuild.sybsystemprocs_database_size: 200
srvbuild.sybsystemdb_device_physical_name: /data/ASE/data/sybsysdb.dat
srvbuild.sybsystemdb_device_size: 32
srvbuild.sybsystemdb_database_size: 32
srvbuild.tempdb_device_physical_name: /data/ASE/data/tempdbdev.dat
srvbuild.tempdb_device_size: 500
srvbuild.tempdb_database_size: 500
srvbuild.default_backup_server: PRIMARY_ASE_BS
srvbuild.addl_cmdline_parameters:
srvbuild.shmem: /data/ASE
srvbuild.do_configure_pci: no
srvbuild.sybpcidb_device_physical_name: /data/ASE/data/sybpcidbdev_data.dat
srvbuild.sybpcidb_device_size: 48
srvbuild.sybpcidb_database_size: 48
srvbuild.do_optimize_config: yes
srvbuild.avail_physical_memory: 8192
srvbuild.avail_cpu_num: 8
srvbuild.configure_remote_command_and_control_agent_ase: no
srvbuild.enable_ase_for_ase_cockpit_monitor: no
srvbuild.technical_user: tech_user
srvbuild.technical_user_password: <password>
srvbuild.addl_build_parameters:

### PRIMARY_ASE_BS.rs ###
srvbuild.release_directory: /opt/sybase/ASE
srvbuild.product: bsrv
srvbuild.server_name: PRIMARY_ASE_BS
srvbuild.new_config: yes
srvbuild.do_add_backup_server: yes
srvbuild.do_upgrade: no
srvbuild.network_protocol_list: tcp
srvbuild.network_hostname_list: <primary node host>
srvbuild.network_port_list: 5001
srvbuild.allow_hosts_list: USE_DEFAULT
srvbuild.language: USE_DEFAULT
srvbuild.character_set: USE_DEFAULT
srvbuild.tape_config_file: USE_DEFAULT
srvbuild.errorlog: /data/ASE/PRIMARY_ASE_BS.log
srvbuild.addl_cmdline_parameters:
srvbuild.related_sqlsrvr: PRIMARY_ASE
srvbuild.sa_login: sa
srvbuild.sa_password: <passowrd>

### PRIMARY_ASE_XP.rs ###
srvbuild.release_directory: /opt/sybase/ASE
srvbuild.product: xp
srvbuild.server_name: PRIMARY_ASE_XP
srvbuild.new_config: yes
srvbuild.do_add_monitor_server: yes
srvbuild.do_upgrade: no
srvbuild.network_protocol_list: tcp
srvbuild.network_hostname_list: <primary node host>
srvbuild.network_port_list: 5002
srvbuild.related_sqlsrvr: PRIMARY_ASE
srvbuild.sa_login: sa
srvbuild.sa_password: <password>

### PRIMARY_ASE_JSAGENT.rs ###
srvbuild.release_directory: /opt/sybase/ASE
srvbuild.product: js
srvbuild.server_name: PRIMARY_ASE_JSAGENT
srvbuild.new_config: yes
srvbuild.do_add_js_agent: yes
srvbuild.do_upgrade: no
srvbuild.network_protocol_list: tcp
srvbuild.network_hostname_list: <primary node host>
srvbuild.network_port_list: 4900
srvbuild.related_sqlsrvr: PRIMARY_ASE
srvbuild.errorlog: /data/ASE/PRIMARY_ASE_JSAGENT.log
srvbuild.sa_login: sa
srvbuild.sa_password: <password>
srvbuild.sybmgmtdb_device_physical_name: /data/ASE/data/sybmgmtdb.dat
srvbuild.sybmgmtdb_device_size: 80
srvbuild.sybmgmtdb_database_size: 80
srvbuild.do_configure_self_management: yes
srvbuild.self_management_login: sa
srvbuild.self_management_password: <password>
srvbuild.confirm_self_management_password: <password>

### sqlloc-PRIMARY_ASE.rs ###
sqlloc.release_directory: /opt/sybase/ASE
sqlloc.server_name: PRIMARY_ASE
sqlloc.sa_login: sa
sqlloc.sa_password: <password>
sqlloc.default_language: us_english
sqlloc.default_characterset: utf8
sqlloc.sort_order: utf8bin
sqlloc.language_install_list: us_english
sqlloc.language_remove_list: USE_DEFAULT
sqlloc.characterset_install_list: utf8,iso15,roman9
sqlloc.characterset_remove_list: USE_DEFAULT

 

Companion server resource files
### COMPANION_ASE.rs ###
srvbuild.release_directory: /opt/sybase/ASE
srvbuild.product: sqlsrv
srvbuild.server_name: COMPANION_ASE
srvbuild.sa_password: <passweord>
srvbuild.new_config: yes
srvbuild.do_add_server: yes
srvbuild.do_upgrade: no
srvbuild.network_protocol_list: tcp
srvbuild.network_hostname_list: <companion node>
srvbuild.network_port_list: 5000
srvbuild.application_type: MIXED
srvbuild.server_page_size: 16k
srvbuild.master_device_physical_name: /data/ASE/data/master.dat
srvbuild.master_device_size: 300
srvbuild.master_database_size: 110
srvbuild.errorlog: /data/ASE/COMPANION_ASE.log
srvbuild.sybsystemprocs_device_physical_name: /data/ASE/data/sysprocs.dat
srvbuild.sybsystemprocs_device_size: 200
srvbuild.sybsystemprocs_database_size: 200
srvbuild.sybsystemdb_device_physical_name: /data/ASE/data/sybsysdb.dat
srvbuild.sybsystemdb_device_size: 32
srvbuild.sybsystemdb_database_size: 32
srvbuild.tempdb_device_physical_name: /data/ASE/data/tempdbdev.dat
srvbuild.tempdb_device_size: 500
srvbuild.tempdb_database_size: 500
srvbuild.default_backup_server: COMPANION_ASE_BS
srvbuild.addl_cmdline_parameters:
srvbuild.shmem: /data/ASE
srvbuild.do_configure_pci: no
srvbuild.sybpcidb_device_physical_name: /data/ASE/data/sybpcidbdev_data.dat
srvbuild.sybpcidb_device_size: 48
srvbuild.sybpcidb_database_size: 48
srvbuild.do_optimize_config: yes
srvbuild.avail_physical_memory: 8192
srvbuild.avail_cpu_num: 8
srvbuild.configure_remote_command_and_control_agent_ase: no
srvbuild.enable_ase_for_ase_cockpit_monitor: no
srvbuild.technical_user: tech_user
srvbuild.technical_user_password: <password>
srvbuild.addl_build_parameters:

### COMPANION_ASE_BS.rs ###
srvbuild.release_directory: /opt/sybase/ASE
srvbuild.product: bsrv
srvbuild.server_name: COMPANION_ASE_BS
srvbuild.new_config: yes
srvbuild.do_add_backup_server: yes
srvbuild.do_upgrade: no
srvbuild.network_protocol_list: tcp
srvbuild.network_hostname_list: <companion node>
srvbuild.network_port_list: 5001
srvbuild.allow_hosts_list: USE_DEFAULT
srvbuild.language: USE_DEFAULT
srvbuild.character_set: USE_DEFAULT
srvbuild.tape_config_file: USE_DEFAULT
srvbuild.errorlog: /data/ASE/COMPANION_ASE_BS.log
srvbuild.addl_cmdline_parameters:
srvbuild.related_sqlsrvr: COMPANION_ASE
srvbuild.sa_login: sa
srvbuild.sa_password: <password>

### COMPANION_ASE_XP.rs ###
srvbuild.release_directory: /opt/sybase/ASE
srvbuild.product: xp
srvbuild.server_name: COMPANION_ASE_XP
srvbuild.new_config: yes
srvbuild.do_add_monitor_server: yes
srvbuild.do_upgrade: no
srvbuild.network_protocol_list: tcp
srvbuild.network_hostname_list: <companion node>
srvbuild.network_port_list: 5002
srvbuild.related_sqlsrvr: COMPANION_ASE
srvbuild.sa_login: sa
srvbuild.sa_password: <password>

### COMPANION_ASE_JSAGENT.rs ###
srvbuild.release_directory: /opt/sybase/ASE
srvbuild.product: js
srvbuild.server_name: COMPANION_ASE_JSAGENT
srvbuild.new_config: yes
srvbuild.do_add_js_agent: yes
srvbuild.do_upgrade: no
srvbuild.network_protocol_list: tcp
srvbuild.network_hostname_list: <companion node>
srvbuild.network_port_list: 4900
srvbuild.related_sqlsrvr: COMPANION_ASE
srvbuild.errorlog: /data/ASE/COMPANION_ASE_JSAGENT.log
srvbuild.sa_login: sa
srvbuild.sa_password: Sybase1234
srvbuild.sybmgmtdb_device_physical_name: /data/ASE/data/sybmgmtdb.dat
srvbuild.sybmgmtdb_device_size: 80
srvbuild.sybmgmtdb_database_size: 80
srvbuild.do_configure_self_management: yes
srvbuild.self_management_login: sa
srvbuild.self_management_password: <password>
srvbuild.confirm_self_management_password: <password>

### sqlloc-COMPANION_ASE.rs ###
sqlloc.release_directory: /opt/sybase/ASE
sqlloc.server_name: COMPANION_ASE
sqlloc.sa_login: sa
sqlloc.sa_password: <password>
sqlloc.default_language: us_english
sqlloc.default_characterset: utf8
sqlloc.sort_order: utf8bin
sqlloc.language_install_list: us_english
sqlloc.language_remove_list: USE_DEFAULT
sqlloc.characterset_install_list: utf8,iso15,roman9
sqlloc.characterset_remove_list: USE_DEFAULT

Once the servers have been built, the following setuphadr resource files can be run on the primary and companion respectively by running setuphadr:

$SYBASE/$SYBASE_ASE/bin/setuphadr <resource file>

HADR resource file for primary and companion:
###############################################################################
# Setup HADR sample response file for non-BS + 3rd node
#
# This sample responses file setup ASE HADR on
# hosts "primarynode" (primary) and "companionnode" (companion).
#
# Prerequisite :
# - New SAP ASE and Backup servers setup and started on "primarynode" and "companionnode".
# See HADR User Guide for requirements on SAP ASE servers.
# - Replication Management Agent (RMA) started on "primarynode" and "companionnode".
#
# Usage :
# 1. On primarynode (primary), run:
# $SYBASE/$SYBASE_ASE/bin/setuphadr <this_responses_file>
#
# 2. Change this response file properties:
# setup_site=COMP
# is_secondary_site_setup=true
#
# 3. On companionnode (companion), run
# $SYBASE/$SYBASE_ASE/bin/setuphadr <response_file_from_step_2>
#
#
###############################################################################

# ID that identifies this cluster
#
# Value must be unique,
# begin with a letter and
# 3 characters in length.
cluster_id=DEM

# Which site being configured
#
# Note:
# You need to set "<setup_site_value>.*"
# properties in this responses file.
setup_site=PRIM

# Set installation_mode
#
# Valid values: true, false
#
# If set to true, installation_mode will be set to "BS"
# If set to false, installation_mode will be set to "nonBS"
setup_bs=false

# This is for BusS only
# if set to true, DR admin user will be added to secure store
add_user_to_secure_store=false
# Adding user action will be executed by following user
#sid_admin_user=DEM_adm
#sid_admin_password=<password>

# true OR false
enable_ssl=false
# common name, take SYBASE for example
ssl_common_name=SYBASE
# If this ASE server has enabled SSL, if set to "true", ssl_private_key_file and ssl_public_key_file will be ignored
ase_ssl_enabled=true
# If we should enable SSL backupserver connections
enable_ssl_for_bs=true
# private key file
ssl_private_key_file=/tmp/hadr.key
# public key file
ssl_public_key_file=/tmp/hadr.crt
# root CA cert
# NOTE: if you're using self-signed cert, put your public key file here
ssl_ca_cert_file=/tmp/rootCA.pem
# ssl password
ssl_password=<password>

# Has the secondary site prepared for ASE HADR
#
# Valid values: true, false
#
# If set to true, "<secondary_setup_site_value>.*"
# properties must set in this responses file.
is_secondary_site_setup=false

# How data is replicated
#
# Valid values: sync, async
synchronization_mode=sync

# SAP ASE system administrator user/password
#
# setuphadr will prompt from standard input if not specified
ase_sa_user=sa
ase_sa_password=<password>

# BACKUP server system administrator user/password
#
bs_admin_user=sa
bs_admin_password=<password>

# ASE HADR maintenance user/password
#
# Password must have at least 6 characters
# setuphadr will prompt from standard input if not specified
hadr_maintenance_user=DR_maint
hadr_maintenance_password=<password>

# Replication Management Agent administrator user/password
#
# Password must have at least 6 characters
# setuphadr will prompt from standard input if not specified
rma_admin_user=DR_admin
rma_admin_password=<password>

# If we XA replication is enabled
#
# Valid values: true, false
xa_replication=false

# If we need to config and start Replication Management Agent
#
# Valid values: true, false
config_start_rma=true

# If disable referential constraints on HADR setups
#
# Valid values: true, false
disable_referential_constraints=false

# Databases that will participate in replication
# and "auto" materialize.
#
# If database doesn't exist in the SAP ASE, you need
# to specify <site>.ase_data_device_create_[x]_[y] and
# <site>.ase_log_device_create_[x]_[y] properties.
# See below.
#
# ASE HADR requires SAP ASE to have a database
# with cluster ID name (see "cluster_id" above).
# If you have not created this database, you can
# enter it here to have it created.

# cluster ID database
participating_database_1=DEM
materialize_participating_database_1=true

# user database
#participating_database_2=<userdb>
#materialize_participating_database_2=true

###############################################################################
# Site "PRIM" on host primarynode with primary role
###############################################################################

# Host name where SAP ASE run
#
# Enter fully qualified domain name (FQDN)
# if your sites are on different subnet.
PRIM.ase_host_name=primarynode

# We don't support ASE and SRS on different hosts yet
# This is virtual host name for SRS/RMA
# Optional property
#
# Enter fully qualified domain name (FQDN)
# if your sites are on different subnet.
PRIM.rma_host_name=primarynode

# Site name
#
# Enter value that identifies this site,
# like a geographical location.
# Value must be unique.
PRIM.site_name=Toronto

# Site role
#
# Enter the role of this site.
# Valid values: primary, companion
PRIM.site_role=primary

# directory where SAP ASE installed
PRIM.ase_release_directory=/opt/sybase/ASE

# User defined dm data dir for eRSSD
#PRIM.dm_database_file_directory=/data/SRS/data
#PRIM.dm_translog_file_directory=/data/SRS/data
#PRIM.dm_log_file_directory=/data/SRS/data
#PRIM.dm_config_file_directory=/opt/sybase/ASE/DM
#PRIM.dm_backup_file_directory_for_database=/data/ASE/dump

# Directory that stored SAP ASE user data files
# (interfaces, RUN_<server>, error log, etc. files).
# Do not set value if your user data files are in
# SAP ASE installed directory (ase_release_directory).
PRIM.ase_user_data_directory=/opt/sybase/ASE

PRIM.ase_server_name=PRIMARY_ASE
PRIM.ase_server_port=5000

PRIM.backup_server_name=PRIMARY_ASE_BS
PRIM.backup_server_port=5001

# Directory to store database dumps
# in materialization
#
# Backup server must able to access this directory
PRIM.backup_server_dump_directory=/data/ASE/dump

# Data & log devices to create the databases specified
# in "participating_database_[x]" properties. You do
# not need to specify these properties if the database(s)
# already exist in the SAP ASE server.
#
# ase_data_device_create_[x]_[y] - property to create data device
# ase_log_device_create_[x]_[y] - property to create log device
# where
# x is number in "participating_database_[x]" property
# y is number device to create
#
# Format: <logical_device_name>, <physical_device_path>, <size_in_MB>
#
# NOTE: Databases sizes on primary and companion
# SAP ASE must be the same.

# Device for cluster ID database "DEM" (See "participating_database_1" property)
# Database size = 25MB
# data device "DEM_data_dev" = 25MB
PRIM.ase_data_device_create_1_1=DEM_data_dev, /data/ASE/data/DEM_dev1.dat, 25

# Devices for database "userdb1" (See "participating_database_2" property)
# Database Size = 100MB
# data device 1 "db1_data_dev1" = 25MB
# data device 2 "db1_data_dev2" = 25MB
# data device 3 "db1_data_dev3" = 25MB
# log device 1 "db1_log_dev1" = 25MB
#PRIM.ase_data_device_create_2_1=db1_data_dev1, /host1_eng/ase/data/db1_dev1.dat, 25
#PRIM.ase_data_device_create_2_2=db1_data_dev2, /host1_eng/ase/data/db1_dev2.dat, 25
#PRIM.ase_data_device_create_2_3=db1_data_dev3, /host1_eng/ase/data/db1_dev3.dat, 25
#PRIM.ase_log_device_create_2_1=db1_log_dev1, /host1_eng/ase/data/db1_dev1.log, 25

# Port numbers for Replication Server and Replication Management Agent on host1
#
# In remote topology, these are the companion Replication Server and
# Replication Management Agent.
#
# See "rsge.bootstrap.tds.port.number" properties in
# <SAP ASE installed directory>/DM/RMA-16_0/instances/AgentContainer/config/bootstrap.prop

# for value
PRIM.rma_rmi_port=7000
PRIM.rma_tds_port=7001
#
# Starting port number to use when setup Replication Server.
# Make sure next two ports (+1 and +2) are also available for use.
PRIM.srs_port=5005

# Device buffer for Replication Server on host1
# Recommend size = 128 * N
# where N is the number of databases to replicate,
# including the master and cluster ID databases.
#
PRIM.device_buffer_dir=/data/SRS/data
PRIM.device_buffer_size=8192

# Persistent queue directory for Replication Server running on host1
#
# For synchronous replication (synchronization_mode=sync),
# enter directory to an SSD (solid state drive) or other
# type of fast read/write storage device
PRIM.simple_persistent_queue_dir=/data/SRS/ssd
PRIM.simple_persistent_queue_size=8000

###############################################################################
# Site "COMP" on host companionnode with companion role
###############################################################################

# Host name where SAP ASE run
#
# Enter fully qualified domain name (FQDN)
# if your sites are on different subnet.
COMP.ase_host_name=companionnode

# We don't support ASE and SRS on different hosts yet
# This is virtual host name for SRS/RMA
# Optional property
#
# Enter fully qualified domain name (FQDN)
# if your sites are on different subnet.
COMP.rma_host_name=companionnode

# Site name
#
# Enter value that identifies this site,
# like a geographical location.
# Value must be unique.
COMP.site_name=London

# Site role
#
# Enter the role of this site.
# Valid values: primary, companion
COMP.site_role=companion

# directory where SAP ASE installed
COMP.ase_release_directory=/opt/sybase/ASE

# User defined dm data dir for eRSSD
#COMP.dm_database_file_directory=
#COMP.dm_translog_file_directory=
#COMP.dm_log_file_directory=
#COMP.dm_config_file_directory=
#COMP.dm_backup_file_directory_for_database=

# Public IP for host
#COMP.host_public_ip=10.180.1.43

# Directory that stored SAP ASE user data files
# (interfaces, RUN_<server>, error log, etc. files).
# Do not set value if your user data files are in
# SAP ASE installed directory (ase_release_directory).
COMP.ase_user_data_directory=/opt/sybase/ASE

COMP.ase_server_name=COMPANION_ASE
COMP.ase_server_port=5000

COMP.backup_server_name=COMPANION_ASE_BS
COMP.backup_server_port=5001

# Directory to store database dumps
# in materialization
#
# Backup server must able to access this directory
COMP.backup_server_dump_directory=/data/ASE/dump

# Data & log devices to create the databases specified
# in "participating_database_[x]" properties. You do
# not need to specify these properties if the database(s)
# already exist in the SAP ASE server.
#
# ase_data_device_create_[x]_[y] - property to create data device
# ase_log_device_create_[x]_[y] - property to create log device
# where
# x is number in "participating_database_[x]" property
# y is number device to create
#
# Format: <logical_device_name>, <physical_device_path>, <size_in_MB>
#
# NOTE: Databases sizes on primary and companion
# SAP ASE must be the same.

# Devices for database "LE1" (See "participating_database_1" property)
# Database size = 25MB
# data device "le_data_dev" = 25MB
COMP.ase_data_device_create_1_1=DEM_data_dev, /data/ASE/data/dem_dev1.dat, 25

# Devices for database "userdb1" (See "participating_database_2" property)
# Database Size = 100MB
# data device 1 "db1_data_dev1" = 25MB
# data device 2 "db1_data_dev2" = 25MB
# data device 3 "db1_data_dev3" = 25MB
# log device 1 "db1_log_dev1" = 25MB
#site2.ase_data_device_create_2_1=db1_data_dev1, /host2_eng/ase/data/db1_dev1.dat, 25
#site2.ase_data_device_create_2_2=db1_data_dev2, /host2_eng/ase/data/db1_dev2.dat, 25
#site2.ase_data_device_create_2_3=db1_data_dev3, /host2_eng/ase/data/db1_dev3.dat, 25
#site2.ase_log_device_create_2_1=db1_log_dev1, /host2_eng/ase/data/db1_dev1.log, 25

# Devices for database "userdb2" (See "participating_database_3" property)
# Database Size = 100MB
# data device 1 "db2_data_dev1" = 25MB
# data device 2 "db2_data_dev2" = 25MB
# log device 1 "db2_log_dev1" = 25MB
# log device 2 "db2_log_dev2" = 25MB
#site2.ase_data_device_create_3_1=db2_data_dev1, /host2_eng/ase/data/db2_dev1.dat, 25
#site2.ase_data_device_create_3_2=db2_data_dev2, /host2_eng/ase/data/db2_dev2.dat, 25
#site2.ase_log_device_create_3_1=db2_log_dev1, /host2_eng/ase/data/db2_dev1.log, 25
#site2.ase_log_device_create_3_2=db2_log_dev2, /host2_eng/ase/data/db2_dev2.log, 25

# Port numbers for Replication Server and Replication Management Agent on host2
#
# In remote topology, these are the companion Replication Server and
# Replication Management Agent.
#
# See "rsge.bootstrap.tds.port.number" properties in
# <SAP ASE installed directory>/DM/RMA-16_0/instances/AgentContainer/config/bootstrap.prop
# for value
COMP.rma_rmi_port=7000
COMP.rma_tds_port=7001
#
# Starting port number to use when setup Replication Server.
# Make sure next two ports (+1 and +2) are also available for use.
COMP.srs_port=5005

# Device buffer for Replication Server on host2
# Recommend size = 128 * N
# where N is the number of databases to replicate,
# including the master and cluster ID databases.
#
COMP.device_buffer_dir=/data/SRS/data
COMP.device_buffer_size=8192

# Persistent queue directory for Replication Server running on host2
#
# For synchronous replication (synchronization_mode=sync),
# enter directory to an SSD (solid state drive) or other
# type of fast read/write storage device
COMP.simple_persistent_queue_dir=/data/SRS/ssd
COMP.simple_persistent_queue_size=8000

The first section of the response file dictates whether this will be a primary or companion setup as follows:

  • primary:

    • setup_site=PRIM

    • is_secondary_site_setup=false



  • companion:

    • setup_site=COMP

    • is_secondary_site_setup=true




Whether using Method 1 or Method 2, you will now have an HADR cluster comprised of and active primary node and a standby companion node with a cluster ID database already included in the configuration and being replicated.  You can check this by running the following commands:

Connecting to the PRIMARY_ASE with isql ('isql -Usa -P<password> -Sprimarynode:5000' -w999) and running:
select asehostname(), hadr_mode(), hadr_state()
go
sp_configure 'HADR'
go

should give the following output (simplified):
 -----------  -------  ------ 
primarynode Primary Active

Parameter Name Default Memory Used Config Value Run Value Unit Type
---------------------------- ----------- ------------- -------------- ------------ -------------- -------
HADR connect timeout 60 0 5 5 seconds dynamic
HADR distinct server name 1 0 0 0 switch dynamic
HADR login stall time 2 0 2 2 seconds dynamic
HADR mode -1 0 1 1 not applicable dynamic
HADR primary check frequency 10 0 10 10 seconds dynamic
HADR primary wait time 300 0 300 300 seconds dynamic
HADR remote query timeout 0 0 0 0 seconds dynamic


For the 'sp_configure' output, 'HADR mode' is '1' for the active node, '2' for the standby node and '5' for the DR node.  '-1' means that this instance is not participating in an HADR cluster.

Connecting to the RMA as DR_admin ('isql -UDR_admin -P<password> -Sprimarynode:7001 -w999') and running:
sap_status path
go

should show output similar to:
 PATH                  NAME                      VALUE                   INFO                                                                                 
--------------------- ------------------------- ----------------------- ------------------------------------------------------------------------------------
Start Time 2022-11-24 20:56:07.346 Time command started executing.
Elapsed Time 00:00:00 Command execution time.
Toronto Hostname primarynode Logical host name.
Toronto HADR Status Primary : Active Identify the primary and standby sites.
Toronto Synchronization Mode Synchronous The configured Synchronization Mode value.
Toronto Synchronization State Synchronous Synchronization Mode in which replication is currently operating.
Toronto Distribution Mode Remote Configured value for the distribution_mode replication model property.
Toronto Replication Server Status Active The status of Replication Server.
London Hostname companionnode Logical host name.
London HADR Status Standby : Inactive Identify the primary and standby sites.
London Synchronization Mode Synchronous The configured Synchronization Mode value.
London Synchronization State Inactive Synchronization Mode in which replication is currently operating.
London Distribution Mode Remote Configured value for the distribution_mode replication model property.
London Replication Server Status Active The status of Replication Server.
London.Toronto.DEM State Suspended Path is suspended (Replication Agent Thread). Transactions are not being replicated.
London.Toronto.DEM Latency Time Unknown No latency information for database 'DEM'.
London.Toronto.DEM Latency Unknown No latency information for database 'DEM'.
London.Toronto.DEM Commit Time Unknown No last commit time for the database 'DEM'.
London.Toronto.DEM Distribution Path Toronto The path of Replication Server through which transactions travel.
London.Toronto.DEM Drain Status Unknown The drain status of the transaction logs of the primary database server.
London.Toronto.master State Suspended Path is suspended (Replication Agent Thread). Transactions are not being replicated.
London.Toronto.master Latency Time Unknown No latency information for database 'master'.
London.Toronto.master Latency Unknown No latency information for database 'master'.
London.Toronto.master Commit Time Unknown No last commit time for the database 'master'.
London.Toronto.master Distribution Path Toronto The path of Replication Server through which transactions travel.
London.Toronto.master Drain Status Unknown The drain status of the transaction logs of the primary database server.
Toronto.London.DEM State Active Path is active and replication can occur.
Toronto.London.DEM Latency Time 2022-11-15 20:52:43.134 Time latency last calculated
Toronto.London.DEM Latency 564 Latency (ms)
Toronto.London.DEM Commit Time 2022-11-15 20:52:43.134 Time last commit replicated
Toronto.London.DEM Distribution Path London The path of Replication Server through which transactions travel.
Toronto.London.DEM Drain Status Not Applicable The drain status of the transaction logs of the primary database server.
Toronto.London.master State Active Path is active and replication can occur.
Toronto.London.master Latency Time 2022-11-15 20:51:23.946 Time latency last calculated
Toronto.London.master Latency 487 Latency (ms)
Toronto.London.master Commit Time 2022-11-15 20:51:23.946 Time last commit replicated
Toronto.London.master Distribution Path London The path of Replication Server through which transactions travel.
Toronto.London.master Drain Status Not Applicable The drain status of the transaction logs of the primary database server.

(38 rows affected)

This shows that replication is from the active, primary ASE to the standby, companion ASE.  At this point, only master and the <SID> database are being replicated.

Adding the DR node


The ASE software can be installed to the DR node using setup.bin and specifying a Full or Custom install to ensure the installation of the HADR Data Movement components.

Again, the DR ASE and associated open servers can be be created using resource files and the srvbuildres/sqllocres utilities.

DR server resource files
### DR_ASE.rs ###
srvbuild.release_directory: /opt/sybase/ASE
srvbuild.product: sqlsrv
srvbuild.server_name: DR_ASE
srvbuild.sa_password: <password>
srvbuild.new_config: yes
srvbuild.do_add_server: yes
srvbuild.do_upgrade: no
srvbuild.network_protocol_list: tcp
srvbuild.network_hostname_list: drnode
srvbuild.network_port_list: 5000
srvbuild.application_type: MIXED
srvbuild.server_page_size: 16k
srvbuild.master_device_physical_name: /data/ASE/data/master.dat
srvbuild.master_device_size: 300
srvbuild.master_database_size: 110
srvbuild.errorlog: /data/ASE/DR_ASE.log
srvbuild.sybsystemprocs_device_physical_name: /data/ASE/data/sysprocs.dat
srvbuild.sybsystemprocs_device_size: 200
srvbuild.sybsystemprocs_database_size: 200
srvbuild.sybsystemdb_device_physical_name: /data/ASE/data/sybsysdb.dat
srvbuild.sybsystemdb_device_size: 32
srvbuild.sybsystemdb_database_size: 32
srvbuild.tempdb_device_physical_name: /data/ASE/data/tempdbdev.dat
srvbuild.tempdb_device_size: 500
srvbuild.tempdb_database_size: 500
srvbuild.default_backup_server: DR_ASE_BS
srvbuild.addl_cmdline_parameters:
srvbuild.shmem: /data/ASE
srvbuild.do_configure_pci: no
srvbuild.sybpcidb_device_physical_name: /data/ASE/data/sybpcidbdev_data.dat
srvbuild.sybpcidb_device_size: 48
srvbuild.sybpcidb_database_size: 48
srvbuild.do_optimize_config: yes
srvbuild.avail_physical_memory: 8192
srvbuild.avail_cpu_num: 8
srvbuild.configure_remote_command_and_control_agent_ase: no
srvbuild.enable_ase_for_ase_cockpit_monitor: no
srvbuild.technical_user: tech_user
srvbuild.technical_user_password: <password>
srvbuild.addl_build_parameters:

### DR_ASE_BS.rs ###
srvbuild.release_directory: /opt/sybase/ASE
srvbuild.product: bsrv
srvbuild.server_name: DR_ASE_BS
srvbuild.new_config: yes
srvbuild.do_add_backup_server: yes
srvbuild.do_upgrade: no
srvbuild.network_protocol_list: tcp
srvbuild.network_hostname_list: drnode
srvbuild.network_port_list: 5001
srvbuild.allow_hosts_list: USE_DEFAULT
srvbuild.language: USE_DEFAULT
srvbuild.character_set: USE_DEFAULT
srvbuild.tape_config_file: USE_DEFAULT
srvbuild.errorlog: /data/ASE/DR_ASE_BS.log
srvbuild.addl_cmdline_parameters:
srvbuild.related_sqlsrvr: DR_ASE
srvbuild.sa_login: sa
srvbuild.sa_password: <password>

### DR_ASE_XP.rs ###
srvbuild.release_directory: /opt/sybase/ASE
srvbuild.product: xp
srvbuild.server_name: DR_ASE_XP
srvbuild.new_config: yes
srvbuild.do_add_monitor_server: yes
srvbuild.do_upgrade: no
srvbuild.network_protocol_list: tcp
srvbuild.network_hostname_list: drnode
srvbuild.network_port_list: 5002
srvbuild.related_sqlsrvr: DR_ASE
srvbuild.sa_login: sa
srvbuild.sa_password: <password>

### DR_ASE_JSAGENT.rs ###
srvbuild.release_directory: /opt/sybase/ASE
srvbuild.product: js
srvbuild.server_name: DR_ASE_JSAGENT
srvbuild.new_config: yes
srvbuild.do_add_js_agent: yes
srvbuild.do_upgrade: no
srvbuild.network_protocol_list: tcp
srvbuild.network_hostname_list: drnode
srvbuild.network_port_list: 4900
srvbuild.related_sqlsrvr: DR_ASE
srvbuild.errorlog: /data/ASE/DR_ASE_JSAGENT.log
srvbuild.sa_login: sa
srvbuild.sa_password: <password>
srvbuild.sybmgmtdb_device_physical_name: /data/ASE/data/sybmgmtdb.dat
srvbuild.sybmgmtdb_device_size: 80
srvbuild.sybmgmtdb_database_size: 80
srvbuild.do_configure_self_management: yes
srvbuild.self_management_login: sa
srvbuild.self_management_password: <password>
srvbuild.confirm_self_management_password: <password>

### sqlloc-DR_ASE.rs ###
sqlloc.release_directory: /opt/sybase/ASE
sqlloc.server_name: DR_ASE
sqlloc.sa_login: sa
sqlloc.sa_password: <password>
sqlloc.default_language: us_english
sqlloc.default_characterset: utf8
sqlloc.sort_order: utf8bin
sqlloc.language_install_list: us_english
sqlloc.language_remove_list: USE_DEFAULT
sqlloc.characterset_install_list: utf8,iso15,roman9
sqlloc.characterset_remove_list: USE_DEFAULT

Once the DR server has been created on its node, $SYBASE/$SYBASE_ASE/bin/setuphadr can be invoked with a response file to add the instance into the HADR cluster as a 3rd node.  Doing this requires an additional 'DR' section to the response file given above as 'HADR resource file for primary and companion'.  An example of the full response file is given below, anyway:
###############################################################################
# Setup HADR sample response file for non-BS + 3rd node
#
# This sample responses file setup ASE HADR on
# hosts "host1" (primary) and "host2" (companion) and "host3" (DR).
#
# Prerequisite :
# - New SAP ASE and Backup servers setup and started on "host1" and "host2".
# See HADR User Guide for requirements on SAP ASE servers.
# - Replication Management Agent (RMA) started on "host1" and "host2".
#
# Usage :
# 1. On host1 (primary), run:
# $SYBASE/$SYBASE_ASE/bin/setuphadr <this_responses_file>
#
# 2. Change this response file properties:
# setup_site=site2
# is_secondary_site_setup=true
#
# 3. On host2 (companion), run
# $SYBASE/$SYBASE_ASE/bin/setuphadr <response_file_from_step_2>
#
# 4. Change this response file properties:
# setup_site=DR
# is_secondary_site_setup=true
#
###############################################################################


# ID that identifies this cluster
#
# Value must be unique,
# begin with a letter and
# 3 characters in length.
cluster_id=DEM

# Which site being configured
#
# Note:
# You need to set "<setup_site_value>.*"
# properties in this responses file.
setup_site=DR

# Set installation_mode
#
# Valid values: true, false
#
# If set to true, installation_mode will be set to "BS"
# If set to false, installation_mode will be set to "nonBS"
setup_bs=false

# This is for BusS only
# if set to true, DR admin user will be added to secure store
add_user_to_secure_store=false
# Adding user action will be executed by following user
#sid_admin_user=LE1_adm
#sid_admin_password=Sybase123

# true OR false
enable_ssl=false
# common name, take SYBASE for example
ssl_common_name=SYBASE
# If this ASE server has enabled SSL, if set to "true", ssl_private_key_file and ssl_public_key_file will be ignored
ase_ssl_enabled=true
# If we should enable SSL backupserver connections
enable_ssl_for_bs=true
# private key file
ssl_private_key_file=/tmp/hadr.key
# public key file
ssl_public_key_file=/tmp/hadr.crt
# root CA cert
# NOTE: if you're using self-signed cert, put your public key file here
ssl_ca_cert_file=/tmp/rootCA.pem
# ssl password
ssl_password=Sybase

# Has the secondary site prepared for ASE HADR
#
# Valid values: true, false
#
# If set to true, "<secondary_setup_site_value>.*"
# properties must set in this responses file.
is_secondary_site_setup=true

# How data is replicated
#
# Valid values: sync, async
synchronization_mode=async

# SAP ASE system administrator user/password
#
# setuphadr will prompt from standard input if not specified
ase_sa_user=sa
ase_sa_password=<password>

# BACKUP server system administrator user/password
#
bs_admin_user=sa
bs_admin_password=<password>

# ASE HADR maintenance user/password
#
# Password must have at least 6 characters
# setuphadr will prompt from standard input if not specified
hadr_maintenance_user=DR_maint
hadr_maintenance_password=<password>

# Replication Management Agent administrator user/password
#
# Password must have at least 6 characters
# setuphadr will prompt from standard input if not specified
rma_admin_user=DR_admin
rma_admin_password=<password>

# If we XA replication is enabled
#
# Valid values: true, false
xa_replication=false

# If we need to config and start Replication Management Agent
#
# Valid values: true, false
config_start_rma=true

# If we need to create Replication Management Agent windows service
# Only affects windows
#
# Valid values: true, false
# If set to true, rma_service_user and rma_service_password will be used
create_rma_windows_service=false

# Replication Management Agent Service user/password
#
rma_service_user=admin
rma_service_password=<password>

# If disable referential constraints on HADR setups
#
# Valid values: true, false
disable_referential_constraints=false

# Databases that will participate in replication
# and "auto" materialize.
#
# If database doesn't exist in the SAP ASE, you need
# to specify <site>.ase_data_device_create_[x]_[y] and
# <site>.ase_log_device_create_[x]_[y] properties.
# See below.
#
# ASE HADR requires SAP ASE to have a database
# with cluster ID name (see "cluster_id" above).
# If you have not created this database, you can
# enter it here to have it created.

# cluster ID database
participating_database_1=DEM
materialize_participating_database_1=true

# user database
#participating_database_2=tpcc
#materialize_participating_database_2=true

###############################################################################
# Site "PRIM" on host primarynode with primary role
###############################################################################

# Host name where SAP ASE run
#
# Enter fully qualified domain name (FQDN)
# if your sites are on different subnet.
PRIM.ase_host_name=primarynode

# We don't support ASE and SRS on different hosts yet
# This is virtual host name for SRS/RMA
# Optional property
#
# Enter fully qualified domain name (FQDN)
# if your sites are on different subnet.
PRIM.rma_host_name=primarynode

# Site name
#
# Enter value that identifies this site,
# like a geographical location.
# Value must be unique.
PRIM.site_name=Toronto

# Site role
#
# Enter the role of this site.
# Valid values: primary, companion
PRIM.site_role=primary

# directory where SAP ASE installed
PRIM.ase_release_directory=/opt/sybase/ASE

# User defined dm data dir for eRSSD
#PRIM.dm_database_file_directory=/data/SRS/data
#PRIM.dm_translog_file_directory=/data/SRS/data
#PRIM.dm_log_file_directory=/data/SRS/data
#PRIM.dm_config_file_directory=/opt/sybase/ASE/DM
#PRIM.dm_backup_file_directory_for_database=/data/ASE/dump

# Public IP for host
#PRIM.host_public_ip=<ip address>

# Directory that stored SAP ASE user data files
# (interfaces, RUN_<server>, error log, etc. files).
# Do not set value if your user data files are in
# SAP ASE installed directory (ase_release_directory).
PRIM.ase_user_data_directory=/opt/sybase/ASE

PRIM.ase_server_name=PRIMARY_ASE
PRIM.ase_server_port=5000

PRIM.backup_server_name=PRIMARY_ASE_BS
PRIM.backup_server_port=5001

# Directory to store database dumps
# in materialization
#
# Backup server must able to access this directory
PRIM.backup_server_dump_directory=/data/ASE/dump

# Data & log devices to create the databases specified
# in "participating_database_[x]" properties. You do
# not need to specify these properties if the database(s)
# already exist in the SAP ASE server.
#
# ase_data_device_create_[x]_[y] - property to create data device
# ase_log_device_create_[x]_[y] - property to create log device
# where
# x is number in "participating_database_[x]" property
# y is number device to create
#
# Format: <logical_device_name>, <physical_device_path>, <size_in_MB>
#
# NOTE: Databases sizes on primary and companion
# SAP ASE must be the same.

# Device for cluster ID database "DEM" (See "participating_database_1" property)
# Database size = 25MB
# data device "le_data_dev" = 25MB
PRIM.ase_data_device_create_1_1=DEM_data_dev, /data/ASE/data/DEM_dev1.dat, 25

# Devices for database "userdb1" (See "participating_database_2" property)
# Database Size = 100MB
# data device 1 "db1_data_dev1" = 25MB
# data device 2 "db1_data_dev2" = 25MB
# data device 3 "db1_data_dev3" = 25MB
# log device 1 "db1_log_dev1" = 25MB
#PRIM.ase_data_device_create_2_1=db1_data_dev1, /host1_eng/ase/data/db1_dev1.dat, 25
#PRIM.ase_data_device_create_2_2=db1_data_dev2, /host1_eng/ase/data/db1_dev2.dat, 25
#PRIM.ase_data_device_create_2_3=db1_data_dev3, /host1_eng/ase/data/db1_dev3.dat, 25
#PRIM.ase_log_device_create_2_1=db1_log_dev1, /host1_eng/ase/data/db1_dev1.log, 25

# Port numbers for Replication Server and Replication Management Agent on host1
#
# In remote topology, these are the companion Replication Server and
# Replication Management Agent.
#
# See "rsge.bootstrap.tds.port.number" properties in
# <SAP ASE installed directory>/DM/RMA-16_0/instances/AgentContainer/config/bootstrap.prop

# for value
PRIM.rma_rmi_port=7000
PRIM.rma_tds_port=7001
#
# Starting port number to use when setup Replication Server.
# Make sure next two ports (+1 and +2) are also available for use.
PRIM.srs_port=5005

# Device buffer for Replication Server on host1
# Recommend size = 128 * N
# where N is the number of databases to replicate,
# including the master and cluster ID databases.
#
PRIM.device_buffer_dir=/data/SRS/data
PRIM.device_buffer_size=8192

# Persistent queue directory for Replication Server running on host1
#
# For synchronous replication (synchronization_mode=sync),
# enter directory to an SSD (solid state drive) or other
# type of fast read/write storage device
PRIM.simple_persistent_queue_dir=/data/SRS/ssd
PRIM.simple_persistent_queue_size=8000

###############################################################################
# Site "COMP" on host companionnode with companion role
###############################################################################

# Host name where SAP ASE run
#
# Enter fully qualified domain name (FQDN)
# if your sites are on different subnet.
COMP.ase_host_name=companionnode

# We don't support ASE and SRS on different hosts yet
# This is virtual host name for SRS/RMA
# Optional property
#
# Enter fully qualified domain name (FQDN)
# if your sites are on different subnet.
COMP.rma_host_name=companionnode

# Site name
#
# Enter value that identifies this site,
# like a geographical location.
# Value must be unique.
COMP.site_name=London

# Site role
#
# Enter the role of this site.
# Valid values: primary, companion
COMP.site_role=companion

# directory where SAP ASE installed
COMP.ase_release_directory=/opt/sybase/ASE

# User defined dm data dir for eRSSD
#COMP.dm_database_file_directory=
#COMP.dm_translog_file_directory=
#COMP.dm_log_file_directory=
#COMP.dm_config_file_directory=
#COMP.dm_backup_file_directory_for_database=

# Public IP for host
#COMP.host_public_ip=<ip address>

# Directory that stored SAP ASE user data files
# (interfaces, RUN_<server>, error log, etc. files).
# Do not set value if your user data files are in
# SAP ASE installed directory (ase_release_directory).
COMP.ase_user_data_directory=/opt/sybase/ASE

COMP.ase_server_name=COMPANION_ASE
COMP.ase_server_port=5000

COMP.backup_server_name=COMPANION_ASE_BS
COMP.backup_server_port=5001

# Directory to store database dumps
# in materialization
#
# Backup server must able to access this directory
COMP.backup_server_dump_directory=/data/ASE/dump


# Data & log devices to create the databases specified
# in "participating_database_[x]" properties. You do
# not need to specify these properties if the database(s)
# already exist in the SAP ASE server.
#
# ase_data_device_create_[x]_[y] - property to create data device
# ase_log_device_create_[x]_[y] - property to create log device
# where
# x is number in "participating_database_[x]" property
# y is number device to create
#
# Format: <logical_device_name>, <physical_device_path>, <size_in_MB>
#
# NOTE: Databases sizes on primary and companion
# SAP ASE must be the same.

# Devices for database "LE1" (See "participating_database_1" property)
# Database size = 25MB
# data device "le_data_dev" = 25MB
COMP.ase_data_device_create_1_1=DEM_data_dev, /data/ASE/data/dem_dev1.dat, 25

# Devices for database "userdb1" (See "participating_database_2" property)
# Database Size = 100MB
# data device 1 "db1_data_dev1" = 25MB
# data device 2 "db1_data_dev2" = 25MB
# data device 3 "db1_data_dev3" = 25MB
# log device 1 "db1_log_dev1" = 25MB
#site2.ase_data_device_create_2_1=db1_data_dev1, /host2_eng/ase/data/db1_dev1.dat, 25
#site2.ase_data_device_create_2_2=db1_data_dev2, /host2_eng/ase/data/db1_dev2.dat, 25
#site2.ase_data_device_create_2_3=db1_data_dev3, /host2_eng/ase/data/db1_dev3.dat, 25
#site2.ase_log_device_create_2_1=db1_log_dev1, /host2_eng/ase/data/db1_dev1.log, 25

# Devices for database "userdb2" (See "participating_database_3" property)
# Database Size = 100MB
# data device 1 "db2_data_dev1" = 25MB
# data device 2 "db2_data_dev2" = 25MB
# log device 1 "db2_log_dev1" = 25MB
# log device 2 "db2_log_dev2" = 25MB
#site2.ase_data_device_create_3_1=db2_data_dev1, /host2_eng/ase/data/db2_dev1.dat, 25
#site2.ase_data_device_create_3_2=db2_data_dev2, /host2_eng/ase/data/db2_dev2.dat, 25
#site2.ase_log_device_create_3_1=db2_log_dev1, /host2_eng/ase/data/db2_dev1.log, 25
#site2.ase_log_device_create_3_2=db2_log_dev2, /host2_eng/ase/data/db2_dev2.log, 25

# Port numbers for Replication Server and Replication Management Agent on host2
#
# In remote topology, these are the companion Replication Server and
# Replication Management Agent.
#
# See "rsge.bootstrap.tds.port.number" properties in
# <SAP ASE installed directory>/DM/RMA-16_0/instances/AgentContainer/config/bootstrap.prop
# for value
COMP.rma_rmi_port=7000
COMP.rma_tds_port=7001
#
# Starting port number to use when setup Replication Server.
# Make sure next two ports (+1 and +2) are also available for use.
COMP.srs_port=5005

# Device buffer for Replication Server on host2
# Recommend size = 128 * N
# where N is the number of databases to replicate,
# including the master and cluster ID databases.
#
COMP.device_buffer_dir=/data/SRS/data
COMP.device_buffer_size=8192

# Persistent queue directory for Replication Server running on host2
#
# For synchronous replication (synchronization_mode=sync),
# enter directory to an SSD (solid state drive) or other
# type of fast read/write storage device
COMP.simple_persistent_queue_dir=/data/SRS/ssd
COMP.simple_persistent_queue_size=8000

###############################################################################
# Site "DR" on host drnode with dr role
###############################################################################

# Host name where SAP ASE run
#
# Enter fully qualified domain name (FQDN)
# if your sites are on different subnet.
DR.ase_host_name=drnode

# We don't support ASE and SRS on different hosts yet
# This is virtual host name for SRS\RMA
# Optional property
#
# Enter fully qualified domain name (FQDN)
# if your sites are on different subnet.
DR.rma_host_name=drnode

# Site name
#
# Enter value that identifies this site,
# like a geographical location.
# Value must be unique.
DR.site_name=Offsite

# Site role
#
# Enter the role of this site.
# Valid values: primary, companion, dr
DR.site_role=dr

# directory where SAP ASE installed
DR.ase_release_directory=/opt/sybase/ASE

# Directory that stored SAP ASE user data files
# (interfaces, RUN_<server>, error log, etc. files).
# Do not set value if your user data files are in
# SAP ASE installed directory (ase_release_directory).
DR.ase_user_data_directory=/opt/sybase/ASE

DR.ase_server_name=DR_ASE
DR.ase_server_port=5000

DR.backup_server_name=DR_ASE_BS
DR.backup_server_port=5001

# added to support demo
# Devices for database "DEM" (See "participating_database_1" property)
# Database size = 25MB
# data device "DEM" = 25MB
DR.ase_data_device_create_1_1=DEM_data_dev, /data/ASE/data/DEM_dev1.dat, 25

# Devices for database "userdb1" (See "participating_database_2" property)
# Database Size = 100MB
# data device 1 "db1_data_dev1" = 25MB
# data device 2 "db1_data_dev2" = 25MB
# data device 3 "db1_data_dev3" = 25MB
# log device 1 "db1_log_dev1" = 25MB
#DR.ase_data_device_create_2_1=db1_data_dev1, /host2_eng/ase/data/db1_dev1.dat, 25
#DR.ase_data_device_create_2_2=db1_data_dev2, /host2_eng/ase/data/db1_dev2.dat, 25
#DR.ase_data_device_create_2_3=db1_data_dev3, /host2_eng/ase/data/db1_dev3.dat, 25
#DR.ase_log_device_create_2_1=db1_log_dev1, /host2_eng/ase/data/db1_dev1.log, 25

# Directory to store database dumps
# in materialization
#
# Backup server must able to access this directory
DR.backup_server_dump_directory=/data/ASE/dump

# Port numbers for Replication Server and Replication Management Agent on host3
#
# In remote topology, these are the DR Replication Server and
# Replication Management Agent.
#
# See "rsge.bootstrap.tds.port.number" properties in
# <SAP ASE installed directory>\DM\RMA-16_0\instances\AgentContainer\config\bootstrap.prop
# for value
DR.rma_rmi_port=7000
# RMA RMI occupies five consecutive ports, with the configured port occupying the highest number.
DR.rma_tds_port=7001
#
# Starting port number to use when setup Replication Server.
# Make sure next two ports (+1 and +2) are also available for use.
DR.srs_port=5005

# Device buffer for Replication Server on host3
# Recommend size = 128 * N
# where N is the number of databases to replicate,
# including the master and cluster ID databases.
#
# Note: For HADR on SAP Business Suite Installations use SID database logsize * 1.5
DR.device_buffer_dir=/data/SRS/data
DR.device_buffer_size=8192

# Persistent queue directory for Replication Server running on host3
#
# For synchronous replication (synchronization_mode=async),
# enter directory to an SSD (solid state drive) or other
# type of fast read\write storage device
# Note: For HADR on SAP Business Suite Installations use SID database logsize * 1.5
DR.simple_persistent_queue_dir=/data/SRS/ssd
DR.simple_persistent_queue_size=8000

The first section of the response is also changed to allow the 3rd node DR to be created:

  • dr:

    • setup_site=DR

    • is_secondary_site_setup=true

    • synchronization_mode=async (this is optional but may be desired for distance from the HADR cluster to the DR location)




Adding the DR node is performed by running the $SYBASE/$SYBASE_ASE/bin/setuphadr command and supplying the response file:
setuphadr ~/hadr/setup_hadr_DR.rs

This will give output similar to:
Clean up environment.
Environment cleaned up.
Setup ASE server configurations
Set server configuration "max network packet size" to "16384"...
Reboot SAP ASE "DR_ASE"...
Setup ASE server configurations...Success
Setup user databases
Create user database DEM...
Setup user databases...Success
Setup ASE HADR maintenance user
Create maintenance login "DR_maint"...
Grant "sa_role" role to "DR_maint"...
Grant "replication_role" role to "DR_maint"...
Grant "replication_maint_role_gp" role to "DR_maint"...
Create "sap_maint_user_role" role...
Grant set session authorization to "sap_maint_user_role"...
Grant "sap_maint_user_role" role to "DR_maint"...
Grant "sybase_ts_role" role to "DR_maint"...
Add auto activated roles "sap_maint_user_role" to user "DR_maint"...
Allow "DR_maint" to be known as dbo in "master" database...
Allow "DR_maint" to be known as dbo in "DEM" database...
Setup ASE HADR maintenance user...Success
Setup administrator user
Create administrator login "DR_admin"...
Grant "sa_role" role to "DR_admin"...
Grant "sso_role" role to "DR_admin"...
Grant "replication_role" role to "DR_admin"...
Grant "hadr_admin_role_gp" role to "DR_admin"...
Grant "sybase_ts_role" role to "DR_admin"...
Add user "DR_admin" to DB "sybsystemprocs".
Setup administrator user...Success
Setup Backup server allow hosts
Backup server on "DR" site: Add host "primarynode" to allow dump and load...
Backup server on "PRIM" site: Add host "drnode" to allow dump and load...
Setup Backup server allow hosts...Success
Setup DR Site
Set maintenance user to "DR_maint"...
Set maintenance user to "DR_maint"...
Set site name "Offsite" with SAP ASE host:port to "drnode:5000" and Replication Server host:port to "drnode:5005"...
Set site "Offsite" as DR node.
Set site name "Offsite" with Backup server port to "5001"...
Set site name "Offsite" databases dump directory to "/data/ASE/dump"...
Set site name "Offsite" device buffer directory to "/data/SRS/data"...
Set site name "Offsite" device buffer directory to "/data/SRS/data"...
Set site name "Offsite" device buffer size to "8192"...
Set site name "Offsite" device buffer size to "8192"...
Set site name "Offsite" simple persistent queue directory to "/data/SRS/ssd"...
Set site name "Offsite" simple persistent queue directory to "/data/SRS/ssd"...
Set site name "Offsite" simple persistent queue size to "8000"...
Set site name "Offsite" simple persistent queue size to "8000"...
Setup DR Site...Success
Setup Replication
Add DR site "Offsite"...
Configuring local replication server.......
Configuring remote replication server..................................................
Setting up replication on 'standby' host for local database 'master'..
Setting up replication on 'standby' host for local database 'DEM'....
Setup Replication...Success
Materialize Databases
Materialize database "master"...
Starting materialization of the master database from source 'Toronto' to target 'Offsite'..
Waiting 10 seconds: Before checking if Replication Connection 'DEM_Offsite.master' is suspended......
Materialize database "DEM"...
Executing ASE dump and load task for database 'DEM'....
Waiting 10 seconds: Before checking if Replication Connection 'DEM_Offsite.DEM' is suspended with dump marker....
Waiting 10 seconds: Before checking if Replication Connection 'DEM_Offsite.DEM' is suspended........
Materialize Databases...Success

RMA and SRS instances are also now active on the DR node.

Running the checks previously shown against the DR node (drnode) ASE and RMA instances gives the following output:
 -----------  ----------  -------- 
drnode DR Standby Inactive

Parameter Name Default Memory Used Config Value Run Value Unit Type
---------------------------- ----------- ------------- -------------- ------------ -------------- -------
HADR connect timeout 60 0 5 5 seconds dynamic
HADR distinct server name 1 0 0 0 switch dynamic
HADR login stall time 2 0 2 2 seconds dynamic
HADR mode -1 0 5 5 not applicable dynamic
HADR primary check frequency 10 0 10 10 seconds dynamic
HADR primary wait time 300 0 300 300 seconds dynamic
HADR remote query timeout 0 0 0 0 seconds dynamic


PATH NAME VALUE INFO
---------------------- ------------------------- ----------------------- ------------------------------------------------------------------------------------
Start Time 2022-11-25 16:27:41.317 Time command started executing.
Elapsed Time 00:00:00 Command execution time.
Offsite Hostname drnode Logical host name.
Offsite HADR Status DR Standby : Inactive Identify the primary and standby sites.
Offsite Synchronization Mode Asynchronous The configured Synchronization Mode value.
Offsite Synchronization State Inactive Synchronization Mode in which replication is currently operating.
Offsite Distribution Mode Local Configured value for the distribution_mode replication model property.
Offsite Replication Server Status Active The status of Replication Server.
Toronto Hostname primarynode Logical host name.
Toronto HADR Status Primary : Active Identify the primary and standby sites.
Toronto Synchronization Mode Synchronous The configured Synchronization Mode value.
Toronto Synchronization State Synchronous Synchronization Mode in which replication is currently operating.
Toronto Distribution Mode Remote Configured value for the distribution_mode replication model property.
Toronto Replication Server Status Active The status of Replication Server.
London Hostname companionnode Logical host name.
London HADR Status Standby : Inactive Identify the primary and standby sites.
London Synchronization Mode Synchronous The configured Synchronization Mode value.
London Synchronization State Inactive Synchronization Mode in which replication is currently operating.
London Distribution Mode Remote Configured value for the distribution_mode replication model property.
London Replication Server Status Active The status of Replication Server.
London.Offsite.DEM State Suspended Path is suspended (Replication Agent Thread). Transactions are not being replicated.
London.Offsite.DEM Latency Time Unknown No latency information for database 'DEM'.
London.Offsite.DEM Latency Unknown No latency information for database 'DEM'.
London.Offsite.DEM Commit Time Unknown No last commit time for the database 'DEM'.
London.Offsite.DEM Distribution Path Toronto The path of Replication Server through which transactions travel.
London.Offsite.DEM Drain Status Unknown The drain status of the transaction logs of the primary database server.
London.Offsite.master State Suspended Path is suspended (Replication Agent Thread). Transactions are not being replicated.
London.Offsite.master Latency Time Unknown No latency information for database 'master'.
London.Offsite.master Latency Unknown No latency information for database 'master'.
London.Offsite.master Commit Time Unknown No last commit time for the database 'master'.
London.Offsite.master Distribution Path Toronto The path of Replication Server through which transactions travel.
London.Offsite.master Drain Status Unknown The drain status of the transaction logs of the primary database server.
London.Toronto.DEM State Suspended Path is suspended (Replication Agent Thread). Transactions are not being replicated.
London.Toronto.DEM Latency Time Unknown No latency information for database 'DEM'.
London.Toronto.DEM Latency Unknown No latency information for database 'DEM'.
London.Toronto.DEM Commit Time Unknown No last commit time for the database 'DEM'.
London.Toronto.DEM Distribution Path Toronto The path of Replication Server through which transactions travel.
London.Toronto.DEM Drain Status Unknown The drain status of the transaction logs of the primary database server.
London.Toronto.master State Suspended Path is suspended (Replication Agent Thread). Transactions are not being replicated.
London.Toronto.master Latency Time Unknown No latency information for database 'master'.
London.Toronto.master Latency Unknown No latency information for database 'master'.
London.Toronto.master Commit Time Unknown No last commit time for the database 'master'.
London.Toronto.master Distribution Path Toronto The path of Replication Server through which transactions travel.
London.Toronto.master Drain Status Unknown The drain status of the transaction logs of the primary database server.
Toronto.London.DEM State Active Path is active and replication can occur.
Toronto.London.DEM Latency Time 2022-11-25 16:16:08.552 Time latency last calculated
Toronto.London.DEM Latency 400 Latency (ms)
Toronto.London.DEM Commit Time 2022-11-25 16:16:08.552 Time last commit replicated
Toronto.London.DEM Distribution Path London The path of Replication Server through which transactions travel.
Toronto.London.DEM Drain Status Not Applicable The drain status of the transaction logs of the primary database server.
Toronto.London.master State Active Path is active and replication can occur.
Toronto.London.master Latency Time 2022-11-25 16:15:01.660 Time latency last calculated
Toronto.London.master Latency 570 Latency (ms)
Toronto.London.master Commit Time 2022-11-25 16:15:01.660 Time last commit replicated
Toronto.London.master Distribution Path London The path of Replication Server through which transactions travel.
Toronto.London.master Drain Status Not Applicable The drain status of the transaction logs of the primary database server.
Toronto.Offsite.DEM State Active Path is active and replication can occur.
Toronto.Offsite.DEM Latency Time 2022-11-25 16:16:08.892 Time latency last calculated
Toronto.Offsite.DEM Latency 570 Latency (ms)
Toronto.Offsite.DEM Commit Time 2022-11-25 16:16:08.892 Time last commit replicated
Toronto.Offsite.DEM Distribution Path London The path of Replication Server through which transactions travel.
Toronto.Offsite.DEM Drain Status Not Applicable The drain status of the transaction logs of the primary database server.
Toronto.Offsite.master State Active Path is active and replication can occur.
Toronto.Offsite.master Latency Time 2022-11-25 16:15:01.926 Time latency last calculated
Toronto.Offsite.master Latency 703 Latency (ms)
Toronto.Offsite.master Commit Time 2022-11-25 16:15:01.926 Time last commit replicated
Toronto.Offsite.master Distribution Path London The path of Replication Server through which transactions travel.
Toronto.Offsite.master Drain Status Not Applicable The drain status of the transaction logs of the primary database server.

As can be seen, the DR node, 'Offsite' has been added to the environment.  It's status will always show as 'Inactive' as it will not participate in any failover operations.

Additional notes:

  • During creation of the HADR cluster and addition of the DR node, 'max network packet size' will be set to 16384

  • Interfaces files/entries will also exist in the $SYBASE/DM folder of the installation.  Additional entries are not created nor needed in the $SYBASE/interfaces file.

  • It is up to the reader/sa/dbo to also ensure that the ASE instances are also properly configured for resource utilization, such as "number of locks", cache configurations, etc.


(continued in Part 2...)