Author Archive

Transacciones ACID

miércoles, julio 25th, 2012

En el contexto de transacciones de bases de datos, ACID es un acrónimo de Atomico (Atomic), Consistente (Consistent), Aislado (Isolation) y Durabilidad(Durable). Las transacciones proporcionan un modelo sencillo de éxito o fracaso una o un conjunto de operaciones en la base de datos. Una transacción se compromete (es decir, todas sus acciones se ejecutaron de forma correcta), o se anula (es decir, si una accion fallo, entonces todas sus acciones hechas hasta ese momento se deshacen). Los atributos de una transacción ACID son las siguientes:

Atomicidad

Una transacción permite la agrupación de uno o más cambios en las tablas y filas en la base de datos para formar una operación atómica e indivisible. Es decir, o bien se producen todos los cambios o ninguno de ellos. Si por alguna razón la transacción no puede completarse, la operación debe restablecer el estado de la base de datos al momento en que estaba antes del inicio de la transacción a través de una operación de reversa (rollback).

Consistencia

Las transacciones siempre operan en una visión coherente de los datos y cuando terminan deben también dejar los datos en un estado coherente. Mientras que una transacción se ejecuta se generan inconsistencias momentaneas dentro de la base de datos, pero la transaccion no puede dejar ver estas inconsistencias; al finalizar, debido a que en la finalización todas las inconsistencias deben son eliminadas, la transaccion libera los datos para que puedan ser leídos/escritos nuevamente.

Aislamiento

Para una operación determinada, debería ser como si ésta se estuviese ejecutando sola en la base de datos. Los efectos de la ejecución simultánea de las transacciones son invisibles para esta transacción, y los efectos de esta transacción son invisibles para los demás hasta que la transacción ha comprometido su trabajo.

Durabilidad

Una vez que se confirma una transacción y sus efectos, se garantiza que persista incluso en el caso de fallos posteriores del sistema. Hasta antes de que se confirme la transacción, los cambios realizados por esa transacción no son durables, y no persisten en la cara de un fallo del sistema, al recuperarse de un fallo se deshacen las inconsistencias provocas por la ejecución no terminada de la transaccion.

La simplicidad de las transacciones ACID es especialmente importante en un entorno de base de datos distribuida, donde las transacciones se realizan de forma simultánea.

Desinstalar OTRS

lunes, junio 25th, 2012

Uno de los sistemas de ticket que cumple mejor con las tareas relacionadas a un servicio de ticket es OTRS, uno de los pocos (open source) que ademas cuenta con SLA (Service Level Agreement). Pero luego de la evaluación positiva de nuestra parte hubo que proceder a la desintalación y re instalación del software. No solo basta con borrar la base de datos sino que se siguieron los pasos inscritos en la lista de correos.

1. Se elimina la configuracion de OTRS del servidor web, en nuestro caso instalado en CEntOS se elimino el archivo /etc/httpd/conf.d/zzz_otrs.conf, luego de lo cual se reinicio el servicio, y ya quedo inhabilitado.
2. Se elimino la base de datos creada, en nuestro caso otrs
3. Eliminar el directorio $OTRS_HOME, en nuestro caso no había ninguno, pero se eliminó /opt/otrs
4. Eliminar el usuario otrs (userdel otrs) y el grupo (este ultimo no estaba creado)
5. Eliminar cualquier mail de la MTA, rm -rf /var/mail/otrs

Con eso se pudo reinstalar OTRS (forzandolo)

rpm -ivh –force otrs-3.1.4-01.noarch.rpm

Oracle 11g no exporta algunas tablas

jueves, abril 26th, 2012

En la versión Enterprise de Oracle 11g se añadió la funcionalidad de no exportar tablas con una cantidad de cero(0) registros. Esto yo asumo que lo hizo para la economización de espacio, CPU o cualquier otra razón. Pero para los que ocupamos esta utilidad para mover bases de datos enteras y trasaladarlas de un lado a otro, creo que nos dejo de ser muy util.

El tema se registra en que un tabla con creo registros no tiene ubicado espacio, por lo que no se exportará. Por lo mismo debemos saber que tablas son las que poseen cero registro y aplicar

ALTER TABLE nombre_tabla ALLOCATE EXTENT; 

Con esto la tabla ya va a ser exportada aun cuando no posea registros.
Para ello es ulti la consulta.
Con ella generamos la siguiente

 SELECT 'ALTER TABLE ' || table_name || ' ALLOCATE EXTENT; '
 FROM all_Tables
 WHERE owner = '&usuario' and num_rows=0;

La salida de esta script la ejecutas luego y estarás listo para exportar.

Extraer la cantidad de registros de una tabla en Oracle

jueves, abril 26th, 2012

Para extraer la información de que cantidad de registros tiene una tabla en la base de datos Oracle se debe utilizar la siguiente consulta:

SELECT table_name
FROM all_Tables
WHERE owner = '&usuario' and num_rows=0;

Esta retornará todas las tablas con cero(0) registros

Recomendación para organizar carpetas de proyectos

jueves, abril 26th, 2012

En la suerte de método de trabajo que tengo, debo organizar los distintos proyectos que manejo, con las distintas empresas que existen dentro de mi ambiente, por lo cual decidí en un momento tener la carpetas «proyectos»… Suena inteligente ¿no?

Luego de crear la carpeta de proyectos, que es sólo para que no interfiera con las otras carpetas existentes dentro de windows (y linux) establesco el cliente, entiendase como a la empresa que estoy atendiendo, luego de lo cual establezco el nombre que internamente le ha dado la empresa al proyecto, que si no tiene, yo le asigno uno.

Entenderan que yo to lo veo como un proyecto, debido a lo cual cualquier cosa que se hace es en sí un proyecto en potencia… incluso licitaciones que nunca llegan a un destino optimo para mi reciben la distincion como proyecto.

Luego de que tengo creada una carpeta por cliente (o por amigo) con el cual estoy haciendo algo entonces me dedico a rescatar los proyectos, o sea, enumero con nombre cada proyecto con el cual trabajo para ese cliente… el ejemplo mas claro es donde estoy actualmente en donde existen un par de proyectos internos…

Ejemplo Carpeta Proyectos

Para mí existen la carpeta doc, donde dejo documentacion generada por mi, o que se me entrego para trabajar, en la carpeta infoIn dejo toda esa información que llega por correo y aqui estan los documentos originales, cuando me llegan para ser trabajados. Esta la carpeta modelo, con subcarpeta datos y uml, en general dejo los modelos proveídos por la herramientas que se usen para el proyecto. En la carpeta release, igualmente que por fecha (en formato AAAMMDD) guardo los release de desarrollo (dev) quality assurance (QA) y productivo (prod). y Finalmente mi carpeta de trabajo wks, con las subcarpetas de desarrollo wksDev, de QA wksQA y producción wksProd. En ellas trabajo los códigos y demás cosas relacionadas con el codigo fuente del proyecto.

Con esto a grandes rasgos, ordeno las carpetas y mis días. Este articulo es para que reflexiones que tu cabeza trabaja de una forma, de esa forma es la que debes buscar plasmar, porque en momentos complicados el preguntarse ¿donde deje el archivo? es super importante.

Instalar el cliente de Oracle 10g en windows 7 (Home Premium)

jueves, febrero 9th, 2012

Oracle no tiene certificadas las aplicaciones de Oracle 10g para Windows 7. Por mi parte al intentar instalar el cliente de Oracle 10g reclamaba porque las versiones no eran compatibles. Para la instalación ejecute el setup con el siguiente parametro:

setup.exe -ignoreSysPrereqs

Con ello la instalación se logró en Windows 7 Home Premium, el unico problema es que el menu solo apareció al reinicio.