Anfänger – Error in Create database
- Dieses Thema hat 12 Antworten und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 12 Jahre, 1 Monat von
Anonym.
-
AuthorPosts
-
28. Juli 2011 um 18:59 Uhr #4129
AnonymInaktivHallo. Ich bin ein totaler Anfänger was DB2 angeht und möchte nur einen Eindruck bekommen von der Software; ich habe DB2 Express-C installiert aber komme nicht weiter; ich kann keinen neuen Datenbank anlegen. Ich habe vor mehreren Stunden mein Problem gepostet in developerWorks aber da meldet sich keiner, und ich hatte gestern hier mehrere Beiträge über ein ähnliches Problem gelesen. Vielleicht weisst einer von Ihnen eine Lösung zu meinem Problem:
DB: DB2-Express C V9.7.4
OS: Linux CentOS5.6 64Bit virtual machine (Virtuozzo/OpenVZ)
Installation: Wie hier: http://bitsofinfo.wordpress.com/2009/09/09/installing-and-uninstalling-db2-9-express-c-on-a-headless-ubuntu-box-i-e-from-the-command-line/ (entsprechen die offizielen von IBM, habe ich gecheckt). Das heisst: kein db2fs gefolgt, kein X Windows benutzt.Keine Fehlermeldungen während der Installation, die DB2 Instanz existiert und läuft. db2start läuft. Aber: Beim ausführen von einem "create database test" in der db2 Konsole kommt die Meldung:
"SQL0101N The statement is too long or too complex. SQLSTATE=54001".
Selbe Fehlemeldung beim Ausführen vom db2sampl script.
db2inst1/sqllib/db2dump/db2diag.log:
ZRC=0x8B0F000C=-1961951220=SQLO_NOMEM_STMTH
"No memory available in ‚Statement Heap’"
DIA8319C No memory available in the statement heap.und
Out of memory failure for Statement Heap.
Requested block size : 9247 bytes.
Physical heap size : 327680 bytes.
Configured heap size : 33554432 bytes.
Unreserved memory used by heap : 0 bytes.
Unreserved memory left in set : 0 bytes.Ich habe alles mögliche gelesen, gestern schon mehrere Beiträge in diesem Forum, auch über die "SQL1084C Shared memory segments cannot be allocated. SQLSTATE=57019". Den Fehler hatte ich bei einem ersten Versuch nach den IBM Dokumente, DB2 zu installieren. De-installiert, den link oben verfolgt, aber ein ähnliches Problem jetzt. Ich habe den instance_memory parameter versucht zu verändern, und auch andere, ohne Erfolg, ich versuchte einen Beitrag von Ihnen hier vom Jahr 2009 zu folgen (automatic SELF_TUNING_MEM ausschalten), aber ich konnte nur die Befehle finden für Datenbanken, nicht für Instanzen (ich habe noch keine Datenbanken). Ich nehme an, DB2 macht bei der Installation falsche Einschätzungen zu der Memory in meinem System, aus welchem Grund auch immer, und dann kommen die Probleme. Noch einige Details:
Meine Virtuelle Maschine hat 3 GB of RAM.
free
total used free shared buffers cached
Mem: 3145728 3145728 0 0 0 0
-/+ buffers/cache: 3145728 0
Swap: 3145728 22092 3123636In sysctl.conf steht:
kernel.shmmax=1610612736Vielen Dank,
Jesus
28. Juli 2011 um 20:00 Uhr #4277
AnonymInaktivHi Jesus [smiley=face-cool.png]!
Ich habe auch schon mit DB2 Express-C gearbeitet und leider gibt’s dafür ja keine Fix Packs (=Patches) und keinen Support.
Aber IBM stellt hin und wieder eine neue Version ins Netz. Von wann ist denn Dein Installation Image? Unter Umständen gibt’s ja eine frische Version.
Probier mal die für Dein System erforderlichen Einstellungen mit db2 autoconfigure ermitteln zu lassen. (Siehe http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.cmd.doc/doc/r0008960.html).
Dann könntest Du Deinen Command mal in der shell absetzen:
>db2 "create database Test"Vorher aber mal den Diagnose Level erhöhen:
>db2 update dbm cfg using diaglevel 4Nach dem Create Database mal in die Datei db2diag.log schauen. Das hilft wirklich sehr den Fehler einzugrenzen.
Noch besser ist es vor allen Tests … [olist][*]die Instance zu stopppen (db2stop), [*]das db2diag.log zu löschen, [*]DB2 zu starten (db2start) [*]und dann das CREATE zu probieren.[/olist] Somit bekommst Du ein scharf abgegrenztes Fehlerprotokoll – das kannst Du hier dann mal einstellen.
Gruß
Gernot
28. Juli 2011 um 20:41 Uhr #4381
AnonymInaktivHallo Gernot,
Vielen Dank für Deine Antwort.
1. Mein image hatte ich gestern auch heruntergeladen; habe gerade gecheckt, es gibt noch keine neue :-).
2. autoconfigure (gute Idee, kannte ich nicht) steht in Deinem link, dass es auch nur für databases ist, und ich habe noch keine. Anyway:su – db2inst1
cd /opt/ibm/db2/V9.7/bin
db2 autoconfigure apply none
SQL1024N A database connection does not exist. SQLSTATE=08003db2 attach to db2inst1
db2 autoconfigure apply none
SQL1024N A database connection does not exist. SQLSTATE=08003🙁
3. Diagnose Level erhöhen. Das gefällt mir.
db2 update dbm cfg using diaglevel 4
db2stop
(file gelöscht)
db2start
(der file existiert ab diesem Moment wieder, also nach dem restart aber vor dem offending create command)
db2 "create database Test"
(Na toll. Eine andere Fehlermeldung kommt jetzt):
SQL1224NÂ The database manager is not able to accept new requests, has
terminated all requests in progress, or has terminated the specified request
because of an error or a forced interrupt. SQLSTATE=55032
(Erneutes stop and start bringt nur):
SQL0900N The application state is in error. A database connection does not
exist. SQLSTATE=08003Das wird immer besser.
Vielen Dank für Deine Mühe,
Jesus
28. Juli 2011 um 21:16 Uhr #4454
AnonymInaktivHallo. ich habe inzwischen den admin server restartet (k.A. ob das was damit zu tun hatte) und die Instanz db2start. Jetzt kommt die "alte" Fehlermeldung wieder nach
db2 "create database Test"
SQL1084C Shared memory segments cannot be allocated. SQLSTATE=57019Allerdings ein paar mal (ich habe mehrmals es gestoppt und gestartet) kam die andere:
SQL0101N The statement is too long or too complex. SQLSTATE=54001Der neue file ist attached.
Das ganze schreit nach einer neuen Installation (zum dritten Mal). Bitte verbringe nicht viel Zeit damit, ich möchte nur etwas lernen, es ist nichts was mit meiner Arbeit zu tun hätte oder so. Auf jedem Fall ich appreciate Deine Zeit.
Viele Grüsse,
Jesus
29. Juli 2011 um 14:54 Uhr #4493
AnonymInaktivHallo Gernot. Habe X-Windows installiert, DB2 de-installiert, und versuche gerade mein Glück mit der Installation über die GUI von db2setup. Die ist aber auch nicht leicht, einige Fehlermeldungen müssen noch bereinigt werden bevor sie überhaupt startet; wish me luck!
Gruss,
Jesus
29. Juli 2011 um 16:15 Uhr #4517
AnonymInaktivHallo. db2setup will nicht starten; ich komme nicht weiter von einer Fehlemeldung "Exception in thread "main" java.lang.UnsatisfiedLinkError: awt (An exception was pending after running JNI_OnLoad)"… etc. Habe viele libraries installiert / probiert, aber nada. Hat jemand den Fehler schon gesehen?
Vielen Dank,
Jesus
29. Juli 2011 um 18:01 Uhr #4532
AnonymInaktivOK. Nach vielen Stunden, Sucherei im Internet und trial and error klappte es mit der Installation über die GUI. Es ging darum, dass viele graphische libraries fehlten (klar, ein Linux server in der cloud). Die Fehlermeldung, "Exception in thread "main" java.lang.UnsatisfiedLinkError: awt", hatte es schon angedeutet. Für den Fall dass jemand mal auf dem selben Fehler stosst, und db2setup als X-Applikation nicht starten kann, die libraries die es am Ende geschafft haben waren libXtst.i386 und libXtst.x86_64. Aber viele libXsomething hatte ich vorher auch installiert. Anyway, damit lief problemlos die db2setup als X-Windows GUI bei mir. Aber: Am Ende hat die Installation gemeckert, es gäbe einen minor error. Natürlich konnte eine database nicht generiert werden (DBTools oder so), und der "minor error" ist # ERROR: SQL1084C Shared memory segments cannot be allocated. SQLSTATE=57019. Toll. Mit anderen Worten, ich bin fast back to square one. Possible solution: http://listserv.sap.com/pipermail/linux.general/2005-January/004486.html. db2val lief successful, die Lösung im link für create database habe ich noch nicht probiert; ich hole jetzt ein paar Bier, die Nacht wird lang.
29. Juli 2011 um 20:18 Uhr #4542
AnonymInaktivHi Jesus,
erstmal: Prost! [smiley=beer.gif]
Ich hätte wetten können, dass der Fehler mit der Hauptspeicher-Verwaltung zusammenhängt und wollte Dir unbedingt einen Aufsätz empfehlen: "Der DB2 Self-Tuning Memory Manger" unter https://www.ruban.de/DB2_luw/DB2_UDB_Papers/db2_udb_papers.html.
Aber scheinbar gibt es ja andere Ursachen?!?! :-/
Viel Erfolg heute Nacht!
Gruß
Gernot
29. Juli 2011 um 23:20 Uhr #4546
AnonymInaktivHallo Gernot. Ich habe Deinen Self Tuning Papier gelesen und einiges da ausprobiert, aber spätestens bei den db commands scheitert es, da ich noch keinen Datenbank habe. Übrigens hast Du auch so eine Survival Guide für db2 commands? Nach viel lesen und ausprobieren, auch bei dem Linux RAM Speicher i.A., gehe ich davon aus, dass irgendwas mit meinem Speicher nicht sauber läuft, und ich werde die Maschine neustarten. Wie ein Freund von mir immer sagt, jeder Boot tut gut. Davor mache ich gerade einen Backup der wichtigen Sachen und transferiere es zu mir, das dauert noch eine Weile. Mal sehen.
Viele Grüsse,
Jesus
31. Juli 2011 um 12:10 Uhr #4548
AnonymInaktivHallo Gernot. Ich habe alles vorbereitet und werde morgen tagsüber den server neustarten während den working hours von meinem provider für den Fall. Frage: Kannst Du mir memory Werte für eine MINIMAL Ausführung von DB2 empfehlen? Das heisst, ca. 20 rows in ca. 4 (String) Felder in 2-3 Tabellen in einem einzigen Datenbank; die Datenbank soll von ca. 20 externen Programmen aufgerufen werden ein paar mal am Tag und dabei werden eben diese Strings herausgeholt. Ich habe einen virtuellen CentOS 5.6 64Bit, 3MB memory + 3MB swap, es laufen viele andere Applikationen dabei, mein sysctl.conf sieht zur Zeit so aus (ich habe da einiges ausprobiert aber bis jetzt nichts hat geholfen):
kernel.sem= 250 256000 32 1024
kernel.shmmni=1024
kernel.shmmax=3221225472
kernel.shmall=3774873
kernel.msgmnb = 65536
kernel.msgmni = 16384
kernel.msgmax = 65536
Bitte steck keine nennenswerte Zeit dabei, das ganze ist nur eine Spielerei.
Vielen Dank,
Jesus
1. August 2011 um 15:45 Uhr #4550
AnonymInaktivNach dem Server neustart:
su – db2inst2
db2 create database test
DB20000I The CREATE DATABASE command completed successfully.
Allerdings,
1. Ich habe noch nicht alle (nicht DB2) Services restartet die normalerweise laufen. Mal sehen was danach passiert.
2. Meine sysctl.conf enthält jetzt keine shmmax etc directives
3. DB2 ist automatisch gestartet, obwohl sie nicht unter chkconfig auftaucht
…
root 7581 0.0 0.3 88620 11296 ? Ss 16:09 0:00 /opt/ibm/db2/V9.7/bin/db2fmcd
…
dasusr2 10044 0.0 0.2 112888 6740 ? Sl 16:10 0:00 /home/db2users/dasusr2/das/adm/db2dasrrm
root 11389 0.0 1.1 854636 34776 ? Sl 16:10 0:00 db2wdog
db2inst2 11393 0.0 1.6 861116 52248 ? Sl 16:10 0:00 db2sysc
root 11394 0.0 0.9 592492 28556 ? S 16:10 0:00 db2ckpwd
root 11395 0.0 0.9 592492 28532 ? S 16:10 0:00 db2ckpwd
root 11396 0.0 0.9 592492 28532 ? S 16:10 0:00 db2ckpwd
db2inst2 11400 0.0 1.0 326840 32496 ? S 16:10 0:00 db2vend (PD Vendor Process – 1)
db2inst2 11416 0.0 0.9 573188 29124 ? Sl 16:10 0:00 db2acd ,0,0,0,1,0,0,0000,1,0,8a6740,14,1e014,2,0,1,11fc0,0x210000000,0x210000000,160000
dasusr2 11434 0.0 0.2 101036 6688 ? S 16:10 0:00 /opt/ibm/db2/V9.7/das/bin/db2fmd -i dasusr2 -m /opt/ibm/db2/V9.7/das/lib/libdb2dasgcf.so.
4. Die services db2fmcd und db2fmd konnte ich vor dem reboot nicht killen; ich habe alle commands versucht nach den Anleitungen aber nada.
OK; ich werde mich jetzt ein bisschen mit DB2 befassen und schauen wie man welche services bei Bedarf ein/ausschalten kann und mit der Datenbank an sich. Mal sehen.
Viele Grüsse,
Jesus
1. August 2011 um 18:47 Uhr #4551
AnonymInaktivHi Jesus,
gratuliere! [smiley=thumbsup.gif]
Diese ganzen Services, DAS (Administration Server), FM (Fault Monitor), Health Monitor etc pp, braucht man nicht. Wenn db2stop/db2start/db2 connect to xxxx funktionieren, dann ist das ausreichend.
Ich kenn mich mit CentOS/RHEL nicht aus, aber eventuell hilft Dir der Command [tt]dbosconf [/tt](sofern überhaupt vorhanden) weiter. Den Link zu Doku findest Du hier: http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.cmd.doc/doc/r0008113.html. Der hilft die passenden Kernel-Parameter zu ermitteln.
Weiterhin viel Erfolg!
Gruß
Gernot
1. August 2011 um 19:45 Uhr #4552
AnonymInaktivHallo Gernot,
OK danke, das ist ein sehr guter Tipp, wusste ich nicht; ich werde dann morgen vergleichen den memory Verbrauch wenn ich die services ausschalten kann. Fragen: Gibt es irgendwo eine Liste der services die man nicht braucht? Und: Wo finde ich die Liste der services die nach einem reboot gestartet werden?
Übrigens create database (und drop) laufen jetzt, db2 connect to databasename geht aber nicht (meine Lieblingsfehlermeldung: SQL1084C Shared memory segments cannot be allocated. SQLSTATE=57019). Die database ist gelistet unter db2 list database directory. Dein Tip mit den ausschalten der ganzen extra services werde ich auf jedem Fall folgen.
Viele Grüsse,
Jesus
-
AuthorPosts
You must be logged in to reply to this topic.