Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Unidad 4: Operacion y mantenibilidad

No description
by

Said Rod

on 2 June 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Unidad 4: Operacion y mantenibilidad

El DBMS (Sistema Manejador de Bases de Datos) mantiene una bitácora o diario en cinta o en disco, comúnmente, en el cual se registran los detalles de todas las operaciones de actualización, en particular, los valores iniciales y final del objeto modificado. Por tanto, si resulta necesario anular alguna modificación específica, el sistema puede utilizar la entrada correspondiente de la bitácora para restaurar el valor original del objeto restaurado.
4.1. Bitácoras del trabajo del DBMS
Unidad 4:
En cualquier momento, el programa podría decidir que es necesario hacer fallar la transacción, con lo que el sistema deberá revertir todos los cambios hechos por las operaciones ya hechas. En el lenguaje SQL se denomina COMMIT a aplicar_cambios y ROLLBACK a cancelar_cambios.
Las transacciones suelen verse implementadas en sistemas de bases de datos y, más recientemente, se han visto incorporadas a como gestiona un sistema operativo la interacción con un sistema de archivos (como varias características de las bases de datos, debido a que son muy similares arquitectónicamente).

4.1.3 Permanencia commit
un rollback es una operación que devuelve a la base de datos a algún estado previo. Los Rollbacks 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 crashes de un servidor de base de datos; realizando rollback(devuelto) cualquier transacción que estuviera activa en el tiempo del crash, la base de datos es restaurada a un estado consistente.
4.1.2 Recuperación rollback
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:
4.1.1. Funciones especifica de las bitácoras.
Operacion y mantenibilidad
Nombre de la Transaccion
Valor antiguo
Valor nuevo
La funcionalidad de rollback está normalmente implementada con un Log de transacciones, pero puede también estar implementada mediante control de concurrencia multiversión.
En el proceso de “Rollback”, SQL Server comienza a hacer un rollback de todas las transacciones que no fueron confirmadas además de las que fueron rechazadas, dejando de esta manera la base de datos en un estado consistente.
Este proceso de recuperación en algunos casos puede tardar mucho tiempo debido a la gran cantidad de información que tienen que replicar desde el log de transacciones. Es por eso que la frecuencia con la que se hacen los checkpoints dentro de la base de datos es crucial para el tiempo que tardara el servidor en ejecutar el proceso de recuperación.

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.
El sistema de gestión de bases de datos es esencial para el adecuado funcionamiento y manipulación de los datos contenidos en la base. Se puede definir como: "El Conjunto de programas, procedimientos, lenguajes, etc. que suministra, tanto a los usuarios no informáticos como a los analistas, programadores o al administrador, los medios necesarios para describir, recuperar y manipular los datos almacenados en la base, manteniendo su integridad, confidencialidad y seguridad".
Las funciones esenciales de un SGDB son la descripción, manipulación y utilización de los datos.

Descripción: Incluye la descripción de: Los elementos de datos, su estructura, sus interrelaciones, sus validaciones. Tanto a nivel externo como lógico global e interno esta descripción es realizada mediante un LDD o Lenguaje de Descripción de Datos.
Manipulación: Permite: Buscar, Añadir, Suprimir y Modificar los datos contenidos en la Base de Datos.

La manipulación misma supone: Definir un criterio de selección, Definir la estructura lógica a recuperar, Acceder a la estructura física. Esta manipulación es realizada mediante un LMD o Lenguaje de Manipulación de Datos.
Utilización: La utilización permite acceder a la base de datos, no a nivel de datos sino a la base como tal, para lo cual: Reúne las interfaces de los usuarios y suministra procedimientos para el administrador.

En términos ideales, un DBMS debe contar con estas funciones, sin embargo, no todos las poseen, así existen algunos manejadores que no cumplen la función de respaldo o de seguridad, dejándola al usuario o administrador; sin embargo un DBMS que sea completo y que deba manejar una base de datos multiusuario grande, es conveniente que cuente con todas estas operaciones.
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:

Comando SHUTDOWN
El comando SHUTDOWN lo utilizamos parar una base de datos la cual
consiste en varias cláusulas.

Comando Describe
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.
Fase de no montaje:
se leen los parámetros del sistema, se inician las estructuras de memoria y los procesos de segundo plano. La instancia se arranca sin asociarla a la base de atos. Normalmente se utiliza cuando se
modifica o se necesita crear el archivo de control:

Fase apertura:
se abren los archivos de datos y los registros rehacer. La base
de datos queda disponible para las operaciones normales. Es necesario que
existan registros rehacer de lo contrario si no hay registros usamos el comando
resetlogs, que crea registros nuevos. Para esta fase se pueden usar dos
comandos:

Fase de montaje:
Se asocia la instancia con la base de datos. Se usa el
archivo de parámetros para localizar los archivos de control, que contienen el
nombre de los archivos de datos y los registros rehacer. Los archivos de datos
y los registros de rehacer no están abiertos, así que no son accesibles por
usuarios finales para tareas normales. Para realizar esta fase se pueden utilizar
dos comandos:

startup nomount ;
startup mount ;
alter database mount ;

startup open ;
alter database open ;
SHUTDOWN IMMEDIATE -
Se produce una parada inmediata de la base de datos, durante el proceso de parada no permite nuevas conexiones y las actuales la desconecta, las transacciones que no estén commit se hara roolback de ellas. En el próximo arranque la base datos no requiere procedimientos de recuperación.

SHUTDOWN NORMAL -
Este es el valor por defecto, durante el proceso de parada no admite nuevas conexiones y espera que las conexiones actuales finalicen. En el próximo arranque la base datos no requiere procedimientos de recuperación.
SHUTDOWN TRANSACTIONAL
Se produce una parada hasta que hayan
terminado las transacciones activas, no admite nuevas conexiones y tampoco
nuevas transacciones, una vez que las transacciones activas van terminando
va desconectando a los usuarios. En el próximo arranque la base datos no
requiere procedimientos de recuperación.

SHUTDOWN ABORT
Aborta todos los procesos de una base de datos,
durante el proceso de parada no permite nuevas conexiones y las actuales la desconecta, las transacciones que no estén commit se hará roolback de ellas.
En el próximo arranque la base datos puede requerir procedimientos de recuperación.

SHOW TABLES
SHOW CREATE TABLE
El comando SHOW TABLES muestra las tablas dentro de una base de datos

y SHOW CREATE TABLES muestra la estructura de creación de la tabla.

Este comando permite conocer la estructura de una tabla, las columnas que la forman y su tipo y restricciones.
DESCRIBE f1;
Los índices son "estructuras" alternativa a la organización 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.
4.4.1 Tipos de índices
4.4.2 Reorganizacion de Indices
Elegir las tablas más accedidas y/o actualizadas, y reorganizarlas una vez entre semana. Para reorganizar todas las tablas que contengan índices se utiliza el mismo concepto, pero dentro de un procedimiento que recorra todas la tablas de la base y las reorganice, sin necesidad que escribamos todas la tablas que contiene la base de datos. Estos procedimientos se pueden encontrar en el Forum bajo el nombre de Tips, y la idea es generar un trabajo de mantenimiento que se ejecute, por ejemplo, en el fin de semana
4.4.3 Reconstruccion de Indices
4.4. Manejo de índices
Índice simple y compuesto.
Un índice simple está definido sobre una sóla columna de la tabla mientras que un índice compuesto está formado por varias columnas de la misma tabla (tabla sobre la cual está definido el índice.
Índice agrupado y no agrupado
El término índice agrupado no se debe confundir con índice compuesto, el significado es totalmente diferente.
Índice único
Índice único es aquel en el que no se permite que dos filas tengan el mismo valor en la columna de clave del índice. Es decir que no permite valores duplicados.
Cuando se define un índice sobre una columna, los registros que se recuperen utilizando el índice aparecerán ordenados por el campo indexado. Si se define un índice compuesto por las columnas col1 y col2, las filas que se recuperen utilizando dicho índice aparecerán ordenadas por los valores de col1 y todas las filas que tengan el mismo valor de col1 se ordenarán a su vez por los valores contenidos en col2, función igual que la cláusula ORDER BY vista en el tema de consultas simples.
Por ejemplo si definimos un índice compuesto basado en las columnas (provincia, localidad), las filas que se recuperen utilizando este índice aparecerán ordenadas por provincia y dentro de la misma provincia por localidad.
Un índice agrupado (CLUSTERED) es un índice en el que el orden lógico de los valores de clave determina el orden físico de las filas correspondientes de la tabla. El nivel inferior, u hoja, de un índice agrupado contiene las filas de datos en sí de la tabla. Una tabla o vista permite un solo índice agrupado al mismo tiempo.
Los índices no agrupados existentes en las tablas se vuelven a generar al crear un índice agrupado, por lo que es conveniente crear el índice agrupado antes de crear los índices no agrupados.
Un índice no agrupado especifica la ordenación lógica de la tabla. Con un índice no agrupado, el orden físico de las filas de datos es independiente del orden indizado.
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 Éste han sido accedidas con mayor frecuencia que otras. Como resultado de este suceso podemos obtener problemas de contención de disco o cuellos de botella en el sistema. Normalmente reconstruimos un Índice con el comando ALTER INDEX.
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.
Comando ALTER INDEX
Esta sentencia se utiliza para cambiar o reconstruir un Índice existente en la base de datos.
Para poder ejecutar este comando el Índice debe de estar en el propio esquema donde intentes ejecutarlo o deberías de tener el privilegio alter any index. También tenemos que tener en cuenta que para realizar la reconstrucción de un Índice deberíamos de tener cuota suficiente sobre el tablespace que lo lanzamos.
SELECT index_name, last_analyzed
FROM dba_indexed
WHERE table_owner=’nb_usuario’

Siendo nb_usuario el nombre del esquema del usuario para el que queramos validar las estadísticas. (Lanzar con usuario SYS)
Para actualizar las estadísticas utilizamos el paquete DBM_STATS.

Podemos actualizar las estadísticas de todos los objetos de un esquema de la siguiente forma:
Execute DBMS_STATS.gather_schema_stats(‘Esquema’);
Sustituimos esquema por el nombre de nuestro esquema a actualizar (lanzar con usuario SYS)
Una vez actualizadas las estadísticas de los Índices de la base de datos lanzamos la siguiente consulta:
SELECT index_name, blevel,
DECODE(blevel,0,'OK BLEVEL',1,'OK BLEVEL',2,
'OK BLEVEL',3,'OK BLEVEL',4,'OK BLEVEL','BLEVEL HIGH') OK
FROM dba_indexes where table_owner='Propietario';
Sustituimos Propietario por el esquema o propietario que queramos verificar (lanzar con usuario SYS)
Con esta sentencia obtendremos el nombre del Índice, el blevel y si es correcto.

Los Índices que deberíamos de reconstruir son los que en la columna ok aparecen como BLEVEL HIGH.
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.
Full transcript