How to properly Start/Stop SAP system through command line ?


Starting/stopping an SAP system is not a critical task, but the method that most of us follow to achieve this is sometimes wrong.

A common mistake that most of the SAP admins do is, making use of the 'startsap' and 'stopsap' commands for starting/stopping the system. 

These commands got deprecated in 2015 because the scripts were not being maintained anymore and SAP recommends not to use them as many people have faced errors while executing those scripts.

For more info and the bugs in scripts, you can check the sap note 809477. These scripts are not available in kernel version 7.73 and later.

So if these are not the correct commands, then how to start/stop the sap system? 

In this post, we will see how to do it in the correct way.

SAP SYSTEM VS INSTANCE

In SAP, an instance is a group of resources such as memory, work processes and so on, usually in support of a single application server or database server within a client/server environment. An instance runs and manages the application which has to be installed on the server.

An SAP system can consist of one or more instances, such as an SAP system with a single instance with only one central server or a client/server system with two or more separate instances. Basically, System is a collection of instances like CI, CS, AI, DB etc which can be on one server or multiple servers. A system also contains other processes which manage these instances.

A BIT ABOUT SAPSTARTSRV:

In Linux, each SAP instance is managed by a service/daemon named 'SAPSTARTSRV'. Without starting this service, you can't start/stop the instance.

So before starting/stopping the sap system, you have to make sure that the SAPSTARTSRV service is running.

CHECKING STATUS OF THE INSTANCES:

First you should check the status of the instances using the GetProcessList function of sapcontrol.

sapcontrol -nr <instance-no> -function GetProcessList

In the above image, you can see that both the instances are running.

STARTING/STOPPING AN SAP SYSTEM:

Stopping an SAP system

To stop the whole system, you have to use the StopSystem function of sapcontrol.

Here, you just have to provide only one instance number. The other related instance will be stopped automatically.

You should wait for 3-5 minutes to let system stop completely before checking the status.

sapcontrol -nr <instance-no> -function StopSystem


In the above image, you can see that both the instances have been stopped successfully using only one command.

Starting an SAP system

sapcontrol -nr <instance-no> -function StartSystem

Similarly, to start the whole system you have to use the StartSystem function of sapcontrol.

Here also, you just have to provide only one instance number. The other related instance will be started automatically.

You should wait for 3-5 minutes to let system start completely before checking the status.

In the above image, you can see that both the instances got started successfully using only one command.

Directly Restarting an SAP system

sapcontrol -nr <instance-no> -function RestartSystem

Note: You can also provide following options after StartSystem/StopSystem command:

[ALL|SCS|DIALOG|ABAP|J2EE|TREX|ENQREP|LEVEL [waittimeout in sec] [softtimeout sec]]

These options allows you to start/stop specific type of instance.

STARTING/STOPPING AN SAP INSTANCE:

Above process was about starting/stopping the whole system. Now we will see how to start/stop the individual instances.

Stopping an SAP instance:

To stop the individual instance, you have to use the Stop function of sapcontrol.

Here, you have to provide the respective instance number of the instance. The other related instance will not be stopped automatically. You have to stop it using same command with the instnce number of other instance.

sapcontrol -nr <instance-no> -function Stop

Starting an SAP instance:

Similarly to start the individual instance, you have to use the Start function of sapcontrol.

Here also, you have to provide the respective instance number of the instance. The other related instance will not be started automatically, you have to start it using same command with the instnce number of other instance.

sapcontrol -nr <instance-no> -function Start

SAPSTARTSRV SERVICE AND TROUBLESHOOTING:

Sometimes we may face issues while starting/stopping the syatem or checking status of the instances.

In order to fix those issues, we may need to start/stop the SAPSTARTSRV service.

So, let's see how to start/stop the SAPSTARTSRV service.

Stopping SAPSTARTSRV service:

We will first check whether the SAPSTARTSRV service is running or not using the ps command.

Now we will stop the service and check for the running services.

sapcontrol -nr <instance-no> -function StopService

As you can see in the above image, the SAPSTARTSRV service has been stopped for instance 00 .

Starting SAPSTARTSRV service:

While starting the SAPSTARTSRV service, it's mandatory to specify the SID of the system.

sapcontrol -nr <instance-no> -function StartService <sid>


Common issues that you may face:

Fail: NIECONN_REFUSED

This issue comes when your sapstartsrv service is not running for the instances. To resolve this issue, you just need to start this service.

For the demo purpose, we will intentionally stop the sapstartsrv service for instance 00


The above image shows that two sapstartsrv processes are running, one for each instance.


As you can see in the above image, sapstartsrv has been stopped for instance 00.

Now if we'll try to start/stop the system or get instance status, it will throw below error.


After starting the SAPSTARTSRV service, you can see in the below image that system has been started successfully without throwing an error.

Process of an instance is in "Running but not responding" state

In this case you need to stop the saptartsrv services and restart the service and the instances.

Comments

  1. Below is the sequence to start/stop SAP system,
    Start : sapstartsrv --> ASCS --> CI
    Stop : CI --> ASCS --> sapstartsrv

    Hope it helps and correct me if I am wrong ;)

    ReplyDelete
    Replies
    1. Thanks for mentioning this.
      But when we talk about SAP system, we should consider DB as well
      Your sequence is correct for application when u are starting individual instances.
      Sequence depends on the available instances in the system.
      One more point to note down here is, it's not necessary to stop Sapstartsrv while stopping a system.

      Delete
    2. I wanted to add the same point as Sachin Agrawal has already mentioned. Yes, you never have to start or stop sapstartsrv, as it is an automatic process taken care of by the OS. Your manual SAP "System" start stop sequence should be -
      Start: ASCS / SCS --> DB --> PAS --> AAS
      Stop: AAS --> PAS --> DB --> ASCS / SCS

      Delete
    3. As per my knowledge sequence is:
      Start - DB -> ASCS/SCS -> PAS -> AAS
      Stop - AAS -> PAS -> ASCS/SCS -> DB

      Delete
  2. Good blog
    Thanks for sharing

    ReplyDelete
  3. Hello
    Can you please make one blog on instance PAS CI CS ERS DI etc
    And sequence of stopping it

    ReplyDelete

Post a Comment