On Unix/Linux machines hosting some Sybase dataservers running multiple engines, it is always difficult to find out quickly what dataservers engines belong to. When you have dataservers running multiple engines, “showserver” or “ps” command line always show something like this:
sybase 9510 8892 246 Jul 11 ? 1858:08 ./ase/1503/ASE-15_0/bin/dataserver -ONLINE:1,0,0xffffff
Of course, with some Unix commands line you can find what dataservers engines are associated to, looking for PID, or connect to each dataservers and look into system table “sysengines” for PID. But I was always frustrated about that… When I connect to a machine, I want something that show up easily… There is a workaround for this: you just have to bind your dataservers names with your dataservers processes, using Unix links !
sybase@vbox:$ cd $SYBASE/$SYBASE_ASE/bin
sybase@vbox:$ ln -s dataserver SYBPARFRLIV01_DS
sybase@vbox:$ ln -s backupserver SYBPARFRLIV01_BS
sybase@vbox:$ ln -s monserver SYBPARFRLIV01_MS
So it should look like this:
lrwxrwxrwx 1 sybase dba 10 02:46 SYBPARFRLIV01_DS -> dataserver
lrwxrwxrwx 1 sybase dba 12 02:46 SYBPARFRLIV01_BS -> backupserver
lrwxrwxrwx 1 sybase dba 9 02:46 SYBPARFRLIV01_MS -> monserver
Sun Solaris operating system will not show the link name when you will issue a “ps”, so you may want to copy the binaries with a “cp”.
sybase@vbox:$ cp -p dataserver SYBPARFRLIV01_DS
Then you will have to modify your RUNFILE according your links addition. Mine looks like this:
#!/bin/sh # # Master device path:/srv/sybase/SYBPARFRLIV01_DS/dbf/master # Error log path:/srv/sybase/SYBPARFRLIV01_DS/log/SYBPARFRLIV01_DS.log # Directory for shared memory files: /products/sybase/ase/1503 # Adaptive Server name: SYBPARFRLIV01_DS # cd /products/sybase ./ase/1503/ASE-15_0/bin/SYBPARFRLIV01_DS \ -sSYBPARFRLIV01_DS \ -d/srv/sybase/SYBPARFRLIV01_DS/dbf/master.dat \ -e/srv/sybase/SYBPARFRLIV01_DS/log/SYBPARFRLIV01_DS.log \ -c/srv/sybase/SYBPARFRLIV01_DS/cfg/SYBPARFRLIV01_DS.cfg \ -M/products/sybase/ase/1503 \
Now when you will issue a “ps” command, you will explicitly see dataserver’s name for each engine ! The result is even better with a “top” command, helping you to find out quickly dataservers CPU activity.
sybase@vbox:$ ps -ef|grep SYB
sybase 9514 8892 140 Jul 11 ? 1874:18 ./ase/1503/ASE-15_0/bin/SYBPARFRLIV01_DS -ONLINE:5,0,0xffffff
sybase 9515 8892 137 Jul 11 ? 1715:21 ./ase/1503/ASE-15_0/bin/SYBPARFRLIV01_DS -ONLINE:6,0,0xffffff
sybase 9513 8892 146 Jul 11 ? 1851:21 ./ase/1503/ASE-15_0/bin/SYBPARFRLIV01_DS -ONLINE:4,0,0xffffff
sybase 8892 8891 242 Jul 11 ? 1991:39 ./ase/1503/ASE-15_0/bin/SYBPARFRLIV01_DS -sSYBPARFRLIV01_DS -
sybase 27200 1 0 Jun 27 ? 0:00 /bin/sh RUN_SYBPARFRLIV01_BS
sybase 8891 1 0 Jul 11 ? 0:00 /bin/sh RUN_SYBPARFRLIV01_DS
sybase 9512 8892 73 Jul 11 ? 1533:53 ./ase/1503/ASE-15_0/bin/SYBPARFRLIV01_DS -ONLINE:3,0,0xffffff
sybase 9511 8892 249 Jul 11 ? 2048:07 ./ase/1503/ASE-15_0/bin/SYBPARFRLIV01_DS -ONLINE:2,0,0xffffff
sybase 9510 8892 246 Jul 11 ? 1858:08 ./ase/1503/ASE-15_0/bin/SYBPARFRLIV01_DS -ONLINE:1,0,0xffffff
Hope this help.
Hi,
I have a solaris server with 8 processors. I need to configured 3 processors for SYBASE. As I am new to Sybase I am unable to go ahead. Any advise will be Please.
/Aditya
Comment by adityachs — December 29, 2009 @ 8:51 AM
Hi Aditya
i think you have a parameter in your .cfg file of your dataserver.Normaly in $SYBASE/dataserver.cfg.
The parameter is ” max online engines ” .
You can modify this paramater as below :
max online engines = number_of_processors in your case :
max online engines = 3
Reboot your dataserver after modification
Hope this helps !!!
See ya
Comment by Amit — December 30, 2009 @ 8:13 AM