Benutzer-Werkzeuge

Webseiten-Werkzeuge


users:werner:saprc

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:

#! /bin/bash
#
# /etc/init.d/oursap
#
#   and its symbolic link
#
# /usr/sbin/rcoursap
#
### BEGIN INIT INFO
# Provides:       UFZSAP
# 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:    Controls SAP systems installed on this machine
### END INIT INFO
 
# Fetch the boot script functions, if available
test -f /etc/rc.status && . /etc/rc.status
 
# get configuration data
CONFIGFILE=/etc/sysconfig/oursap
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 $OURSAP_SYSTEMS; do
            SIDBIG=$(echo $SAPSID | tr /a-z/ /A-Z/)
            SIDSML=$(echo $SAPSID | tr /A-Z/ /a-z/)
            SIDADM="${SIDSML}adm"
            ORASID="ora${SIDSML}"
            su - $ORASID -c "/oracle/$SIDBIG/102_64/bin/lsnrctl start"
            su - $SIDADM -c "/sapmnt/$SIDBIG/exe/startsap"
        done
        rc_status -v
        ;;
    stop)
        for SAPSID in $OURSAP_SYSTEMS; do
            SIDBIG=$(echo $SAPSID | tr /a-z/ /A-Z/)
            SIDSML=$(echo $SAPSID | tr /A-Z/ /a-z/)
            SIDADM="${SIDSML}adm"
            ORASID="ora${SIDSML}"
            su - $SIDADM -c "/sapmnt/$SIDBIG/exe/stopsap"
            su - $ORASID -c "/oracle/$SIDBIG/102_64/bin/lsnrctl stop"
        done
        rc_status -v
        ;;
    status)
        for SAPSID in $OURSAP_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 "Prozesse System $SIDBIG: $SAPPROCS d+w, $ORAPROCS Oracle, $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

Zum Abschluss noch ein

ln -s /etc/init.d/oursap /usr/sbin/rcoursap
insserv oursap

und die Sache funktioniert!

Ach ja, die Konfigurationsdatei /etc/sysconfig/oursap sieht so aus:

## Path:        Productivity/Other
## Description: Parameters for SAP software on this machine
## Config:      oursap
#
# 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 OURSAP_SYSTEMS="C11 UFO"
#
OURSAP_SYSTEMS="SID"

Diese Seite gibt es auch in Englisch.

users/werner/saprc.txt · Zuletzt geändert: 2010-10-08 20:38 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