小阁飞空 一池碧映垂杨路 绛云深处 听尽潇潇雨
At times , people will simply not come through for you in the way you need.Forgive them and move on.
posts - 212,comments - 87,trackbacks - 0

Troubleshooting Problems With the Informix Database

Problems with the database usually result in messages being written to the Informix message log, which is stored in /usr/sgi/informix/online.log. You should monitor this file periodically. In addition, if problems with the database occur, view this message log for relevant information.

This section describes how to troubleshoot problems with the Informix database. The following topics are discussed:

You can find additional information about Informix in these sections:

Running Out of Space

If the Informix database runs out of space, you will see a message in the Informix log (/usr/sgi/informix/online.log) that is similar to the following:

SQLSTATE IX000: ISAM error: no free disk space

By default, the Informix database information is stored in /usr/sgi/informix/data/root_chunk. To add more space to the database without bringing down MediaBase or the Informix server:

  1. Log into the host as informix by entering the following:

    # su - informix

  2. Make sure there is enough space on the filesystem where the extension to root_chunk will be located. (In this procedure, the name of the space that will be added is called extend_root_chunk.)

  3. Touch the file extend_root_chunk by entering the following:

    # touch extend_root_chunk

  4. Make sure the file is owned by informix by entering the following:

    # chown informix.informix extend_root_chunk

  5. Allow the extend_root_chunk file to be read and written to by Informix, by entering the following:

    # chmod 660 extend_root_chunk

  6. Add a 200 megabyte extension named extend_root_chunk to the database by entering the following:

    # setenv INFORMIXSERVER odlshm

    # setenv INFORMIXDIR /usr/sgi/informix

    # cd /usr/sgi/informix/bin

    # onspaces -a rootdbs -p absolutePath -o 0 -s 200000

    absolutePath is the absolute pathname of the location of extend_root_chunk, for example, /usr/sgi/informix/data/extend_root_chunk.

    Wait until you see messages similar to the following:

    Adding chunk...

    Successfully Added chunk...

    #

    When you see these messages, the Informix server knows it has the additional space and will use it automatically.

Running Out of Locks

If the Informix database runs out of locks, you will see many messages in the Informix log (/usr/sgi/informix/online.log) similar to the following:

19:58:09  Lock table overflow - user id 55555, session id 1691

Note: One or a few messages like this in the log are normal. A problem exists only if you see this message many times.

To recover from this problem:

  1. Log into the server host as root, or become the superuser by entering the su command.

  2. Stop MediaBase and Informix by entering the following:

    # /etc/init.d/mediabase stop

    # /etc/init.d/informix stop

    If Informix does not stop, you can stop it by entering the following:

    # killall oninit

  3. Determine whether any shared memory segments exist by entering the following:

    # ipcs -ma

    If any shared memory segments belong to Informix, you will see output that looks similar to the following:

    IPC status from /dev/kmem as of Tue Jul 23 21:21:04 1996

    T ID KEY MODE OWNER GROUP CREATOR CGROUP NATTCH SEGSZ CPID LPID ATIME DTIME CTIME

    Shared Memory:

    m 1202 0x52564801 --rw-rw---- root informix root informix 12 5054464 16912 19696 21:21:00 21:21:01 20:23:00

    m 1203 0x52564802 --rw-rw---- root informix root informix 12 8192000 16912 19696 21:21:00 21:21:01 20:23:00

    m 1204 0x52564803 --rw-rw-rw- root informix root informix 14 622592 16912 19696 21:21:00 21:21:01 20:23:10

    m 1206 0x52564804 --rw-rw---- root informix root informix 12 8388608 16912 19696 21:21:00 21:21:01 20:41:38

  4. If any segments belong to Informix, as seen in step 3, remove all the segments, one at a time, by entering the following for each segment:

    # ipcrm -m SHARED_MEMORY_SEGMENT_ID

    For example, the following removes the segment whose shared memory ID is 1202:

    # ipcrm -m 1202

  5. Start Informix by entering the following command:

    # /etc/init.d/informix start

  6. Start MediaBase by entering the following command:

    # /etc/init.d/mediabase start

Shared Memory Creation Error

You may see the following message when initializing the database:

oninit: Fatal error in shared memory creation

Two conditions can cause this error:

  • Informix is already running when you try to initialize the database or start the Informix server. If this is the case you can ignore the message.

  • Memory segments were not cleaned up after an Informix crash or other failure. If this is the case, you must clean up the shared memory segments.

To recover from the error condition:

  1. Use one of the following commands to check if Informix is running:

    • # ps -ef | grep oninit

      If Informix is running, you will see many processes.

    • /usr/mbase/sbin/chkserveron

      If Informix is running, you will see the message ODL server ready.

  2. If the server is not running:

    • Determine whether any shared memory segments exist by entering the following:

      # ipcs -ma

      If any shared memory segments belong to Informix, you see output that looks similar to the following:

      IPC status from /dev/kmem as of Tue Jul 23 21:21:04 1996

      T ID KEY MODE OWNER GROUP CREATOR CGROUP NATTCH SEGSZ CPID LPID ATIME DTIME CTIME

      Shared Memory:

      m 1202 0x52564801 --rw-rw---- root informix root informix 12 5054464 16912 19696 21:21:00 21:21:01 20:23:00

      m 1203 0x52564802 --rw-rw---- root informix root informix 12 8192000 16912 19696 21:21:00 21:21:01 20:23:00

      m 1204 0x52564803 --rw-rw-rw- root informix root informix 14 622592 16912 19696 21:21:00 21:21:01 20:23:10

      m 1206 0x52564804 --rw-rw---- root informix root informix 12 8388608 16912 19696 21:21:00 21:21:01 20:41:38

    • If any segments belong to Informix, as seen above, remove all the segments, one at a time, by entering the following for each segment:

      # ipcrm -m SHARED_MEMORY_SEGMENT_ID

      For example, the following removes the segment whose shared memory ID is 1202:

      # ipcrm -m 1202

  3. Restart or reinitialize the database.

posuser Error Message

If you see a message that posuser is not found, the MediaBase system is probably using a shadow password file. To fix this, use the IRIX pwconv utility to install and update /etc/shadow with the information in /etc/passwd.

Cannot Connect Error Message

If you see a message such as cannot open or cannot connect, suspect:

  • the database is not correctly configured or set up

  • a corrupt database file

Make sure to configure the event logging threshold to debug.


Running Out of Space
Running Out of Locks
Shared Memory Creation Error
posuser Error Message
Cannot Connect Error Message

Next | Prev | Up | Top | Contents | Index
posted on 2006-11-21 03:18 潇潇雨 阅读(645) 评论(1)  编辑  收藏 所属分类: Database

FeedBack:
# re: Troubleshooting Problems With the Informix Database
2009-06-29 15:32 | w
nice document!!  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: