How to determine a Sybase servers character set and sort order

Need to find the character set and sort order of that Sybase database? Log in and run the following:

sp_helpsort

Sybase 11 on a Linux 2.6 kernel

Want to install Sybase 11.0.3.x on a Linux server with a 2.6 kernel?  Then remember the following:

export LD_POINTER_GUARD=1

OK, this has to do with newer glibc and not the kernel.  Seems something has changed and without this the Sybase engine won’t start without it.  If this doesn’t work, try setting it to 0.  Figure out which value you need and put it the sybase user’s .profile.  I wouldn’t put in /etc/profile because I have know idea what affect it will have on other applications.

Now for the system tweaks:

vm.overcommit_memory=2
vm.swappiness=0
kernel.shmmax=1073741824
kernel.shmall=1073741824

The first two options reduce the chance the Linux kernel will swap to disk. The last two will give Sybase the shared memory it needs.  You can increase and decrease these values as needed.

I’ve successfully used these settings on a SuSE Linux Enterprise 10 server.

A good place to check for ASE on Linux problems is http://www.peppler.org/FAQ/linux.html.

(OK, kernel 2.6 doesn’t have anything to do with it, but I figured that’s what most people will be using in there searches, not glibc 2.x.x. Hopefully it will make these note/tips easier for others to find.)

Update:  While installing sybase 11 on a SLES10sp1 server, I kept running into the following errors:
00:2011/02/06 22:56:46.48 kernel os_create_region: shmat(327680): Invalid argument
00:2011/02/06 22:56:46.48 kernel kbcreate: couldn't create kernel region.
00:2011/02/06 22:56:46.48 kernel kistartup: could not create shared memory

Contrary to the message, upping shmmax didn’t fix anything.  To fix the problem, I had to use ulimit to increase the available stack size.  Adding the following to the start section /etc/intit.d/sybase file fixed the problem:
export LD_POINTER_GUARD=1 ; ulimit -s unlimited ; \

So now it looks like:

start)
echo -n "Starting Sybase ASE ... "
( cd ${SYBASE}/install ; \
unset LANG ; unset LC_ALL ; \
export LD_POINTER_GUARD=1 ; \
ulimit -s unlimited ; \

for run_server in RUN_* ; do \
su -c "startserver -f ${run_server}" sybase > /dev/null 2>&1 ; \
echo -n "${run_server} " ; \
done )
echo

touch /var/lock/subsys/sybase
;;

Sybase alarms anyone

Yesterday on of our databases starting giving an error during backups, and only backups, that I haven’t seen before:

Msg 3233, Level 17, State 1, Line 1
DUMP DATABASE for database 'master' failed:  an alarm function could not be installed.

This error only occurs during backups.   As usual,  the documents I’ve located give general descriptions of the cause but only a typical “not enough, add more” solution.   Nice, except I’d like to know what caused it in the first place so I can make sure it does not happen again.   So if anyone knows how to locate the process taking up all the alarms or how to clear them without restarting the server please drop me a line.