Una bitácora (log) es una herramienta (archivos o registros) que permite registrar, analizar,
detectar y notificar eventos que sucedan en cualquier sistema de información utilizado en las
organizaciones.
La estructura más ampliamente usada para grabar las acciones que se llevan en la base de datos.
Permite guardar las transacciones realizadas sobre una base de datos en específico, de tal manera
que estas transacciones puedan ser auditadas y analizadas posteriormente.
La estructura más ampliamente usada para grabar las modificaciones de la base de datos es la
Bitácora. Cada registro de la bitácora escribe una única escritura de base de datos y tiene lo
siguiente:
Nombre de la Transacción
Valor antiguo
Valor Nuevo
Es fundamental que siempre se cree un registro en la bitácora cuando se realice una escritura
antes de que se modifique la base de datos.
Se comprometen o anulan todas las modificaciones realizadas por el programa desde el punto de
sincronización anterior.
Se pierde todo posible posicionamiento en la base de datos. Se liberan todos los registros
bloqueados. Es importante advertir que COMMIT y ROLLBACK terminan la transacción, no el
programa.
Altas
En otro caso, si se quiere insertar un registro en medio de los ya presentes en el archivo, sería
necesaria la creación nueva del archivo.
El algoritmo para dar de alta un registro al final del fichero es como sigue:
algoritmo altas
leer registro de alta
inicio
abrir archivo para añadir
mientras haya más registros hacer {algunos lenguajes ahorran este bucle}
leer datos del registro
fin_mientras
escribir (grabar) registro de alta en el archivo
cerrar archivo
fin
Bajas
Existen dos métodos para dar de baja a un registro en un archivo secuencial, donde no es fácil
eliminar un registro situado en el interior de una secuencia: Para ello podemos seguir dos
métodos:
1) Utilizar y por tanto crear un segundo archivo auxiliar transitorio, también secuencial, copia del
que se trata de actualizar. Se lee el archivo completo registro a registro y en función de su lectura
se decide si el registro se debe dar de baja o no. En caso afirmativo, se omite la escritura en el
archivo auxiliar. Si el registro no se va a dar de baja, este registro se reescribe en el archivo auxiliar
Tras terminar la lectura del archivo original, se tendrán dos archivos: original (o maestro) y auxiliar.
El proceso de bajas del archivo concluye borrando el archivo original y cambiando el nombre del
archivo auxiliar por el del inicial.
2) Guardar o señalar los registros que se desean dar de baja con un indicador o bandera que se
guarda en un array; de esta forma los registros no son borrados físicamente, sino que son
considerados como inexistentes.
Inevitablemente, cada cierto tiempo, habrá que crear un nuevo archivo secuencial con el mismo
nombre, en el que los registros marcados no se grabarán.
Como administrador de copia de seguridad, es posible que se le pida que realice otros deberes que
se relacionan con copia de seguridad y recuperación:
Índices
El índice de una base de datos es una estructura alternativa de los datos en una tabla. El propósito
de los índices es acelerar el acceso a los datos mediante operaciones físicas más rápidas y
efectivas. En pocas palabras, se mejoran las operaciones gracias a un aumento de la velocidad,
permitiendo un rápido acceso a los registros de una tabla en una base de datos. Al aumentar
drásticamente la velocidad de acceso, se suelen usar sobre aquellos campos sobre los cuáles se
hacen búsquedas frecuentes.
Tipos de Índices
Resumen de Índices
Un índice es una estructura opcional, asociado con una mesa o tabla de clúster, que a veces puede
acelerar el acceso de datos. Mediante la creación de un índice en una o varias columnas de una
tabla, se obtiene la capacidad en algunos casos, para recuperar un pequeño conjunto de filas
distribuidas al azar de la tabla. Los índices son una de las muchas formas de reducir el disco I / O.
Si una tabla de montón organizado no tiene índices, entonces la base de datos debe realizar un
escaneo completo de tabla para encontrar un valor. Por ejemplo, sin un índice, una consulta de
ubicación 2700 en la tabla hr.departments requiere la base de datos para buscar todas las filas de
cada bloque de la tabla para este valor. Este enfoque no escala bien como datos de aumento de
volúmenes.
Por analogía, supongamos que un gerente de Recursos Humanos tiene un estante de cajas de
cartón. Las carpetas que contienen información de los empleados se insertan aleatoriamente en
las cajas. La carpeta de empleado Whalen (ID 200) es de 10 carpetas desde el fondo de la caja 1,
mientras que la carpeta para el rey (ID 100) se encuentra en la parte inferior del cuadro 3. Para
localizar una carpeta, el gestor busca en cada carpeta en la casilla 1 de abajo hacia arriba, y luego
se mueve de una casilla a otra hasta que se encuentra la carpeta. Para acelerar el acceso, el
administrador puede crear un índice que enumera de forma secuencial todos los ID de empleado
con su ubicación de la carpeta:
Del mismo modo, el administrador podría crear índices separados para los últimos nombres de los
empleados, los ID de departamento, y así sucesivamente.
Reorganización
Un factor clave para conseguir una E/S de disco mínima para todas las consultas de bases de datos
es asegurarse de que se creen y se mantengan buenos índices. Una vez creados los índices, se
debe procurar mantenerlos para asegurarse que sigan trabajando en forma óptima. A medida que
se agregan, modifican o borran datos se produce fragmentación. Esta fragmentación puede ser
buena o mala para el rendimiento del sistema, dependiendo de las necesidades del trabajo de la
base de datos.
Interna: Fragmentación dentro de páginas individuales de datos e índices con espacios libres que
generan la necesidad de más operaciones de E/S y más memoria para su lectura. Este hecho
disminuye el rendimiento en ambientes de lectura, pero en algunos casos puede beneficiar las
inserciones, que no requieren una división de páginas con tanta frecuencia.
Externa: Cuando el orden lógico de las páginas no es correcto, porque las páginas no son
contiguas. El acceso a los datos es mucho más lento por la necesidad de búsqueda de los datos
Reconstrucción
Es importante tener actualizadas las estadísticas de la base de datos. Para saber si las estadísticas
se están lanzando correctamente podemos hacer una consulta sobre la tabla dba_indexes y ver el
campo last_analyzed para observar cuando se ejecutaron sobre ese índice las estadísticas.
Blevel (branch level) es parte del formato del B-tree del índice e indica el número de veces que
Oracle ha tenido que reducir la búsqueda en ese índice. Si este valor está por encima de 4 el índice
deberá de ser reconstruido.
Nota: En algunos casos cuando alguno de los índices tiene algún tipo de corrupción no es posible
reconstruirlo. La solución en este caso es borrar el índice y recrearlo.
https://sites.google.com/site/itjabd23/home/asignatura/plan-de-estudios/unidad-4-operacion-y-
mantenibilidad