Archive for the ‘DB2’ Category

GRANT en DB2

domingo, septiembre 29th, 2013

Los GRANT que hay que tener en cuenta para DB2

GRANT USAGE ON SEQUENCE  < secuencia > TO < usuario >
GRANT ALTER ON SEQUENCE  < secuencia > TO < usuario > WITH GRANT OPTION
GRANT ALL ON < tabla_vista > TO USER < usuario > WITH GRANT OPTION
GRANT SELECT, INSERT ON < tabla_vista > TO USER  < usuario_1 >, USER < usuario_2 >

Qué hacer ante «DB2 SQL error: SQLCODE: -551, SQLSTATE: 42501»

domingo, septiembre 29th, 2013

La explicación de este error esta aquí, pero antes de que lo leas por completo, te invito a que revises los permisos (GRANT) debido a que este error sucede cuando alguien no tiene acceso al objeto de la base de datos.

Corregir «SQL0964C Transaction log for database is full» en DB2

domingo, septiembre 29th, 2013

Cuando utilizas la utilidad LOAD o IMPORT de DB2, sobretodo cuando las tablas o la cantidad de datos superan los millones, es común encontrar el error «SQL0964C Transaction log for database is full», esto porque los archivos de transaccion están llenos, para evitar que estos se llenen rápidamente existe la posibilidad de ampliar el tamaño de éstos, el comando estando conectados a la base de datos es:

UPDATE db cfg for < database_name > using LOGFILSIZ 5000

Sin estar conectados es igual pero con db2 (el programa cliente de db2):

db2 UPDATE db cfg for < datasbase_name > using LOGFILSIZ 5000

Despues de lo cual se debe aplicar los comandos

db2 force applications all
db2stop force

Ahora bien el valor minimo – máximo del tamaño son 1 a 524286, asumiendo que el tamaño de de página de 4K el tamaño real dentro del disco es el valor por los 4096 bytes, asi que se debe asegurar el espacio en disco antes de hacer alguna modificacion.

Visitar los siguientes enlaces para mayor información:

Fixing an «SQL0964C Transaction log for database is full» error
Ajuste de las características de anotaciones cronológicas de transacción
logfilsiz – Size of log files configuration parameter

Cambiando algoritmo de encriptamiento de la password en linux

viernes, abril 12th, 2013

En algunos casos, si requieres cambiar o actulizar el algoritmo de encriptamiento de la password de linux, debes aplicar lo siguiente para saber que algoritmo tienes

authconfig --test | grep hashing

Respuesta

password hashing algorithm is sha512

Para cambiarlo aplicar

authconfig --passalgo=md5 --update

Es «downgrade» de password (debido a que MD5 es masinseguro que sha512) lo necesite hacer debido a Error SQL30082N Reason Code 15 (o 24) en DB2

Esto afecta a todos los usuarios por lo que ellos deben cambiar su password despues del proximo ingreso. Para obligarlos

chage -d 0 nombre_de_usuario

Error SQL30082N Reason Code 15 (o 24) en DB2

viernes, abril 12th, 2013

Si ya estas trabajando con DB2 9.1 o superior pero en los últimos sistemas operativos de linux, puede aparecer el error

SQL30082N Security processing failed with Reason Code 15
"Security processing at the server failed "

o

SQL30082N Security processing failed with Reason Code 24
"USERNAME AND/OR PASSWORD INVALID "

La razon la encontre aquí y tiene que ver con el algoritmo de encriptación de la password. Recordemos que DB2 utiliza el usuario de sistema operativo, a él es quién tu le asignas los permisos para accesar a una base de datos o a un esquema de DB2.

El problema es que actualmente los sistemas operativos Linux vienen con el algoritmo sha512 implementado para encriptar la password, siendo que DB2 sólo trabaja con MD5 o SHA1, por lo tanto tienes que cambiar el algoritmo de encriptamiento de la password.

Actualización: Aquí explico como cambiar el algoritmo de encriptamiento en linux

Extraer el siguiente valor de una secuencia en DB2

viernes, abril 12th, 2013

Para extraer el valor actual utilicese

SELECT PREVVAL FOR [nombre_secuencia] FROM SYSIBM.SYSDUMMY1

Para obtener el siguiente valor

SELECT NEXTVAL FOR [nombre_secuencia] FROM SYSIBM.SYSDUMMY1