PDA

View Full Version : Informix Problem


mvvilleza
02-27-02, 05:04
Good day! Need help here, I've been having problem initializing Informix.

Whenever I execute oninit -i, I receive error message "fatal error in shared memory initialization". And if I look at the online.log file, it states that "The chunk <path> must have owner-ID and group-ID set to Informix".

This error puzzles me, coz I've set the permissions (660) and user and group ownership to informix. What seems to be the problem????

Is the logfile correct or there's a problem with my configuration??? Hope you could help me ASAP, thanx.

degurly
02-27-02, 09:46
this error "fatal error in shared memory initialization" occurs after you perform the oninit -i command after the first time...you should only be intializing your Instance once (oninit -i) and then never again. Once you re-initalize it with the -i option, you loose all your data (ie, dbspaces, chunks that were created prior to the initialization).

rnealejr
02-27-02, 19:22
Did the previous reply answer your question ? Reply and let me know.

mvvilleza
02-27-02, 22:33
Yes of course this is the first instance.

chulapat
03-01-02, 00:44
:rolleyes:

If you use Unix system (such as Solaris or HP Unix), try to use command
"ps -ef | grep oninit" to check wheter you have another database instance running
on your database server.
Try to check your user and user priviledge and environment parameter that your user can initial your informix database engine. Especially INFORMIXSERVER
parameter that is the exact database server name which you want to initialize.

mvvilleza
03-01-02, 00:51
This is the first instance, because I've installed Unix and Informix for the first time. After configuring onconfig file and editing the Unix kernel parameters, I'm trying to initialize the informix database.

mvvilleza
03-01-02, 01:46
This is th situation:

* I have an existing working Informix on an SCO OpenServer 5 on server A.
* I have a spare server B and installed an SCO OpenServer 5 (identical to server A).
* Since I don't have an Informix installation program, I backed up the entire Informix directory on server A and restored it on server B.
* I created a user and group Informix on Server B w/c is again identical to server A including profile, home directory and ID etc.
* I created a RAW device on server B w/c is also identical in size and name as server A.
* I made the proper permissions on the RAW device w/c is 660 to user and group Informix.
* Afterwhich, created the link at the path specified on the ONCONFIG file.
* Edited the Unix kernel parameters: SHMMAX (409600000); SEMMNI (8192); SEMMNS (8192); SEMMAP (8192); SEMMNU (100).
* Linked the kernel and reboot the machine.
* Logged in as informix, and executed oninit -i.
* Then I encountered this problem.

Actually, I've already done this on the same server B but my server A is our Informix test server and it worked. Now, my server A is our Informix production server.

Any idea guys???

chulapat
03-01-02, 02:40
:p

I think you may check for some environment parameter, especially
if you have restore informix program in a different directory from
your informix home directory. It may cause your instance cannot
find your onconfig and sqlhosts file correctly.

Please check your necessary environment parameter as following.

INFORMIXDIR
INFORMIXSERVER
ONCONFIG
HOME
USER

It should be better, if you post values of these parameters on these
web board for me to analyse?

Good Luck

mvvilleza
03-01-02, 03:40
Here's the onconfig file:


#************************************************* *************************
#
# INFORMIX SOFTWARE, INC.
#
# Title: onconfig.std
# Description: INFORMIX-OnLine Configuration Parameters
#
#************************************************* *************************

# Root Dbspace Configuration

ROOTNAME infdbspace1 # Root dbspace name
ROOTPATH /proj/informix/dbspaces/infdbspace1
# Path for device containing root dbspace
ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)
ROOTSIZE 900000 # Size of root dbspace (Kbytes)

# Disk Mirroring Configuration Parameters

MIRROR 0 # Mirroring flag (Yes = 1, No = 0)
MIRRORPATH # Path for device containing mirrored root
MIRROROFFSET 0 # Offset into mirrored device (Kbytes)

# Physical Log Configuration

PHYSDBS infdbspace1 # Location (dbspace) of physical log
PHYSFILE 10000 # Physical log file size (Kbytes)

# Logical Log Configuration

LOGFILES 20 # Number of logical log files
LOGSIZE 20000 # Logical log size (Kbytes)

# Diagnostics

MSGPATH /u/informix/online1.log # System message log file path
CONSOLE /dev/null # System console message path
ALARMPROGRAM /u/informix/log_full1.sh # Alarm program path

# System Archive Tape Device

TAPEDEV /dev/null # Tape device path
TAPEBLK 16 # Tape block size (Kbytes)
TAPESIZE 10240 # Maximum amount of data to put on tape (Kbytes)

# Log Archive Tape Device

LTAPEDEV /dev/null # Log tape device path
LTAPEBLK 16 # Log tape block size (Kbytes)
LTAPESIZE 10240 # Max amount of data to put on log tape (Kbytes)

# Optical

STAGEBLOB # INFORMIX-OnLine/Optical staging area

# System Configuration

SERVERNUM 0 # Unique id corresponding to a OnLine instance
DBSERVERNAME mib1dbsvr1 # Name of default database server
DBSERVERALIASES # List of alternate dbservernames
NETTYPE ipcshm,,, # Configure poll thread(s) for nettype
NETTYPE tlitcp,,, # Configure poll thread(s) for nettype
DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed env.
RESIDENT 0 # Forced residency flag (Yes = 1, No = 0)

MULTIPROCESSOR 0 # 0 for single-processor, 1 for multi-processor
NUMCPUVPS 1 # Number of user (cpu) vps
SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to one

NOAGE 0 # Process aging
AFF_SPROC 0 # Affinity start processor
AFF_NPROCS 0 # Affinity number of processors

# Shared Memory Parameters

LOCKS 2000 # Maximum number of locks
BUFFERS 200 # Maximum number of shared buffers
NUMAIOVPS # Number of IO vps
PHYSBUFF 32 # Physical log buffer size (Kbytes)
LOGBUFF 32 # Logical log buffer size (Kbytes)
LOGSMAX 20 # Maximum number of logical log files
CLEANERS 1 # Number of buffer cleaner processes
SHMBASE 0x10000000 # Shared memory base address
SHMVIRTSIZE 8000 # initial virtual shared memory segment size
SHMADD 8192 # Size of new shared memory segments (Kbytes)
SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited
CKPTINTVL 300 # Check point interval (in sec)
LRUS 8 # Number of LRU queues
LRU_MAX_DIRTY 60 # LRU percent dirty begin cleaning limit
LRU_MIN_DIRTY 50 # LRU percent dirty end cleaning limit
LTXHWM 50 # Long transaction high water mark percentage
LTXEHWM 60 # Long transaction high water mark (exclusive)
TXTIMEOUT 0x12c # Transaction timeout (in sec)
STACKSIZE 32 # Stack size (Kbytes)

# System Page Size
# BUFFSIZE - OnLine no longer supports this configuration parameter.
# To determine the page size used by OnLine on your platform
# see the last line of output from the command, 'onstat -b'.


# Recovery Variables
# OFF_RECVRY_THREADS:
# Number of parallel worker threads during fast recovery or an offline restore.
# ON_RECVRY_THREADS:
# Number of parallel worker threads during an online restore.

OFF_RECVRY_THREADS 10 # Default number of offline worker threads
ON_RECVRY_THREADS 1 # Default number of online worker threads

# Data Replication Variables
# DRAUTO: 0 manual, 1 retain type, 2 reverse type
DRAUTO 0 # DR automatic switchover
DRINTERVAL 30 # DR max time between DR buffer flushes (in sec)
DRTIMEOUT 30 # DR network timeout (in sec)
DRLOSTFOUND /u/informix/etc/dr.lostfound # DR lost+found file path

# Backup/Restore variables
BAR_ACT_LOG /tmp/bar_act.log
BAR_MAX_BACKUP 0
BAR_RETRY 1
BAR_NB_XPORT_COUNT 10
BAR_XFER_BUF_SIZE 31

# Read Ahead Variables
RA_PAGES # Number of pages to attempt to read ahead
RA_THRESHOLD # Number of pages left before next group

# DBSPACETEMP:
# OnLine equivalent of DBTEMP for SE. This is the list of dbspaces
# that the OnLine SQL Engine will use to create temp tables etc.
# If specified it must be a colon separated list of dbspaces that exist
# when the OnLine system is brought online. If not specified, or if
# all dbspaces specified are invalid, various ad hoc queries will create
# temporary files in /tmp instead.

DBSPACETEMP # Default temp dbspaces

# DUMP*:
# The following parameters control the type of diagnostics information which
# is preserved when an unanticipated error condition (assertion failure) occurs
# during OnLine operations.
# For DUMPSHMEM, DUMPGCORE and DUMPCORE 1 means Yes, 0 means No.

DUMPDIR /tmp # Preserve diagnostics in this directory
DUMPSHMEM 0 # Dump a copy of shared memory
DUMPGCORE 0 # Dump a core image using 'gcore'
DUMPCORE 0 # Dump a core image (Warning:this aborts OnLine)
DUMPCNT 1 # Number of shared memory or gcore dumps for
# a single user's session

FILLFACTOR 90 # Fill factor for building indexes

# method for OnLine to use when determining current time
USEOSTIME 0 # 0: use internal time(fast), 1: get time from OS(slow)

# Parallel Database Queries (pdq)
MAX_PDQPRIORITY 100 # Maximum allowed pdqpriority
DS_MAX_QUERIES # Maximum number of decision support queries
DS_TOTAL_MEMORY # Decision support memory (Kbytes)
DS_MAX_SCANS 1048576 # Maximum number of decision support scans
DATASKIP off # List of dbspaces to skip

# OPTCOMPIND
# 0 => Nested loop joins will be preferred (where
# possible) over sortmerge joins and hash joins.
# 1 => If the transaction isolation mode is not
# "repeatable read", optimizer behaves as in (2)
# below. Otherwise it behaves as in (0) above.
# 2 => Use costs regardless of the transaction isolation
# mode. Nested loop joins are not necessarily
# preferred. Optimizer bases its decision purely
# on costs.
OPTCOMPIND 2 # To hint the optimizer

ONDBSPACEDOWN 2 # Dbspace down option: 0 = CONTINUE, 1 = ABORT, 2 = WAIT
LBU_PRESERVE 0 # Preserve last log for log backup
OPCACHEMAX 0 # Maximum optical cache size (Kbytes)

# HETERO_COMMIT (Gateway participation in distributed transactions)
# 1 => Heterogeneous Commit is enabled
# 0 (or any other value) => Heterogeneous Commit is disabled
HETERO_COMMIT 0

SQLHOSTS file:

mib1dbsvr1 ontlitcp mib1 mib1port1

SERVICES file:

mib1port1 2001/tcp

Informix .profile:

:
# @(#) profile 26.1 95/09/18
#
# Copyright (C) 1989-1995 The Santa Cruz Operation, Inc.
# All Rights Reserved.
# The information in this file is provided for the exclusive use of
# the licensees of The Santa Cruz Operation, Inc. Such users have the
# right to use, modify, and incorporate this code into other products
# for purposes authorized by the license agreement provided they include
# this notice and the associated copyright notice with any such product.
# The information in this file is provided "AS IS" without warranty.
#
# .profile -- Commands executed by a login Bourne shell
#

trap abort 2 15
INFORMIXDIR="/proj/informix"
EDITOR=vi

PATH=.:$HOME/bin:/proj/informix:/proj/informix/bin:$PATH #set command search path
CDPATH=.:$ATSLIB:$HOME/src:$HOME/src/work:$HOME/src/installed:$HOME/bin:


PS1=$LOGNAME"@`uname -n`->>"
MAIL=/usr/spool/mail/`logname` # mailbox location
export PATH MAIL INFORMIXDIR CDPATH EDITOR EXINIT

# use default system file creation mask

#eval `tset -m ansi:${TERM:-ansi} -m :\?${TERM:-ansi} -r -s -Q`

/usr/bin/prwarn # issue a warning if password due to expire

setcolor -n lt_green


clear
INFORMIXSERVER=mib1dbsvr2
ONCONFIG=onconfig.db2

export INFORMIXSERVER ONCONFIG DBPRINT ATSINSTALLDIR EXINIT CDPATH


Hope you can figure it out, thanks.

chulapat
03-01-02, 04:42
onconfig file, sqlhosts file and .profile file seem to be correct and
has no problem but
Could you check your command prompt which you use the command "oninit -i " try to type
echo $INFORMIXDIR
echo $INFORMIXSERVER
echo $ONCONFIG
echo $HOME
echo $USER

And verify their results wheter they are correct or not.

and Could you see an online.log file wheter it still have error message about you chunks ?

Good luck

chulapat
03-01-02, 04:48
I found something incorrect in your config files

in your onconfig file -->
DBSERVERNAME mib1dbsvr1 # Name of default database server

in your sqlhosts file -->
mib1dbsvr1 ontlitcp mib1 mib1port1

:) but in your .profile file

INFORMIXSERVER=mib1dbsvr2
ONCONFIG=onconfig.db2


Could you correct your .profile edit INFORMIXSERVER from mib1dbsrv2
to mib1dbsrv1 and make sure that your instance use file onconfig.db2
and try to command "oninit -i" again

Good Luck

mvvilleza
03-01-02, 04:57
Sorry, typed the wrong config. It should have been mib1port2 and mib1dbsvr2. By the way, I was doing what you instructed me.

COMMAND RESULT
echo $INFORMIXDIR /proj/informix
echo $INFORMIXSERVER mib1dbsvr2
echo $ONCONFIG onconfig.db2
echo $HOME /proj/informix
echo $USER

the last command produced a blank output, could this be the problem?? I logged in as user informix.