This is version . It is not the current version, and thus it cannot be edited.
[Back to current version]   [Restore this version]

INSTALLAZIONE DB2#

Note per 9.7: installare anche libstdc++6.xx.dev
  1. tar -xzvf db2XXXXX.tar.gz (XXX dipende dalla versione db2 che vuoi installare...ad esempio db2exc_950_LNX_x86.tar.gz)
  2. lanciare db2_install (./db2_install)
  3. al prompt eseguire DB2.EXP o EXP (non cambiare percorso di installazione che propone e attendere fine installazione)
    in caso di dipendenze sulle librerie installare quanto richiesto (dipende dalla distribuzione/versione di linux ma in genere è necessario libaio1 e libstdc++5)
  4. eseguire i seguenti comandi
groupadd -g 999 db2adm
groupadd -g 998 db2udf
groupadd -g 997 TUONOMEISTANZADB2
useradd -u 1004 -g db2adm -m -d /home/db2adm db2adm
useradd -u 1003 -g db2udf -m -d /home/db2udf db2udf
useradd -u 1002 -g TUONOMEISTANZADB2 -m -d /home/TUONOMEISTANZADB2 TUONOMEISTANZADB2

passwd db2adm (settando la tua PASSWORD)
passwd db2udf (settando la tua PASSWORD)
passwd TUONOMEISTANZADB2 (settando la tua PASSWORD)

in base alla tua versione... (VX_Y)
/opt/ibm/db2/VX.Y/instance/dascrt -u db2adm
/opt/ibm/db2/VX_Y/instance/db2icrt -a server -u db2udf TUONOMEISTANZADB2
/opt/ibm/db2/VX_Y/cfg/db2ln
. /home/TUONOMEISTANZADB2/sqllib/db2profile

su - TUONOMEISTANZADB2 (se non ti fa fare come root i seguenti)
db2set DB2COMM=tcpip
db2licm -a 'path_dove_ho_fatto_il_tar'/exp/db2/license/db2expc_uw.lic
exit
Assegno il gruppo root come membro di TUONOMEISTANZADB2(faccio girare db2 come utente root)

vi /etc/group
TUONOMEISTANZADB2:x:997:root


db2start
db2stop
db2 update dbm cfg using svcename 50000
db2start

(usare db2set -all per vedere quelle già esistenti)
db2set DB2COMM=tcpip
db2set DB2AUTOSTART=yes





POSSIBILI ERRORI#

1) se quando provi a collegarti ad un db da un sito compare un errore del tipo:

ERRORE:com.ibm.db2.jcc.am.DisconnectNonTransientConnectionException: jcct4[2043][11550]3.59.81 Exception java.net.ConnectException: Error opening socket to server localhost/127.0.0.1 on port 50,000 with message: Connection refused. ERRORCODE=-4499, SQLSTATE=08001

Vuol dire che devi settare in /etc/hosts

127.0.0.1 localhost.localdomain localhost databaseDB2 NOMESERVER
in particolare è utili databaseDB2 perchè nel virtual di tomcat poi lo usi così
url=jdbc:db2://databaseDB2:50000/NOMEDB

2) se quando provi a collegarti ad un db da un sito compare un errore del tipo:

ERRORE:com.ibm.db2.jcc.am.SqlSyntaxErrorException: "UTENTEDB2" does not have the required authorization or privilege to perform operation "SELECT" on object "SCHEMA.TABLE".. SQLCODE=-551, SQLSTATE=42501, DRIVER=3.59.81

Vuol dire che hai creato il database in questione non con l'utente del db2 ma da utente ROOT...devi droppare il db e ricrearlo facendo

su UTENTEDB2
(nota: in /etc/passwd assegnare all'utente db2 una shell bash)



A livello generale vi /etc/profiles

aggiungere

. /home/TUONOMEISTANZADB2/sqllib/db2profile

Per approfondimenti http://www.linux.org/docs/ldp/howto/DB2-HOWTO/


DB2 EXPRESS RESTRICTION #

What are the restrictions for DB2 Express-C?
The following restrictions apply:
DB2 Express-C Version 9.5, Fixed Term License (FTL):
Two processor cores with a total of maximum of four cores
No more than 4 GB of memory
DB2 Express-C Version 9.5 (no charge, non-warranted):
Up to two processor cores
No more than 2 GB of memory
http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.licensing.doc/doc/r0053243.html

PROBLEMA ALLOCAZIONE SHARED MEMORY#

Non so se in relazione alle restrizioni sopra succede che il db2, in fase di connessione ad uno o più db risponda:
SQL1084C Shared memory segments cannot be allocated. SQLSTATE=57019

Nel log del db2 dice:
MESSAGE : ZRC=0x850F0005=-2062614523=SQLO_NOSEG "No Storage Available for allocation" DIA8305C Memory allocation failure occurred. DATA #1 : Unable to attach 10 segments totalling 2521759744 bytes starting at address 0x00000000. One possible cause may be an improper setting for the shmmax Linux kernel tuneable.

Leggendo su internet ho provato a cambiare la shmmax (per ubuntu)

#così vedi la shmmax allocata dal sistema operativo
vi /proc/sys/kernel/shmmax

#provare a modificare tale impostazione in questo modo
vi /etc/sysctl.conf
#e aggiungere in fondo
kernel.shmmax = 4153352000

#Per applicare la modifica senza fare il reboot della macchina
sysctl -p /etc/sysctl.conf

#riverificare se è cambiato il valore shmmax rieseguendo il primo comando

NOTA:
Il valore da impostare per shmmax è da stabilire...metà della ram disponibile???
Dopo tale modifica in realtà dopo N connessioni a db diversi il problema si ripropone.
Anche applicando la seguente
https://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.messages.sql.doc/doc/msql01084c.html
nulla si risolve...

DB2 Versione 9.5 per Linux, UNIX e Windows 
--------------------------------------------------------------------------------

SQL1084C
Impossibile assegnare segmenti di memoria condivisa.

Spiegazione
Durante l'attivazione del database il Database manager non può assegnare la memoria condivisa.

Risposta dell'utente
La causa di questo errore potrebbe essere delle risorse di memoria insufficienti per il Database manager. Controllare che siano disponibili le risorse instance_memory sufficienti per soddisfare i requisiti di memoria del database e le risorse di memoria sufficienti del sistema operativo. Potrebbe essere necessario aumentare l'impostazione di configurazione del Database manager instance_memory o ridurre l'impostazione di configurazione del database database_memory.

Su Linux a 32-bit, aumentare il parametro shmmax del kernel a 256 MB. Se l'errore persiste con 256 MB, provare ad aumentarlo fino alla dimensione di memoria fisica.

Su Linux a 64-bit, aumentare il parametro shmmax del kernel a 1 GB. Se l'errore persiste con 1 GB, provare ad aumentarlo fino alla dimensione di memoria fisica.

Quando vengono aumentate o ridotte le impostazioni, effettuare tale operazione in piccoli incrementi (da 5 a 10% alla volta) finché riesce l'operazione.

Se le risorse di memoria sufficienti esistono ed il problema persiste, contattare il rappresentante di assistenza tecnica con le seguenti informazioni:

Descrizione del problema 
SQLCODE o numero messaggio 
Contenuto di SQLCA se possibile 
Impostazioni di configurazione del Database manager 
Impostazioni di configurazione del database 
sqlcode: -1084

sqlstate: 57019

Per approfondimenti:
http://www.ibm.com/developerworks/db2/library/techarticle/dm-0406qi/
http://www.linuxforums.org/forum/redhat-fedora-linux-help/17025-how-can-i-change-shmmax.html
http://listserv.sap.com/pipermail/linux.general/2005-January/004484.html
In particolare anche la successiva modifica non ha portato comunque agli effetti desiderati e dopo al massimo 3 connessioni a 3 db differenti si ottiene l'errore
http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.uprun.doc/doc/t0008238.htm

In realtà tutte le prove che ho fatto finora non hanno funzionato e qui dicono che:
http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.qb.migration.doc/doc/c0007192.html
If you are migrating to DB2 Version 9.5 32-bit database product on Linux operating systems, the new multithreaded architecture brings new restrictions due to the 32-bit virtual memory address limit such as: Agent private memory for all agent threads is now allocated within a single process. The process memory space might not be large enough to allocate the aggregate of all private memory for all agents. You might need to reduce the number of agents configured. Support for multiple databases is limited because all database shared memory segments for all databases are allocated in a single process memory space. You can reduce the memory usage for each database so that you can activate all databases successfully. However, the database server performance is impacted.
Consider migrating to DB2 Version 9.5 64-bit database product instead, to avoid running into any of the 32-bit kernel limitations.

DISINTALLAZIONE DB2#

Utilizzare il comando db2_deinstall presente nella cartella exp presente nel pacchetto di installazione (db2exc_950_LNX_x86.tar.gz) detarrato (quello usato per l'installazione)
...

Add new attachment

Only authorized users are allowed to upload new attachments.
« This particular version was published on 15-Oct-2010 16:12 by RaffaelePedrini.