Teoria Unidad 4: Operación y mantenibilidad

4.1 Bitácoras de Trabajo del DBMS
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.
Nos ayuda a recuperar la información ante algunos incidentes de seguridad, detección de comportamiento inusual, información para resolver problemas, evidencia legal, es de gran ayuda en las tareas de computo forense.
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.
Pueden obtenerse datos específicos de la transacción como:
  1.     Operación que se realizó
  2.     Usuario de BD
  3.     Fecha
  4.     Máquina
  5.     Programa
  6.     Tipo de conexión
  7.     Estado
Otras características o funciones añadidas complementarias serian:
  • No se requiere hacer cambios en los sistemas de producción o de desarrollo o en una simple instalación para la implementación de la bitácora.
  • A través de la parametrización se generan las pantallas de consulta y reportes sin necesidad de programar.
  • Acceso a la bitácora a través de una aplicación Web.
  • Control de Acceso a la información de la bitácora a través de Roles.
  • Se puede implementar en los sistemas de información que utilicen las principales bases de datos: Oracle, SQL Server, Informix, Sybase.
  • Permite hacer el seguimiento de todos los cambios que ha tenido un registro.
4.1.1 Funciones Específicas de las Bitácoras
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.
También tenemos la posibilidad de deshacer una modificación que ya se ha escrito en la base de datos, esto se realizará usando el campo del valor antiguo de los registros de la bitácora.
Los registros de la bitácora deben residir en memoria estable como resultado el volumen de datos en la bitácora puede ser exageradamente grande.
Las operaciones COMMIT y ROLLBACK establecen lo que se le conoce como punto de sincronización lo cual representa el límite entre dos transacciones consecutivas, o el final de una unidad lógica de trabajo, y por tanto al punto en el cual la base de datos esta (o debería estar) en un estado de consistencia. Las únicas operaciones que establecen un punto de sincronización son COMMIT, ROLLBACK y el inicio de un programa. Cuando se establece un punto de sincronización:
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.
4.1.2 Recuperación (Rollback)
En tecnologías de base de datos, un rollback es una operación que devuelve a la base de datos a algún estado previo. Los Rollback son importantes para la integridad de la base de datos, a causa de que significan que la base de datos puede ser restaurada a una copia limpia incluso después de que se han realizado operaciones erróneas. Son cruciales para la recuperación de caídas de un servidor de base de datos (crash); realizando rollback (devuelto) cualquier transacción que estuviera activa en el tiempo del crash, la base de datos es restaurada a un estado consistente.
En SQL, ROLLBACK es un comando que causa que todos los cambios de datos desde la última sentencia BEGIN WORK, o START TRANSACTION sean descartados por el sistema de gestión de base de datos relacional (RDBMS), para que el estado de los datos sea "rolled back"(devuelto) a la forma en que estaba antes de que aquellos cambios tuvieran lugar.
Una sentencia ROLLBACK también publicará cualquier savepoint (punto de guardado) existente que pudiera estar en uso.
En muchos dialectos de SQL, los ROLLBACK son específicos de la conexión. Esto significa que si se hicieron dos conexiones a la misma base de datos, un ROLLBACK hecho sobre una conexión no afectará a cualesquiera otras conexiones. Esto es vital para el buen funcionamiento de la Concurrencia.
La funcionalidad de rollback está normalmente implementada con un Log de transacciones, pero puede también estar implementada mediante control de concurrencia multiversión.
4.1.3 Permanencia (Commit)
En el contexto de la Ciencia de la computación y la gestión de datos, Commit (acción de comprometer) se refiere a la idea de consignar un conjunto de cambios "tentativos, o no permanentes". Un uso popular es al final de una transacción de base de datos.
Una sentencia COMMIT en SQL finaliza una transacción de base de datos dentro de un sistema gestor de base de datos relacional (RDBMS) y pone visibles todos los cambios a otros usuarios. El formato general es emitir una sentencia BEGIN WORK, una o más sentencias SQL, y entonces la sentencia COMMIT. Alternativamente, una sentencia ROLLBACK se puede emitir, la cual deshace todo el trabajo realizado desde que se emitió BEGIN WORK. Una sentencia COMMIT publicará cualquiera de los savepoint (puntos de recuperación) existentes que puedan estar en uso.
En términos de transacciones, lo opuesto de Commit para descartar los cambios "en tentativa" de una transacción, es un rollback.
4.2 Definición de los Modos de Operación de un DBMS (Alta, Baja, Recovery)
La vida de todo archivo comienza cuando se crea y acaba cuando se borra. Durante su existencia es objeto de constante procesamiento, que con mucha frecuencia incluye acciones de consulta o búsqueda y de actualización. En el caso de la estructura archivos, entenderemos como actualización, además de las operaciones, vistas para vectores y listas enlazadas, de introducir nuevos datos (altas) o de eliminar alguno existente (bajas), la modificación de datos ya existentes, (operación muy común con datos almacenados). En esencia, es la puesta al día de los datos del archivo.
Una operación de alta en un archivo consiste en la adición de un nuevo registro. En un archivo de empleados, un alta consistirá en introducir los datos de un nuevo empleado. Para situar correctamente un alta, se deberá conocer la posición donde se desea almacenar el registro correspondiente: al principio, en el interior o al final de un archivo.
El algoritmo de ALTAS debe contemplar la comprobación de que el registro a dar de alta no existe previamente. Una baja es la acción de eliminar un registro de un archivo. La baja de un registro puede ser lógica o física. Una baja lógica supone el no borrado del registro en el archivo. Esta baja lógica se manifiesta en un determinado campo del registro con una bandera, indicador o “flag” -carácter *. $, etc., -, o bien con la escritura o rellenado de espacios en blanco en el registro dado de baja
Altas
La operación de dar de alta un determinado registro es similar a la de añadir datos a un archivo. Es importante remarcar que en un archivo secuencial sólo permite añadir datos al final del mismo.
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 de la 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.
Propósito de Backup y Recuperación
Como administrador de copia de seguridad, la tarea principal es diseñar, implementar y gestionar una estrategia de backup y recuperación. En general, el propósito de una estrategia de recuperación de copia de seguridad y es para proteger la base de datos contra la pérdida de datos y reconstruir la base de datos después de la pérdida de datos.
Normalmente, las tareas de administración de seguridad son las siguientes:
  • Planificación y probar las respuestas a diferentes tipos de fallas.
  • Configuración del entorno de base de datos de copia de seguridad y recuperación.
  • La creación de un programa de copia de seguridad
  • Seguimiento de la copia de seguridad y entorno de recuperación
  • Solución de problemas de copia de seguridad
  • Para recuperarse de la pérdida de datos en caso de necesidad
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:
  • La preservación de datos, lo que implica la creación de una copia de base de datos para el almacenamiento a largo plazo
  • La transferencia de datos, lo que implica el movimiento de datos de una base de datos o un host a otro.
De Protección de Datos
Como administrador de copia de seguridad, su trabajo principal es hacer copias de seguridad y vigilancia para la protección de datos. Una copia de seguridad es una copia de los datos de una base de datos que se puede utilizar para reconstruir los datos. Una copia de seguridad puede ser una copia de seguridad física o una copia de seguridad lógica.
Copias de seguridad físicas: son copias de los archivos físicos utilizados en el almacenamiento y la recuperación de una base de datos. Estos archivos incluyen archivos de datos, archivos de control y los registros de rehacer archivados. En última instancia, cada copia de seguridad física es una copia de los archivos que almacenan información de base de datos a otra ubicación, ya sea en un disco o en medios de almacenamiento fuera de línea, tales como cinta.
Copias de seguridad lógicas: contienen datos lógicos, como tablas y procedimientos almacenados. Puede utilizar Oracle Data Pump para exportar los datos a archivos lógicos binarios, que posteriormente puede importar a la base de datos. Clientes de línea de comandos La bomba datos expdp y impdp utilizan el DBMS_DATAPUMP y DBMS_METADATA PL / SQL paquetes.
Las copias de seguridad físicas son la base de cualquier estrategia de recuperación de copia de seguridad sólida y las copias de seguridad lógicas son un complemento útil de las copias de seguridad físicas en muchas circunstancias, pero no son suficiente protección contra la pérdida de datos y sin respaldos físicos.
Las Fallas de Medios
La falta de medios es un problema físico con un disco que provoca un fallo de una leer o escribir en un archivo de disco que se requiere para ejecutar la base de datos. Cualquier archivo de base de datos puede ser vulnerable a un fallo de comunicación. La técnica de recuperación adecuada después de un fallo de los medios de comunicación depende de los archivos afectados y el tipo de copia de seguridad disponible.
Un aspecto particularmente importante de la copia de seguridad y recuperación se está desarrollando una estrategia de recuperación ante desastres para proteger contra la pérdida de datos catastrófica, por ejemplo, la pérdida de toda una serie de bases de datos.
Errores de los Usuarios
Los errores del usuario cuando se producen, ya sea debido a un error en la lógica de la aplicación o un error manual, los datos en una base de datos se modifican o eliminan incorrectamente. Errores de usuario se estima que la mayor causa de inactividad de base de datos.
La pérdida de datos debido a un error del usuario puede ser localizada o generalizada. Un ejemplo de daño localizado está eliminando a la persona equivocada en la tabla empleados. Este tipo de lesiones requiere la detección y la reparación quirúrgica. Un ejemplo de un daño generalizado es un trabajo por lotes que borra las órdenes de la empresa para el mes en curso. En este caso, se requiere una acción drástica para evitar una extensa base de datos de tiempo de inactividad.
Mientras que la formación de usuarios y el manejo cuidadoso de los privilegios pueden prevenir la mayoría de los errores de usuario, su estrategia de copia de seguridad determina la gracia de recuperar los datos perdidos cuando un error del usuario que hace perder los datos.
Errores de Aplicación
A veces, un mal funcionamiento de software puede dañar los bloques de datos. En una corrupción física, que también se conoce como la corrupción los medios de comunicación, la base de datos no reconoce el bloque en absoluto: la suma de comprobación no es válida, el bloque contiene todos los ceros, o el encabezado y el pie de página del bloque no coinciden. Si el daño no es muy amplio, puede a menudo repara fácilmente con bloque de recuperación de medios.
Preservación de Datos
Conservación de datos se relaciona con la protección de datos, pero tiene un propósito diferente. Por ejemplo, puede que tenga que conservar una copia de una base de datos tal como existía al final de la cuarta parte del negocio. Esta copia de seguridad no es parte de la estrategia de recuperación de desastres. Los medios a los que estas copias de seguridad se escriben a menudo disponible después de la copia de seguridad. Usted puede enviar la cinta en almacenamiento incendio o enviar un disco duro portátil a un centro de pruebas. RMAN proporciona una manera conveniente para crear una copia de seguridad y eximirla de su política de retención de copia de seguridad. Este tipo de copia de seguridad se conoce como una copia de seguridad de archivo.
Transferencia de Datos
En algunas situaciones, es posible que tenga que tomar una copia de seguridad de una base de datos o base de datos de componentes y moverlo a otra ubicación. Por ejemplo, puede utilizar el Administrador de recuperación (RMAN) para crear una copia de base de datos, cree una copia de tabla que se puede importar en otra base de datos, o mover una base de datos completa de una plataforma a otra. Estas tareas no son, estrictamente hablando, parte de una estrategia de backup y recuperación, pero requieren el uso de copias de seguridad de bases de datos, por lo que pueden incluirse en las tareas de un administrador de copia de seguridad.
Oracle Backup y Recuperación de Soluciones
Al implementar una estrategia de backup y recuperación, dispone de las siguientes soluciones disponibles:
  • Administrador de Recuperación (RMAN): Recovery Manager está completamente integrado con la base de datos Oracle para llevar a cabo una serie de actividades de copia de seguridad y recuperación, incluyendo el mantenimiento de un repositorio de RMAN de datos históricos acerca de las copias de seguridad. Se puede acceder a RMAN través de la línea de comandos oa través de Oracle Enterprise Manager.
  • Copia de Seguridad y Recuperación Gestionadas por el Usuario: En esta solución, realizar copias de seguridad y recuperación con una mezcla de comandos del sistema operativo host y SQL * Plus.
  • Recuperación de Comandos: Ustedes son responsables de determinar todos los aspectos de cuándo y cómo las copias de seguridad y la recuperación se hacen.
  • Estas soluciones están respaldadas por Oracle y se documentan, pero RMAN es la mejor solución para copia de seguridad y recuperación de bases de datos. RMAN proporciona una interfaz común para las tareas de copia de seguridad a través de diferentes sistemas operativos host, y ofrece varias técnicas de copia de seguridad que no están disponibles a través de métodos administrados por usuarios.
  • La mayor parte de este manual se centra en la copia de seguridad y recuperación de RMAN basado. Técnicas de copia de seguridad y recuperación gestionadas por el usuario se tratan en Realización de usuario-Managed Backup and Recovery. Las más destacables son los siguientes:
  • Copias de Seguridades Incrementales: Una copia de seguridad incremental almacena sólo los bloques modificados desde la última copia de seguridad. Por lo tanto, proporcionan copias de seguridad más compacta y una recuperación más rápida, lo que reduce la necesidad de aplicar de rehacer en archivo de datos de recuperación de los medios de comunicación. Si se habilita el seguimiento de cambios de bloque, entonces usted puede mejorar el rendimiento al evitar escaneos completos de todos los archivos de datos de entrada. Utilice el comando Copia de seguridad incremental para realizar copias de seguridad incrementales.
  • Bloquear los Medios de Recuperación: Usted puede reparar un archivo de datos con sólo un pequeño número de bloques de datos corruptos sin tomarlo fuera de línea o la restauración desde copia de seguridad. Utilice el comando BLOQUE RECOVER para realizar la recuperación del bloque de comunicación.
  • Compresión Binaria: Un mecanismo de compresión binaria integrado en base de datos Oracle reduce el tamaño de las copias de seguridad.
  • Copias de Seguridad Encriptadas: RMAN utiliza las capacidades de cifrado de copia de seguridad integrados en bases de datos Oracle para almacenar conjuntos de copia de seguridad en un formato codificado. Para crear copias de seguridad cifradas en el disco, la base de datos debe utilizar la opción de seguridad avanzada. Para crear copias de seguridad encriptadas directamente en cinta, RMAN debe utilizar la copia de seguridad de Oracle Secure interfaz SBT, pero no requiere la opción de seguridad avanzada.
  • Duplicación de la Base de Datos Automatizada: Crea fácilmente una copia de su base de datos, el apoyo a diversas configuraciones de almacenamiento, incluida la duplicación directa entre las bases de datos de ASM.
  • Conversión de Datos entre Plataformas: Ya sea que utilice RMAN o métodos administrados por usuarios, puede complementar las copias de seguridad físicas con copias de seguridad lógicas de objetos de esquema realizados con la utilidad Export Data Pump. Más tarde, puede utilizar Data Pump Import para volver a crear los datos después de la restauración y la recuperación. Copias de seguridad lógicas son en su mayoría más allá del alcance de la copia de seguridad y de recuperación de documentación.

4.3 Comandos de activación de los modos de operación
Comando STARTUP: Para el arranque de una base de datos hay tres fases de arranque, para realizar estas fases podemos utilizar startup más un comando, las tres fases son las siguientes:
  • Fase de no Montaje
  • Fase de Montaje
  • Fase de Apertura
Comando SHUTDOWN: Se utiliza parar una base de datos, pueden ser:
  • Shutdown Normal
  • Shutdown Immediate
  • Shutdown Transactional
  • Shutdown Abort
Comando Describe: Este comando permite conocer la estructura de una tabla, las columnas que la forman y su tipo y restricciones: DESCRIBE f1;
Comando SHOW TABLES y SHOW CREATE TABLE: Muestra las tablas dentro de una base de datos y muestra la estructura de creación de la tabla.
Modificación: Para realizar una modificación utilizamos el comando ALTER TABLE. Para usar ALTER TABLE, necesita permisos ALTER, INSERT y CREATE para la tabla.

4.4 Manejo de í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.
4.4.1 Tipos de índices
Existen diferentes tipos de índices algunos de ellos son:
  • Índices agrupados: Son los que definen el orden en que almacenan las filas de la tabla (nodos hoja/página de datos de la imagen anterior).
  • Índices no agrupados: tienen la misma estructura de árbol b que los índices agrupados, con algunos matices.
  • Índices compuestos: es un índice de varias columnas de una tabla.
  • Índices descendientes: Este tipo de índice almacena los datos en una columna o columnas de concreto en orden descendente. 
4.4.2 Reorganización de índices
Un paquete puede usar la tarea Reorganizar índice para reorganizar los índices de una base de datos individual o de varias bases de datos. Si la tarea solo reorganiza los índices de una base de datos individual, puede elegir las vistas o las tablas cuyos índices reorganiza la tarea.
Dentro de las tareas habituales de Mantenimiento de las Bases de Datos se encuentran aquellas destinadas al control y respaldo de las mismas como ser:
  • Control de Integridad
  • Chequeo de Consistencia
  • Copias de Seguridad o Compactación de las bases.
Pero también es necesario ejecutar trabajos de mantenimiento cuyos objetivos sean el de mantener la performance de las bases de datos y evitar su degradación. Esos trabajos son:
  • La Reorganización de Índices
  • La Actualización de Estadísticas.
La instrucción DBCC DBREINDEX reorganiza el índice de una tabla o todos los índices definidos para una tabla. La sintaxis de esta instrucción es:
DBCC DBREINDEX (’basededatos.dueño.nombre_de_tabla‘[, índice [, fillfactor]  ])   [ WITH NO_INFOMSGS ]
 4.4.3 Reconstrucción de índices
Es importante periódicamente examinar y determinar qué índices son susceptibles de ser reconstruidos. Cuando un Índice está descompensado puede ser porque algunas partes de Normalmente reconstruimos un Índice con el comando ALTER INDEX.
Observar cuando se ejecutaron sobre ese Índice las estadísticas.
La sentencia es la siguiente:
SELECT index_name, last_analyzed
FROM dba_indexed
WHERE table_owner=nb_usuario
Para actualizar las estadísticas:
Execute DBMS_STATS.gather_schema_stats (Esquema);
Comando ALTER INDEX: esta sentencia se utiliza para cambiar o reconstruir un Índice existente en la base de datos.
Para reconstruir un Índice bastaría con lazar la siguiente sentencia:
ALTER INDEX REBUILD;
Para reconstruir una partición de un Índice podríamos hacer lo siguiente
ALTER INDEX REBUILD PARTITION NOLOGGING;

Comentarios

Entradas populares de este blog

Teoria Unidad 3: Configuración y administración del espacio en disco

Relación del DBA con otras áreas de la Sistemas

Teoria Unidad 5: Seguridad