Está en la página 1de 6

Unidad 4: Operacin y mantenibilidad

4.1 Bitcoras de trabajo del DBMS.


En muchos DBMS la bitcora incluye todo tipo de consulta incluyendo aquellas que no
modifican los datos.
La operacin ROLLBACK est basada en el uso de una bitcora. El DBMS (Sistema
Manejador de Bases de Datos) mantiene una bitcora o diario en cinta o en disco,
comnmente, en el cual se registran los detalles de todas las operaciones de actualizacin,
en particular, los valores iniciales y final del objeto modificado. Por tanto, si resulta
necesario anular alguna modificacin especfica, el sistema puede utilizar la entrada
correspondiente de la bitcora para restaurar el valor original del objeto restaurado.
4.1.1. Funciones especfica de las bitcoras.
La estructura ms ampliamente usada para grabar las modificaciones de la base de datos es
la Bitcora. Cada registro de la bitcora escribe una nica escritura de base de datos y tiene
lo siguiente:

Nombre de la Transaccion

Valor antiguo

Valor Nuevo

Es fundamental que siempre se cree un registro en la bitcora cuando se realice una


escritura antes de que se modifique la base de datos.
Tambin tenemos la posibilidad de deshacer una modificacin que ya se ha escrito en la
base de datos, esto se realizar usando el campo del valor antiguo de los registros de la
bitcora.
Los registros de la bitcora deben residir en memoria estable como resultado el volumen de
datos en la bitcora puede ser exageradamente grande.
Las operaciones COMMIT y ROLLBACK establecen lo que se le conoce como punto de
sincronizacin lo cual representa el lmite entre dos transacciones consecutivas, o el final de
una unidad lgica de trabajo, y por tanto al punto en el cual la base de datos esta (o debera
estar) en un estado de consistencia. Las nicas operaciones que establecen un punto de
sincronizacin son COMMIT, ROLLBACK y el inicio de un programa. Cuando se
establece un punto de sincronizacin:
Se comprometen o anulan todas las modificaciones realizadas por el programa desde el
punto de sincronizacin 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 las transaccin,
no el programa.

4.1.2 Recuperacin (rollback)


En tecnologas de base de datos, un rollback es una operacin que devuelve a la base de
datos a algn 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 despus de que se han realizado operaciones errneas. Son cruciales para la
recuperacin de crashes de un servidor de base de datos; realizando rollback(devuelto)
cualquier transaccin 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 gestin 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 tambin publicar cualquier savepoint existente que puediera
estar en uso.
En muchos dialectos de SQL, ROLLBACKs son especficos de la conexin. Esto significa
que si se hicieron dos conexiones a la misma base de datos, un ROLLBACK hecho sobre
una conexin 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 tambin estar implementada mediante control de concurrencia multiversin.
En el proceso de Rollback, SQL Server comienza a hacer un rollback de todas las
transacciones que no fueron confirmadas adems de las que fueron rechazadas, dejando de
esta manera la base de datos en un estado consistente.
Este proceso de recuperacin en algunos casos puede tardar mucho tiempo debido a la gran
cantidad de informacin 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 recuperacin.
Adicionalmente cabe mencionar que en algunas pocas ocasiones el terminar el servicio de
SQL Server de manera inesperada puede causar corrupciones de datos, y esto s es grave
debido a que en algunos casos puede ser recuperable la informacin, pero siempre con un
riesgo de perder algo de data, y en otros no es posible arreglar la base de datos, entonces lo
nico que queda en estas situaciones es la restauracin de backups y es ah donde si se tiene
una buena estrategia de backups se puede llegar a recuperar absolutamente toda la
informacin hasta el momento del desastre.
4.1.3 Permanencia (commit)
En cualquier momento, el programa podra decidir que es necesario hacer fallar la
transaccin, 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, ms
recientemente, se han visto incorporadas a como gestiona un sistema operativo la

interaccin con un sistema de archivos (como varias caractersticas de las bases de datos,
debido a que son muy similares arquitectnicamente).
Una sentencia COMMIT en SQL finaliza una transaccin 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 ms
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 savepoints(puntos de
recuperacin) existentes que puedan estar en uso.
En trminos de transacciones, lo opuesto de commit para descartar los cambios "en
tentativa" de una transaccin, es un rollback.
4.2 Definicin de los modos de operacin de un DBMS. (alta, baja, recovery)
El sistema de gestin de bases de datos es esencial para el adecuado funcionamiento y
manipulacin 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
informticos 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 descripcin, manipulacin y utilizacin de los
datos.
Descripcin: Incluye la descripcin de: Los elementos de datos, su estructura, sus
interrelaciones, sus validaciones. Tanto a nivel externo como lgico global e interno esta
descripcin es realizada mediante un LDD o Lenguaje de Descripcin de Datos.
Manipulacin: Permite: Buscar, Aadir, Suprimir y Modificar los datos contenidos en la
Base de Datos.
La manipulacin misma supone: Definir un criterio de seleccin, Definir la estructura
lgica a recuperar, Acceder a la estructura fsica. Esta manipulacin es realizada mediante
un LMD o Lenguaje de Manipulacin de Datos.
Utilizacin: La utilizacin permite acceder a la base de datos, no a nivel de datos sino a la
base como tal, para lo cual: Rene las interfaces de los usuarios y suministra
procedimientos para el administrador.
En trminos ideales, un DBMS debe contar con estas funciones, sin embargo, no todos las
poseen, as existen algunos manejadores que no cumplen la funcin de respaldo o de
seguridad, dejndola 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 activacin de los modos de operacin


Para ser uso de los diferentes comandos para un modo de operacin debemos estar como
administrador o asuma un rol que incluya el perfil dederechosService
Management.Comando
S TAR T U P

Para el arranque de una base de datos hay tres fases de arranque, para realizar estas fases
podemos utilizar
s t a r t u p
Ms un comando, las tres fases son las siguientes:
Fase de no montaje
Se leen los parmetros del sistema, se inician las estructuras de memoria y los procesos de
segundo plano. La instancia se arranca sin asociarla a la base de datos. Normalmente se
utiliza cuando se modifica o se necesita crear el archivo de control:
startup nomount ;
Fase de montaje:
Se asocia la instancia con la base de datos. Se usa el archivo de parmetros 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 estn abiertos, as que no son
accesibles por usuarios finales para tareas normales. Para realizar esta fase se pueden
utilizar dos comandos:
El comando
SHUTDOWN
Lo utilizamos parar una base de datos la cual consiste en varias clusulas.
SHUTDOWN NORMAL
- Este es el valor por defecto, durante el proceso deparada no admite nuevas conexiones y
espera que las conexiones actuales finalicen. En el prximo arranque la base datos no
requiere procedimientos de recuperacin.
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 estn
commit se hararoolback de ellas. En el prximo arranque la base datos no requiere
procedimientos de recuperacin.
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 prximo arranque la base datos no
requiere procedimientos de recuperacin.
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 estn commit se
har roolback de ellas. En el prximo arranque la base datos puede requerir procedimientos
de recuperacin.
Comando Describe
Este comando permite conocer la estructura de una tabla, las columnas que laforman y su
tipo y restricciones.
DESCRIBE f1;
Comando SHOW TABLES y SHOW CREATE TABLE
4.4. Manejo de ndices

Los ndices son "estructuras" alternativa a la organizacin de los datos en una tabla. El
propsito de los ndices es acelerar el acceso a los datos mediante operaciones fsicas ms
rpidas y efectivas. Para entender mejor la importancia de un ndice pongamos un ejemplo;
imagnate que tienes delante las pginas amarillas, y deseas buscar el telfono de Manuel
Salazar que vive en Alicante. Lo que hars ser buscar en ese pesado libro la poblacin
Alicante, y guindote por la cabecera de las pginas buscars los apellidos que empiezan
por S de Salazar. De esa forma localizars ms rpido el apellido Salazar. Pues bien,
enhorabuena, has estado usando un ndice.
4.4.1 Tipos de ndices
En MySQL se tienen dos tipos de ndices, los cuales son:
ndices agrupados
Los ndices agrupados, definen el orden en que almacenan las filas de la tabla (nodos
hoja/pgina de datos de la imagen anterior). La clave del ndice agrupado es el elemento
clave para esta ordenacin; el ndice agrupado se implementa como una estructura de rbol
b que ayuda a que la recuperacin de las filas a partir de los valores de las claves del ndice
agrupado sea ms rpida. Las pginas de cada nivel del ndice, incluidas las pginas de
datos del nivel hoja, se vinculan en una lista con vnculos dobles. Adems, el
desplazamiento de un nivel a otro se produce recorriendo los valores de claves.
ndices no agrupados
Los ndices no agrupados tienen la misma estructura de rbol b que los ndices agrupados,
con algunos matices; como hemos visto antes, en los ndices agrupados, en el ltimo nivel
del ndice (nivel de hoja) estn los datos; en los ndices no-agrupados, en el nivel de hoja
del ndice, hay un puntero a la localizacin fsica de la fila correspondiente en el ndice
agrupado. Adems, la ordenacin de las filas del ndice est construida en base a la(s)
columna(s) indexadas, lo cual no quiere decir (a diferencia de los ndices agrupados), que la
organizacin fsica de las pginas de datos corresponda con el ndice.
4.4.2 Reorganizacin 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. La tarea Reorganizar ndice tambin incluye la opcin de compactar datos de objetos
grandes. Los datos de objetos grandes son datos de tipo image, text, ntext, varchar(max),
nvarchar(max), varbinary(max) o xml.
La tarea Reorganizar ndice encapsula la instruccin ALTER INDEX de Transact-SQL. Si
elige compactar datos de objetos grandes, la instruccin utiliza la clusula REORGANIZE
WITH (LOB_COMPACTION = ON); en caso contrario, se establece
LOB_COMPACTION en OFF
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 Compactacin de las bases.

Pero tambin es necesario ejecutar trabajos de mantenimiento cuyos objetivos sean el de


mantener la performance de las bases de datos y evitar su degradacin.
4.4.3 Reconstruccin de ndices
Es importante peridicamente 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 contencin de disco o cuellos de botella en el sistema.
Normalmente reconstruimos un ndice con el comando ALTER INDEX.
Es importante tener actualizadas las estadsticas de la base de datos. Para saber si las
estadsticas se estn 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 estadsticas.
Comando ALTER INDEX
Como hemos comentado 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 deberas de tener el privilegio alter any index. Tambin tenemos que
tener en cuenta que para realizar la reconstruccin de un ndice deberamos de tener cuota
suficiente
sobre
el
tablespace
que
lo
lanzamos.
Para reconstruir un ndice bastara con lazar la siguiente sentencia:
ALTER INDEX <index_name> REBUILD;
Para reconstruir una particin de un ndice podramos hacer lo siguiente
ALTER INDEX <index_name> REBUILD PARTITION <nb_partition> NOLOGGING;

También podría gustarte