Identificando transacciones de forma clara y segura

Selecciona el idioma :

ℹ️
Por favor, inicia sesión para que tu progreso sea registrado. Sin iniciar sesión , podrás visualizar el video pero no se aumentará tu avance en el curso

Identificando transacciones de forma clara y segura


Si quieres identificar el ciclo de vida de transacciones y practicar con tablas y rollback, súmate al curso práctico de administración Oracle sobre transacciones y control de concurrencia y continúa con laboratorios.

Oracle es un sistema de bases de datos puramente transacciónal. Durante el tiempo de vida de una transacción, las modificaciones que hagamos sobre la base de datos no son definitivas.

Estas transacciónes se realizan sobre un segmento de ROLLBACK, donde se almacenan todas las modificaciones de cada transacción. Una vez que finaliza la transacción, se vuelcan al Tablespace original, donde se encuentra almacenada la tabla con los datos.

Esto permite que las modificaciones que se realicen en varias sentencias se puedan validar todas a la vez, o bien rechazarlas en su conjunto. Veamos ahora de manera práctica cómo podemos identificar transacciónes, y su ciclo de vida en Oracle.

Primero vamos a crear una tabla, si bien no es muy recomendado crear tablas desde el usuario SYS, al menos por esta vez vamos a permitirnoslo, ya que solo intentamos ejemplificar algo en concreto y no trabajar sobre una base de datos real. Entonces escribimos:

  • CREATE TABLE TRXS (VALOR VARCHAR2(100).

Ya tenemos la table creada, entonces vamos a comenzar una transacción. Vamos a insertar un valor en la tabla recién creada, escribimos:

  • INSERT INTO TRXS VALUES([1234])

Y vemos el mensaje 1 row created., que nos indica que se ha creado un registro.

Pues bien, en el momento que ejecutamos esta consulta, se gestiona por Oracle mediante una transacción. Si vamos a la vista que nos muestra las transacciónes, debemos ver la transacción que recién se ha creado, entonces escribimos:

  • SELECT ADDR, UBAFIL, STATUS FROM V$TRANSACTION

De esta manera solo vamos a mostrar tres columnas de esa vista. Y tenemos al menos una transacción aquí, el fichero del undo que contiene la transacción está identificado, en mi caso, con un 8 y su status es Active.

Veamos ahora cuál es ese fichero con ID 8:

  • SELECT FILE_NAME, FILE_ID, TABLESPACE_NAME FROM DBA_DATA_FILES WHERE TABLESPACE_NAME=[UNDOTBS2]

Aquí tenemos, el nombre del archivo, el id del archivo que es 8, y el tablespace a que pertenece, que es UNDOTBS2. Hagamos ahora un COMMIT para terminar la transacción y vamos a mostrar nuevamente la vista que nos devuelve las transacciónes:

  • SELECT ADDR, UBAFIL, STATUS FROM V$TRANSACTION

Presionamos Intro y observamos que ya no tenemos ninguna transacción.

Recordar que una transacción, un conjunto de sentencias SQL del tipo INSERT, UPDATE o DELETE. Hasta que no hagamos un COMMIT o un ROLLBACK, tendremos una transacción gestionando estas operaciones.

Vamos a verlo de manera práctica, por ejemplo, vamos a hacer un:

  • INSERT INTO TRXS VALUES ([AAA])

Presionamos Intro y se nos muestra el mensaje 1 row created. Si mostramos la vista de las transacciónes nuevamente:


identificando transacciones

¡Desbloquea el curso completo y certifícate!

Estás viendo el contenido gratuito. Desbloquea el curso completo para obtener tu certificado, exámenes y material descargable.

*Al comprar el curso, te obsequiamos dos cursos a tu eleccion*

*Ver la mejor oferta de la web*

¿Hay algún error o mejora?

¿Dónde está el error?

¿Cuál es el error?