You must close shared memory segments after a database
server failure.
Important: This procedure must be performed by
a DBA with experience using IBM®
Informix®. Consult
technical support for assistance. This procedure is for UNIX systems only.
In the event of a failure
of a database server instance, follow this procedure to delete shared
memory segments:
- Log on as user informix.
- Use the onmode -k command to take the
database server to offline mode and remove shared memory.
- If the onmode -k command fails and the
server is not offline, either run the onclean
-k command, or perform the following steps:
- Use the onstat -g glo command to
display multithreading information.
- In the output from the previous command, find the process
ID (pid) associated with the first instance of cpu in the class
column.
For example, in the following output from the
onstat
-g glo command, there are four occurrences of
cpu in
the class column, having pids of 2599, 2603, 2604, and 2605:
MT global info:
sessions threads vps lngspins
0 49 14 1
sched calls thread switches yield 0 yield n yield forever
total: 900100 898846 1238 27763 423778
per sec: 327 325 2 12 151
Virtual processor summary:
class vps usercpu syscpu total
cpu 4 0.92 0.10 1.02
aio 4 0.02 0.02 0.04
lio 1 0.00 0.00 0.00
pio 1 0.00 0.00 0.00
adm 1 0.00 0.01 0.01
msc 1 0.00 0.00 0.00
fifo 2 0.00 0.00 0.00
total 14 0.94 0.13 1.07
Individual virtual processors:
vp pid class usercpu syscpu total
1 2599 cpu 0.25 0.06 0.31
2 2602 adm 0.00 0.01 0.01
3 2603 cpu 0.23 0.00 0.23
4 2604 cpu 0.21 0.03 0.24
5 2605 cpu 0.23 0.01 0.24
6 2606 lio 0.00 0.00 0.00
7 2607 pio 0.00 0.00 0.00
8 2608 aio 0.02 0.02 0.04
9 2609 msc 0.00 0.00 0.00
10 2610 fifo 0.00 0.00 0.00
11 2611 fifo 0.00 0.00 0.00
12 2612 aio 0.00 0.00 0.00
13 2613 aio 0.00 0.00 0.00
14 2614 aio 0.00 0.00 0.00
tot 0.94 0.13 1.07
- Use the kill command to terminate
(in order) process IDs 2599, 2603, 2604, and 2605.
- If the shared segments have not been removed then follow
these steps:
- Determine the server number.
The server number
can be found by examining the onconfig file of
the Informix instance
- Add the server number to 21078.
For example,
if the server number is 1, then add 1 to 21078, giving 21079.
- Convert the sum from the previous step to hexadecimal.
In the previous example, 21079 is 5257 hexadecimal.
- Concatenate 48 to the hex value from
the previous step.
For example, 525748.
- Run the ipcs utility as root to display
the shared memory segments, if any, left open by the server. Search
the key column for the number from 4.d.
- Remove each shared memory ID associated with the number
from 4.d.
For more information about the onclean utility,
see the IBM
Informix Administrator's Reference.
Consult
your operating system documentation for the correct
ipcm syntax
for your system.