ocf_suse_SAPHana(7)

NAME
SAPHana - Manages two single SAP HANA databases with system replication.

SYNOPSYS
SAPHana [start | stop | status | monitor | promote | demote | notify | meta-data | validate-all | methods | usage ]

DESCRIPTION
SAPHana is a resource agent for SAP HANA databases. It manages a SAP HANA database with system replication in an OCF master/slave configuration. System replication will help to replicate the database data from one computer to another computer in order to compensate for database failures. With this mode of operation, internal SAP HANA high-availability (HA) mechanisms and the resource agent must work together. The SAPHana resource agent (RA) performs the actual check of the SAP HANA database instances and is configured as a master/slave resource. Managing the two SAP HANA instances means that the resource agent controls the start/stop of the instances. In addition the resource agent is able to monitor the SAP HANA databases on landscape host configuration level. For this monitoring the resource agent relies on interfaces provided by SAP. A third task of the resource agent is to also check the synchronisation status of the two SAP HANA databases. If the synchronisation is not "SOK", than the cluster avoids to failover to the secondary side, if the primary fails. This is to improve the data consistency. The resource agent uses the following five interfaces provided by SAP: 1. sapcontrol/sapstartsrv
   The interface sapcontrol/sapstartsrv is used to start/stop a HANA database
   instance/system 2. landscapeHostConfiguration
   The interface is used to monitor a HANA system. The python script is named
   landscapeHostConfiguration.py.
   landscapeHostConfiguration.py has some detailed output about HANA system status
   and node roles. For our monitor the overall status is relevant. This overall
   status is reported by the returncode of the script:
   0: Internal Fatal, 1: ERROR, 2: WARNING, 3: INFO, 4: OK
   The SAPHana resource agent will interpret returncodes 0 as FATAL, 1 as not-running
   (or ERROR) and and returncodes 2+3+4 as RUNNING. 3. hdbnsutil
   The interface hdbnsutil is used to check the "topology" of the system replication
   as well as the current configuration (primary/secondary) of a SAP HANA database
   instance. A second task of the interface is the posibility to run a system
   replication takeover (sr_takeover) or to register a former primary to a newer one
   (sr_register). 4. hdbsql / systemReplicationStatus
   Interface is SQL query into HANA (system replication table). The hdbsql query will
   be replaced by a python script "systemReplicationStatus.py" in SAP HANA SPS8 or 9.
   As long as wee need to use hdbsql you need to setup secure store users for Linux
   user root to be able to access the SAP HANA database. You need to configure a secure
   store user key "SLEHALOC" which can connect the SAP HANA database. 5. saphostctrl
   The interface saphostctrl uses the function ListInstances to figure out the virtual
   host name of the SAP HANA instance. This is the hostname used during the HANA
   installation.

To make configuring the cluster as simple as possible, the additional SAPHanaTopology resource agent runs on all nodes of a SLE 11 HAE cluster and gathers information about the statuses and configurations of SAP HANA system replications. The SAPHanaTopology RA is designed as a normal (stateless) clone.
Please see also the LIMITATIONS section below.

SUPPORTED PARAMETERS
This resource agent supports the following parameters:

SID
    SAP System Identifier. Has to be same on both instances.

InstanceNumber
    Number of the SAP HANA database. For system replication also Instance Number+1 is blocked.

DIR_EXECUTABLE
    The full qualified path where to find sapstartsrv and sapcontrol. Specify this parameter, if you have changed the SAP kernel directory location after the default SAP installation.
    Optional, well known directories will be searched by default.

DIR_PROFILE
    The full qualified path where to find the SAP START profile. Specify this parameter, if you have changed the SAP profile directory location after the default SAP installation.
    Optional, well known directories will be searched by default.

INSTANCE_PROFILE
    The name of the SAP HANA instance profile. Specify this parameter, if you have changed the name of the SAP HANA instance profile after the default SAP installation. Normally you do not need to set this parameter.
    Optional, well known directories will be searched by default.

PREFER_SITE_TAKEOVER
    Defines whether RA should prefer to switchover to slave instance instead of restarting master locally.
    Optional. Default value: true.

DUPLICATE_PRIMARY_TIMEOUT
    Time difference needed between two primary time stamps, if a dual-primary situation occurs. If the time difference is less than the time gap, than the cluster hold one or both instances in a "WAITING" status. This is to give a admin a chance to react on a failover. A failed former primary will be registered after the time difference is passed. After this registration to the new primary all data will be overwritten by the system replication.
    Optional. Default value: 7200.

AUTOMATED_REGISTER
    Defines, whether a former primary instance should be registered automatically by the resource agent during cluster/resource start, if the DUPLICATE_PRIMARY_TIMEOUT is expired.
    Default value: false.

SAPHanaFilter
    Define SAPHana resource agent messages to be printed. This parameter should only be set of been requested by support engineers. The default is sufficient for normal operation.
    Optional.

SUPPORTED ACTIONS
This resource agent supports the following actions (operations):

start
    Starts the HANA instance or bring the "clone instance" to a WAITING status. Suggested minimum timeout: 3600.

stop
    Stops the HANA instance. Suggested minimum timeout: 3600.

promote
    Either runs a takeover for a secondary or a just-nothing for a primary. Suggested minimum timeout: 320.

demote
    Nearly does nothing and just mark the instance as demoted. Suggested minimum timeout: 320.

notify
    Always returns SUCCESS. Suggested minimum timeout: 10.

status
    Reports whether the HANA instance is running. Suggested minimum timeout: 60.

monitor (Master role)
    Reports whether the HANA instance seems to be working in master/slave it also needs to check the system replication status. Suggested minimum timeout: 700. Suggested interval: 60.

monitor (Slave role)
    Reports whether the HANA instance seems to be working in master/slave it also needs to check the system replication status. Suggested minimum timeout: 700. Suggested interval: 61.

validate-all
    Reports whether the parameters are valid. Suggested minimum timeout: 5.

meta-data
    Retrieves resource agent metadata (internal use only). Suggested minimum timeout: 5.

methods
    Suggested minimum timeout: 5.

RETURN CODES
The return codes are defined by the OCF cluster framework. Please refer to the OCF definition on the website mentioned below. In addition, log entries are written, which can be scanned by using a pattern like "SAPHana.*RA.*rc=[1-7,9]".

EXAMPLES

* Below is an example configuration for a SAPHana resource.
    In addition, a SAPHanaTopology resource is needed to make this work.

    primitive rsc_SAPHana_SLE_HDB00 ocf:suse:SAPHana \
    operations $id="rsc_sap_SLE_HDB00-operations" \
    op start interval="0" timeout="3600" \
    op stop interval="0" timeout="3600" \
    op promote interval="0" timeout="3600" \
    op monitor interval="60" role="Master" timeout="700" \
    op monitor interval="61" role="Slave" timeout="700" \
    params SID="SLE" InstanceNumber="00" PREFER_SITE_TAKEOVER="true" \
    DUPLICATE_PRIMARY_TIMEOUT="7200" AUTOMATED_REGISTER="false"

    ms msl_SAPHana_SLE_HDB00 rsc_SAPHana_SLE_HDB00 \
    clone-max="2" clone-node-max="1"

* Search for log entries of the resource agent:

    # grep "SAPHana.*RA.*rc=[1-7,9]" /var/log/messages

* Check for working NTP service:

    # ntpq -p

FILES

/usr/lib/ocf/resource.d/suse/SAPHana
        the resource agent itself

/usr/lib/ocf/resource.d/suse/SAPHanaTopology
        the also needed topology resource agent

/usr/sap/$SID/$InstanceName/exe
        default path for DIR_EXECUTABLE

/usr/sap/$SID/SYS/profile
        default path for DIR_PROFILE

LIMITATIONS
For the current version of the SAPHana resource agent software package the support is limited to the following scenarios and parameters:
1. Two-node clusters with single-box to single-box system replication.
2. Technical users and groups such as sidadm are defined locally in the Linux system.
3. Time synchronization between the cluster nodes using NTP.
4. There is no other SAP HANA system (like QA) on the replicating node which needs to be stopped during takeover.
5. Only one system replication for the SAP HANA database.
6. Both SAP HANA instances have the same SAP Identifier (SID) and Instance Number.
7. Beside SAP HANA you need SAP hostagent to be installed on your system.
8. Automated start of SAP HANA instances during system boot must be switched off.
9. The current resource agent supports SAP HANA in System replication beginning with HANA version 1.0 SPS 7 patch level 70.

SEE ALSO
ocf_suse_SAPHanaTopology(7) , ntp.conf(5) , https://www.suse.com/products/sles-for-sap/resource-library/sap-best-practices.html , http://clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Pacemaker_Explained/s-ocf-return-codes.html

AUTHORS
F.Herschel, L.Pinne.

COPYRIGHT
(c) 2014 SUSE Linux Products GmbH, Germany.
The resource agent SAPHana comes with ABSOLUTELY NO WARRANTY.
For details see the GNU General Public License at http://www.gnu.org/licenses/gpl.html