Archive for the ‘Desarrollo’ 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

RedHat Cambia de MySQL a MariaDB

lunes, junio 17th, 2013

Uno de los que puede ser otro golpe bajo para Oracle es que RedHat decidio cambviar en su distribución de MySQL a MariaDB. Recordemos que MySQL fue adquirido por Oracle a través de la adquisición de Sun Microsystems, lo que nunca dejo muy contento a la comunidad de MySQL y así como paso con Java hizo desertar a su creador Monty (es llamado así, pero su nombre es Ulf Michael Widenius) de MySQL.

Esto tiene varias implicancias debido a que CentoS y el mismisimo Unbrakeable Linux (de Oracle) estan basados en RedHat, para que decir Fedora…

Además RedHat es dentro de la comunidad Linux el referente más importante a la hora de su instalación en servidores, y por lo general cuando toma un rumbo, más de otra distribución lo sigue.

Referencias:
ITware (Red Hat ditches MySQL, switches to MariaDB)

Instalando el listener de Oracle en modo silent

martes, mayo 14th, 2013

Debido a que ya pude hacer una Instalación del motor de la base de datos de Oracle en modo silent, y además crear una base de datos igualmente bajo la linea de mando, lo que quedaba para completar el circulo de la operatividad era instalar el listener, esto (si te guiaste por los dos articulos anteriores) se hace ejecutando

./netca /silent /responsefile /u01/app/oracle/product/11.2/db_1/inventory/response/netca.rsp

En 12c

./netca -silent -responsefile /u01/app/oracle/product/12.1/db_1/assistants/netca/netca.rsp

Encontrar en Moodle (Oracle) un texto dentro de columnas codificadas en Base64

miércoles, mayo 8th, 2013

Una de las cosas que hace moodle que en las columnas donde guarda texto, para evitar ciertas problematicas que solo ellos conocen, codifican el dato en Base64. Esto implica que en algunos casos el texto de la columna se va a ver de la siguiente forma (mirar columna CONFIGDATA):

moodle_blockinstances

Una de las maneras de decodificar directamente en Oracle estas columnas es así (un ejemplo con la tabla m_block de moodle):

select id, utl_raw.cast_to_varchar2(utl_encode.base64_decode(utl_raw.cast_to_raw( configdata))) 
from m_block_instances 
where blockname = 'html' 
and utl_raw.cast_to_varchar2(utl_encode.base64_decode(utl_raw.cast_to_raw( configdata))) like '%algun texto%'