Benutzer-Werkzeuge

Webseiten-Werkzeuge


comp:saprc

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
comp:saprc [2010-05-16 13:49] – Erweiterung um optionalen DB-Start wernercomp:saprc [2010-06-08 14:09] – Fipptehler werner
Zeile 1: Zeile 1:
 +====== SAP will nicht starten ======
 +
 +...und zwar aus Gründen, die vermutlich am Betriebssystem liegen? Genau das lag bei einem neu installierten SAP Solution Manager (DB: Oracle 10.2.0.2, OS: SUSE Linux Enterprise Server 10, Architektur: Linux x86_64) vor...
 +
 +Der SAP-Support teilte mir mit, dass das Problem aus einem Namenskonfikt zwischen dem Novell-Paket "sapinit" und dem SAP-Systemscript "startsapserv" resultiere. Workaround bis zur Freigabe eines geänderten "sapinit" sei es, das Paket ganz zu deinstallieren.
 +
 +Naja, wenn es weiter nichts ist... :-( Aber schließlich sollte die Software bei einem Rechnerstart automatisch starten, also habe ich ein eigenes rc-Script geschrieben:
 +
 +<code bash>
 +#! /bin/bash
 +#
 +# /etc/init.d/mysap
 +#
 +#   and its symbolic link
 +#
 +# /usr/sbin/rcmysap
 +#
 +### BEGIN INIT INFO
 +# Provides:       MYSAP
 +# Required-Start: $remote_fs $syslog
 +# Should-Start:   sysstat
 +# Required-Stop:  $remote_fs $syslog
 +# Default-Start:  3 5
 +# Default-Stop:   0 1 2 6
 +# Short-Description:    Control script for SAP systems
 +# Description:    Starts and stops SAP systems on this machine, provides status statistics
 +### END INIT INFO
 +
 +# Fetch the boot script functions, if available
 +test -f /etc/rc.status && . /etc/rc.status
 +
 +# get configuration data
 +CONFIGFILE=/etc/sysconfig/mysap
 +test -f $CONFIGFILE && . $CONFIGFILE
 +
 +# Reset status of this service
 +rc_reset
 +
 +# Figure out what to do, and do it ;-)
 +case "$1" in
 +    start)
 +        for SAPSID in $MYSAP_SYSTEMS; do
 +            # set some variables, 
 +            # SAP system ID in upper and lower case letters
 +            SIDBIG=$(echo $SAPSID | tr /a-z/ /A-Z/)
 +            SIDSML=$(echo $SAPSID | tr /A-Z/ /a-z/)
 +            # and the SAP sidadm:
 +            SIDADM="${SIDSML}adm"
 +            # if requested, start the Oracle database first
 +            case $MYSAP_ORASID in
 +                *${SAPSID}*)
 +                    # the Oracle user:
 +                    ORASID="ora${SIDSML}"
 +                    # first start the Oracle listener as Oracle user
 +                    su - $ORASID -c "/oracle/$SIDBIG/102_64/bin/lsnrctl start"
 +                    # now start the SAP system as SAP user
 +                    su - $SIDADM -c "/sapmnt/$SIDBIG/exe/startsap"
 +                    ;;
 +                *)
 +                    # start the SAP system, not the DB
 +                    su - $SIDADM -c "/sapmnt/$SIDBIG/exe/startsap r3"
 +                    ;;
 +            esac
 +        done
 +        rc_status -v
 +        ;;
 +    stop)
 +        for SAPSID in $MYSAP_SYSTEMS; do
 +            # set some variables, 
 +            # SAP system ID in upper and lower case letters
 +            SIDBIG=$(echo $SAPSID | tr /a-z/ /A-Z/)
 +            SIDSML=$(echo $SAPSID | tr /A-Z/ /a-z/)
 +            # and the SAP sidadm:
 +            SIDADM="${SIDSML}adm"
 +            # if requested, the DB is shutdown too:
 +            case $MYSAP_ORASID in
 +                *${SAPSID}*)
 +                    # stop the complete SAP system
 +                    su - $SIDADM -c "/sapmnt/$SIDBIG/exe/stopsap"
 +                    # find the system's Oracle user
 +                    ORASID="ora${SIDSML}"
 +                    # stop the database listener
 +                    su - $ORASID -c "/oracle/$SIDBIG/102_64/bin/lsnrctl stop"
 +                    ;;
 +                *)
 +                    # stop the SAP system only
 +                    su - $SIDADM -c "/sapmnt/$SIDBIG/exe/stopsap r3"
 +                    ;;
 +            esac
 +        done
 +        rc_status -v
 +        ;;
 +    status)
 +        for SAPSID in $MYSAP_SYSTEMS; do
 +            SIDBIG=$(echo $SAPSID | tr /a-z/ /A-Z/)
 +            SAPPROCS=$(ps ax | grep "dw.sap$SIDBIG" | grep -v grep | wc -l)
 +            ORAPROCS=$(ps ax | grep "oracle$SIDBIG" | grep -v grep | wc -l)
 +            JVAPROCS=$(ps ax | grep jlaunch | grep $SIDBIG | grep -v grep | wc -l)
 +            ICMPROCS=$(ps ax | grep icman | grep $SIDBIG | grep -v grep | wc -l)
 +            SSSPROCS=$(ps ax | grep sapstartsrv | grep $SIDBIG | grep -v grep | wc -l)
 +            echo -n "Processes: System $SIDBIG: $SAPPROCS d+w, $ORAPROCS Oracle, "
 +            echo    "$JVAPROCS Java, $ICMPROCS ICM, $SSSPROCS sapstartserv"
 +        done
 +        rc_status -v
 +        ;;
 +    try-restart|restart)
 +        $0 stop
 +        $0 start
 +        ;;
 +    *)
 +        echo "Usage: $0 {start|status|stop|restart|try-restart}"
 +        exit 1
 +        ;;
 +esac
 +rc_exit
 +</code>
 +
 +Zum Abschluss noch ein
 +<code bash>
 +ln -s /etc/init.d/mysap /usr/sbin/rcmysap
 +insserv mysap
 +</code>
 +und die Sache funktioniert!
 +
 +Ach ja, die Konfigurationsdatei ''/etc/sysconfig/mysap'' sieht so aus:
 +<code bash>
 +## Path:        Productivity/Other
 +## Description: Parameters for SAP software on this machine
 +## Config:      mysap
 +#
 +# This file defines some parameters.
 +#
 +# There are no default values, since they highly depend on the
 +# individual system.
 +#
 +
 +## Type:                string
 +## Default:             ""
 +## Config:              ""
 +#
 +# the SAP systems to be controlled. Multiple systems separated by space.
 +# for example MYSAP_SYSTEMS="C11 UFO THX"
 +#
 +MYSAP_SYSTEMS="SID"
 +
 +## Type:                string
 +## Default:             ""
 +## Config:              ""
 +#
 +# the Oracle databases "under" the SAP systems to be controlled. Multiple
 +# databases may be given separated by space. On a standalone server, 
 +# MYSAP_ORASID should be the same as MYSAP_SYSTEMS.
 +# for example MYSAP_SYSTEMS="C11 UFO"
 +#
 +MYSAP_ORASID="SID"
 +</code>
  
comp/saprc.txt · Zuletzt geändert: 2010-12-09 14:53 von werner

Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki