Häufig vorkommende Informix Fehlermeldungen

http://learnet-lab.fernuni-hagen.de/Projects/Praktikum/Kran/web/KranFuzz...

Häufig vorkommende Informix Fehlermeldungen

Inhaltsverzeichnis

oninit startet nicht: loader_domain fehlt

Wenn man beim Starten von Informix folgende Meldung sieht:

15:55:01 Informix Dynamic Server 2000 Started.
15:55:01 missing informix loader domain file. please create one

so liegt das an einer fehlenden Datei namens ifx_loader_domain2. Genauer:

In $INFORMIXDIR findet man nach Anwendung eines rekursiven grep auf den String "loader domain" in der Datei $INFORMIXDIR/etc/install die folgenden Zeilen:

create_ifx_loader_domain_file()
{
cat << EOCMD | write_run_as_root
echo ""
echo "Creating ifx loader domain file....."
touch /var/adm/ifx_loader_domain2
chgrp informix /var/adm/ifx_loader_domain2
chmod 660 /var/adm/ifx_loader_domain2
echo ""
EOCMD
}

Auch ein

FFZJ0XJL:/usr/informix/bin> strings oninit | grep "ifx_loader"

/var/adm/ifx_loader_domain2

zeigt, dass nach der Installation diese Datei im oninit fest verdrahtet ist. Ein Blick auf die Rechte
der Datei zeigt:

FFZJ0XJL:/usr/informix/bin> ls -ail /var/adm/ifx_loader_domain2

2331 -rw-rw---- 1 root informix 0 Feb 01 11:49 /var/adm/ifx_loader_domain2

Es ist nicht möglich, den oninit zu starten, wenn /var/adm/ifx_loader_domain2 nicht in dieser Form vorhanden ist.

Dies bedeutet z.B. für die Installation von Informix in einem AIX HACMP-Cluster, daß man entweder auf beiden

Rechnern den install laufen läßt oder auf dem Secondary diese Datei von Hand erzeugt

(incl. aller symbolischen Links). In den mir hier zur Verfügung stehenden Versionen

war ifx_loader_domain2 aber nicht überall vorhanden:

Version Betriebssystem ifx_loader_domain2 steht im $INFORMIXDIR/etc/install
9.20.uc3 AIX 4.3.3 nein
9.21.uc4 AIX 4.3.3 ja
7.31.ud2 AIX 4.3.3 nein
9.21.uc5 Solaris 2.6 nein


Error buildung sysmaster

Beim oninit erscheint die Fehlermeldung: Error buildung sysmaster

Grund kann sein: der Benutzer informix kann kein login mehr machen und es erscheint
beim Initialisieren die Meldung

.... user informix not known or .......


-197 ISAM error: Partition recently appended to; can't open for write or logging.

Dieser Fehler trat beim Dropen einer Datenbank auf.
Abhilfe: Ein Level-0 Fake-backup machen:

# ontape -s -L 0
Archive to tape device '/dev/null' is complete.

Program over.

Danach funktioniert das droppen der Datenbank wieder!!


-908 Attempt to connect to database server (servername) failed.

Mögliche Fehlerursachen sind:

  • die Portnummern stimmen nicht überein.
    In der sqlhosts des Clients muss für den anzusprechenden Server dessen Portnummer
    aus der /etc/services stehen.
  • in der ONCONFIG fehlt der Eintrag für NETTYPE. Wenn man z.B. auf dem Linux-Server das Feld hinter NETTYPE leer läßt, so bekommt man auf den Clients, die eine Verbindung auf den Linux-Server machen wollen, den Fehler 908.
  • 908: Attempt to connect to database server (ffzj0xl7) failed.  
       No record locks available
    

    Dann einfach die Locks in der ONCONFIG hochsetzen.

  • 908: Attempt to connect to database server (vlinux) failed.
       ISAM Error: Record locked
    

    In diesem Fall sollte man in der ONCONFIG die Zeile mit NETTYPE prüfen. Der soctcp-Thread darf nicht auf einem CPU-VP laufen, sondern muß auf einem NET-VP lokalisiert sein:

    NETTYPE soctcp,2,50,NET
    

    Diese Änderung muß auf dem Zielserver gemacht werden, auf den sich der Client connecten will!

    Derselbe Fehler tritt auf, wenn man in der /etc/hosts zwei Zeilen für denselben
    Host hat:

    127.0.0.2       vonhaeften.JUDIT vonhaeften
    192.168.178.38       vonhaeften vonhaeften.JUDITH
    

    Die erste Zeile auskommentieren oder löschen, dann tritt der Fehler nicht mehr auf.


-922 Cannot get name of current working directory.

Dieser Fehler wird z.B. von dbaccess angezeigt, wenn man diesen in einem
Verzeichnis aufruft,
welches VOR dem Mounten mit einem Filesystem mit dem Recht 750
angelegt wurde.

Anmelden als User root und Verzechnis anlegen:

mkdir /tv
chmod 750 /tv

*Filesystem anlegen und an /tv anhängen:*

crfs -v jfs -g'uservg' -a size='1000' -m'/tv' -A''`locale nostr | awk -F: \\
'{print $1}'`'' -p'rw' -t''`locale nostr | awk -F: '{print $1}'`'

' -a frag='4096' -a nbpi='4096' -a ag='8'
mount /dev/lv02 /tv

Anzeigen der Berechtigung, wobei man sich als Nicht-Root-User anmelden muß:

FFZJ0XD2$cd /tv
FFZJ0XD2$ls -ail
ls: 0653-345 ./..: Berechtigung verweigert.
total 16
2 drwxr-sr-x 3 sys sys 512 Dez 06 10:34 .
16 drwxrwx--- 2 root system 512 Dez 06 10:34 lost+found

Erneuter Versuch nach Änderung der Rechte:

Anmelden als Root und dann:

FFZJ0XD2$su root1

Kennwort von root1: 
# cd /tv
# chmod 777 .
# ls -ail

total 24
2 drwxrwsrwx 3 sys sys 512 Dez 06 10:34 .
2 drwxr-xr-x 29 root sys 1536 Dez 06 10:24 ..
16 drwxrwx--- 2 root system 512 Dez 06 10:34 lost+found

Anmelden als normaler User und:

FFZJ0XD2$cd /tv
FFZJ0XD2$ls -ail
ls: 0653-345 ./..: Berechtigung verweigert.

total 16
2 drwxrwsrwx 3 sys sys 512 Dez 06 10:34 .
16 drwxrwx--- 2 root system 512 Dez 06 10:34 lost+found

Abmounten des Verzeichnisses und dann Anzeige der Rechte:


FFZJ0XD2$su root1

Kennwort von root1: 

# umount /tv
# cd /tv
# ls -ail

total 16
9256 drwxr-x--- 2 root system 512 Dez 06 10:24 .
2 drwxr-xr-x 29 root sys 1536 Dez 06 10:24 ..

Es kommt also darauf an, dass das vorher angelegte Verzeichnis die richtigen Rechte bekommt, weil beim Lesen und Schreiben offenbar dessen Rechte verwendet werden und nicht diejenigen des Inodes vom Mount-Point!

-930 Cannot connect to database server servername

Technote von IBM zum 930 Error

Mögliche Ursachen sind Tippfehler oder Schmierzeichen in der SQLHOSTS. Eine weitere Ursache könnte sein, dass der angegebene
Hostname im Netzwerk nicht bekannt ist: "ping rechnername" probieren. Wenn da keine Antwort kommt, dann in der /etc/hosts eintragen!!

Das "O" beim Servernamen "FFZJ0XDO" oder aber ein Schmierzeichen in der ersten Zeile im Wort "FFZJ0XD0" war der Fehler

-951 User username is not known on the database server.

Häufigste Fehlerursache ist ein abgelaufenes Passwort.Beim Ändern des Passwortes darauf achten: Der Benutzer selbst muß sein Paßwort ändern, nicht der Benutzer root.

Eine weitere Ursache kann in der /etc/hosts liegen: wenn diese z.B. die Zeile

192.168.178.26 vlinux.JUDITH vlinux

enthält, so wird beim Connect bei Nichteingabe des Usernamens nach dem Benutzer "username@vlinux.JUDITH" gesucht, den es natürlich nicht gibt. Es muß daher in der /etc/hosts immer der einfache Rechnername als erster Hostname stehen und erst danach
Rechnername.Domain:

192.168.178.26  vlinux vlinux.JUDITH
192.168.178.38  vonhaeften.JUDITH vonhaeften 

Bei dem Client (192.168.178.38 vonhaeften.JUDITH vonhaeften ) ist dies nicht erforderlich, lediglich beim Zielrechner, auf den man sich konnektieren will.

Der Fehler kann in einem Anwenderprogramm z.B. auch so auftreten:

Fehlermeldung:
(SQR 5528) INFORMIX SQL DATABASE error -951 (ISAM: 0) in cursor 0:
   Incorrect password or user bgpfp is not known on the database server.

Mögliche Ursachen dieses speziellen "951"er-Fehlers:

  • Dies trifft dann für jeden Benutzer der Datenbank zu: keiner kann sich mehr anmelden. In diesem Fall muß die Instanz gestoppt und wieder gestartet werden.
  • Vorher das Maintenance-Level prüfen: instfix -i | grep ML
    Um diesen Fehler auf AIX zu beheben, müssen folgende Pakete eingespielt werden
       bos.adt.prof.4.3.3.75.bff
       bos.adt.prof.4.3.3.76.bff
       bos.adt.prof.4.3.3.77.bff
       bos.rte.bind_cmds.4.3.3.75.bff
       bos.rte.libc.4.3.3.75.bff
       bos.rte.libc.4.3.3.78.bff
       bos.rte.libc.4.3.3.79.bff
       bos.rte.libc.4.3.3.80.bff
       bos.rte.libpthreads.4.3.3.75.bff
       bos.rte.libpthreads.4.3.3.77.bff
    
  • Manchmal hilft auch: Passwort ändern....Hierbei darauf achten: Der Benutzer selbst
    muß sein Paßwort ändern, nicht der Benutzer root.
  • Bei entsprechendem User NOCHECK bei FLAGS in der /etc/security/passwd setzen.
    (Bedeutung von NOCHECK: None of the system password restrictions defined in the /etc/security/user file are enforced for this password). Diese Option sollte auch für den User Informix gesetzt werden:
    informix:
       password          =
       flags             = NOCHECK
    

    damit dieser z.B. beim Erzeugen einer Instanz sich auch auf dieser anmelden kann, um die sysmaster-Datenbank zu generieren. Das hochziehen der Instanz selbst bedarf ja keines Anmeldens mittels Passwort, erst wenn SQL-Statements ablaufen,ist dieses notwendig.


-952 User's password is not correct for the database server.

The password that is specified for the server computer in your ~/.netrc file 
or in the USER clause of a CONNECT statement is incorrect. 
The database server does not accept (or cannot find) your account password.
Check that your password is specified correctly, and try again. 
This message appears with Version 6.0 and later.

Dieser Fehler bedeutet meistens, dass das Paßwort des Benutzers abgelaufen ist. Dann muss man ihm ein neues verpassen, er muß sich ev. noch einmal neu beim Betriebssystem anmelden und dann noch einmal sein Paßwort ändern. Danach klappt der Connect an Informix auch wieder.

Bei Usern, die kein Login machen dürfen, muß man als Root
das Passwort zweimal ändern, dann klappt es wieder mit dem Connect!


-956:Client host or user is not trusted by...

Folgende Ursachen sind denkbar:

  • der Rechner stand nicht mehr in der /etc/hosts

    (und zwar mit seinem vollqualifizierten Namen incl. Domaenen...)



    .netrc bei User informix auf dem
    FFZJ0XD2 eingefügt. Die sah so aus:


    machine FFZJ0XBT login informix password InformiX


    (alles in einer Zeile), und das funktionierte.

  • Weitere Fehlerquelle:
    
    database "pkid100p@ST000G01" 
    

    bei diesem Befehl sind die Gänsefüßchen wichtig, weil
    Informix sonst alles in Kleinbuchstaben verwandelen würde!!!
    Will man sich zum Beispiel als User "user1" im dbaccess mit obigem Statement auf dem Server anmelden, so muß dort für den User "user1" ein Login ohne Passwort möglich sein, d.h. user1 muß seinen Rechner bzw. sich selbst in der .rhosts des
    Zielservers eingetragen haben.

  • Weitere Fehlerquelle:


    Für Root muss ein Eintrag in der .rhosts im Homeverzeichnis von Root vorhanden sein:


    FFZJ0XCL root


    Dann ist Root vom FFZJ0XCL aus getrustet und kann auf den FFZJ0XD0 zugreifen.

  • Auf Solaris: Wenn in der /etc/nsswitch.conf folgendes steht:

    
    #
    # /etc/nsswitch.files:
    #
    # An example file that could be copied over to /etc/nsswitch.conf; it
    # does not use any naming service.
    #
    # "hosts:" and "services:" in this file are used only if the
    # /etc/netconfig file has a "-" for nametoaddr_libs of "inet" transports.
    
    passwd:     files
    group:      files
    hosts:     dns files
    ipnodes:    files
    networks:   files
    protocols:  files
    rpc:        files
    ethers:     files
    netmasks:   files
    bootparams: files
    publickey:  files
    # At present there isn't a 'files' backend for netgroup;  the system will
    #   figure it out pretty quickly, and won't use netgroups at all.
    netgroup:   files
    automount:  files
    aliases:    files
    services:   files
    sendmailvars:   files
    printers:       user files
    
    auth_attr:  files
    prof_attr:  files
    project:    files
    
    

    Dann kommt auch der 956! es muss umgedreht werden:

    hosts: files dns


-998


Hallo Christian,



anbei was ich auf die Schnelle gefunden habe:




It is used in the SQL layer to handle situations where the user
attempts to implicitly reconnect to a new server, i.e. when connected to
server by use of the CONNECT statement you are prevented from reconnecting
to another server through a DATABASE or START DATABASE statement.


He said that this error just started showing up and he was going to check
with the developers after I sent him this reason for the error and said that he
would get back to me after he talks with the developers on weather they made any
changes. He does see these errors from time to time but no users are complaining
about it.


He said they are still looking into the router problem.
He feels that it is a network problem that is causing the error and said
that I could go ahead and close out the case.


He said that he would reopen if needed in the future and would email me if
they do find the root cause on the network side.


-25572 Network driver cannot bind a name to the port

Folgende Ursachen kommen in Frage:

  • Alte oninit-Prozesse oder hängengebliebene Anwendungsprozesse (dbaccess) suchen und diese dann killen.
  • Ev. doppelt vergebene IP-Adressen in der /etc/hosts
  • Weitere Ursache: Wenn beim oninit -ivy in der ONCONFIG zuerst der tcp-eintrag als DBSERVER steht, aber der SHM-Eintrag erst als DBSERVERALIAS dasteht.....
  • IP-Adresse in der /etc/hosts stimmt nicht (pruefen mit ifconfig -a)
  • Falsche IP-Adressen in der SQLHOSTS-Datei.
  • Der Fehler tritt auch dann auf, wenn man beim "ping rechnername" die Meldung
     Network un reachable 

    erhält. Dies ist z.B. dann der Fall, wenn man eine PCMCIA-Netzwerkkarte nicht richtig in den PCMCIA-Slot des Notebooks gesteckt hat oder der Slot im Notebook eine Macke hat! Also zuerst sehen, dass der Slot auch funktioniert.....

  • Weitere Fehlermöglichkeiten: Die Rechnernamen in der SQLHOSTS stimmen nicht.

-25588 The appl process cannot connect to Dynamic Server "server-name".

Dieser war dadurch entstanden, dass auf dem / -Filesystem nicht mehr genügend Platz war. Beim Starten von Informix konnte dieses die Datei /INFORMIXTMP/.inf.online4 nicht anlegen. Nach Bereinigung des Root-Filesystems wurde Informix neu gestartet und das Problem war behoben.

Ursache kann auch eine Überschreitung der im NETTYPE angegebenen Maximalzahl der User sein, die sich über SHM connectieren dürfen. Da hier in Ihrem ONCONFIG-File nichts angegeben ist, gelten dort die Default-Werte, d.h.es können maximal 50 User sich gleichzeitig über SHM connecten. Der 51., 52. usw. bekommen dann den 25588-Error.

Andere Ursachen, wie z.B. ungenügende Anzahl Semophore oder SHM-Segmente kommen wegen der dynamischen SHM-Verwaltung bei AIX nicht in Frage.


The chunk '/dev/rdva1185p' will not fit in the space specified.

Diese Meldung bedeutet: Der Chunck selbst ist nicht so groß, wie man in dem

onspaces Befehl bei der Option -s angegeben hat.


KAIO: out of OS resources, errno = 11, pid = 31334 (AIX Fehler)

Dann sollte man die U-Variable


export IFMX_AIXKAIO_NUM_REQ=2048

erhöhen. Standard ist 1024, Maximum ist 4096, Minimum ist 128

Siehe Headsup-Report März 2003


Error buildung sysmaster

Beim oninit erscheint die Fehlermeldung: Error buildung sysmaster

Grund kann sein: der Benutzer *informix kann kein login* mehr machen und es erscheint beim Initialisieren die Meldung

.... user informix not known or .......

Informix startet nicht

Beim Starten mit oninit -v erscheint nur die Meldung

07:10:33 VP pid=52660 priority fixed at 65, former = 91
Wed Feb 6 07:10:34 2002
07:10:34 Event alarms enabled. ALARMPROG = '/usr/informix/bin/alarmhandler'

Ursache: es war keine sqlhosts vorhanden!


oninit -V: merkwürdige Fehlermeldungen wegen /usr/lib/libso.... (Nur AIX)

Der Befehl oninit -V bringt folgende Fehlermeldung:

Irgendeine /usr/lib ist nicht richtig konfiguriert..............

Von Seiten des Betriebssystems ist zu überprüfen, ob der IO-Server in Betrieb ist
(mit pstat –a | grep aio). Dieser ist defaultmäßig bei AIX nicht aktiviert und muss daher wie folgt aktiviert werden:

Vorgehen Kommandozeile/Smitty:

  • smitty dev
  • Asynchronous I/O
  • Trace Asynchronous I/O
  • START Trace

Erläuterung zum IO-Server: Der In- und Output läuft bei AIX über den Kernel (Default). Informix benötigt zur Kommunikation andere Kanäle (u.a. wegen Performancegewinn), die AIX mit dem IO-Server unterstützt.


onstat: Shared memory: permission denied.

Diese Meldung tritt z.B. auf, wenn man als User Informix das Kommando "onstat"
abgibt, der IDS jedoch als User root gestartet wurde. Dann gehört
nämlich das SHM-Segment (siehe ipcs) dem User root, und informix kann mittels
onstat nicht darauf zugreifen. Abhilfe: den IDS als User informix starten!


The specified service name....

Fehlermeldung beim CONNECT:

The specified service name or protocol is unknown. 

Ursache:

Die Verbindung zwischen einem Solaris-Rechner FFZD0YEA und einem AIX-Rechner FFZJ0XD0 muß so konfiguriert werden:

 ffzd0yea, SQLHOSTS:  usb_tcp_pr_a         ontlitcp     ffzd0yea      1531    
 ffzj0xd0, SQLHOSTS:  usb_tcp_pr_a         onsoctcp     FFZD0YEA      1531  

Warning: DB_LOCALE environment variable does not match locale of the database

Diese Meldung kam beim auswählen einer Datenbank unter dbaccess.

Lösung: In der /etc/environment muss die Variable DB_LOCALE=de_de.8859-1 gesetzt werden,
 anschliessend neu anmelden

Informix-Monitor Meldung: Could not connect to databaseserver over connection-name

Lösung:
Wert in der /db/inf/bin/inf_scanner.pm hochsetzen (CONNECT_TIMEOUT => 30.)
Anschliessend den Monitor herunterfahren (inf_monitor -k -s ffzj0xcl_svv) und dann
mit inf_monitor -s ffzj0xcl_svv wieder hochfahren.

The file /db/inf/dev/zav02v01/datendbs_001 does not exist.

Diese Meldung wird vom onspaces-Kommando gegeben, wenn das Verzeichnis, in welchem
der symbolische Link auf das Raw-Devices liegt, nicht der Gruppe Informix gehört:

ZAV02V01@root[zav02v01]: onspaces -c -d datendbs -p /db/inf/dev/zav02v01/datendbs_001 -o 4 -s 52224
The file /db/inf/dev/zav02v01/datendbs_001 does not exist.

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
CAPTCHA
Diese Frage dient dazu festzustellen, ob Sie ein Mensch sind und um automatisierte SPAM-Beiträge zu verhindern.
9 + 4 =
Lösen Sie dieses einfache mathematische Problem und geben Sie das Ergebnis ein. Für 1 + 3 geben Sie z.B. 4 ein.