How to create a manual shared memory dump on UNIX/Linux platforms?
SOLUTION
Via command prompt with environment settings.
1) First start the sybmon utility:
- $SYBASE/ASE-15_0/bin/dataserver -X –Pquine
2) Now please set the directory to dump the memory file.
- > set dumpdir <my_directory>
Note: This is optional, if you not set the directory, the dump will be placed in the current directory
3) Then list the servers through which the mem dump can be taken. This list is created from .krg file by default and is located in $SYBASE/$SYBASE_ASE:
- > shell echo $SYBASE/$SYBASE_ASE
- > cat <dir_as_printed_above>
Note: If this list file is not located in $SYBASE/$SYBASE_ASE but resides somewhere else, then use directory where it is located :
For Example:
- > shell echo $SYBASE/$SYBASE_ASE /opt/sybase/SUN_1503/ASE-15_0
- > cat /opt/sybase/SUN_1503/ASE-15_0
4) Now please choose the server for which memory dump needs to be taken:
- > attach <servername>
Now you will get a message: 'Attaching to <servername>, using shared memory id: #and prompt changes to <servername>:active>'
5) Take the memory dump
- :active> memdump proc
Halt all engines? (y/[n]) y
6) At last after the successful dump, exit:
- :active> exit
Note: For reference full syntax of memdump command (* indicates default):
memdump <file name> [nocache* | cache] [halt* | nohalt] [noproc | proc*] [nounused* | unused] [full]