Archivos log del SGBD
Todas las bases de datos de SQL Server tienen un registro de
transacciones que registra todas las transacciones y las modificaciones
que cada transacción realiza en la base de datos.
El registro de transacciones es un componente esencial de la
base de datos.
Si hay un error del sistema, ese registro será necesario
para devolver la base de datos a un estado coherente.
El registro de transacciones se debe truncar periódicamente
para evitar que se llene.
Operaciones compatibles
El registro de transacciones permite las siguientes operaciones:
- Recuperación de transacciones individuales.
- Recuperación de todas las transacciones incompletas cuando se inicia SQL Server.
- Puesta al día de una base de datos, un archivo, un grupo de archivos o una página restaurados hasta el momento exacto del error.
- Permitir replicación transaccional.
- Compatibilidad con soluciones de alta disponibilidad y recuperación ante desastres: Grupos de disponibilidad AlwaysOn, creación de reflejo de la base de datos y trasvase de registros.
Definición de los Modos de Operación de un DBMS (Alta, Baja, Recovery) y comando de activación
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.
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.
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:
- 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.
- 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.
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.
Crear copia de seguridad completa en disco en una ubicación no predeterminada
En este ejemplo, se creará una copia de seguridad de la base de datos Sales en disco en E:\MSSQL\BAK.
Se han creado copias de seguridad de Sales anteriores.
- En el Explorador de objetos, conéctese a una instancia del Motor de base de datos de SQL Server y expándala.
- Expanda Bases de datos, haga clic con el botón derecho en Sales, seleccione Tareas y, luego, haga clic en Copia de seguridad...
- En la página General, en la sección Destino, seleccione Disco en la lista desplegable Copia de seguridad en:.
- Haga clic en Quitar hasta que se quiten todos los archivos de copia de seguridad existentes.
- Haga clic en Agregar y se abrirá el cuadro de diálogo Seleccionar destino de la copia de seguridad.
- Escriba E:\MSSQL\BAK\Sales_20160801.bak en el cuadro de texto nombre de archivo.
- Haga clic en Aceptar.
Comandos de Activación.
El propósito de los índices es acelerar el acceso a los datos mediante operaciones físicas más rápidas y efectivas. Existen diferentes comandos para activar el modo de operación, algunas de ellas son:
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:se leen los parámetros del sistema, se inician las estructuras de memoria y los procesos de segundo plano.
startup nomount ;
- 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
startup mount;
alter database mount;
Comando SHUTDOWN
El comando SHUTDOWN lo utilizamos parar una base de datos la cual consiste en varias cláusulas.
Shutdown Normal: Este es el valor por defecto, durante el proceso de parada no admite nuevas conexiones y espera que las conexiones actuales finalicen.
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.
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.
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
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
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.
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.
- Añadir una columna
ALTER TABLE nombre_tabla ADD nombre_columna tipoDeDato;
- Borrar una columna
ALTER TABLE nombre_tabla DROP COLUMN nombre_columna;
- Cambiar tipo de dato a una columna
ALTER TABLE nombre_tabla MODIFY COLUMN nombre_columna tipoDeDato;
Índices, reorganización y reconstrucción
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. Existen diferentes tipos de índices algunos de ellos son:
- Índices agrupados: definen el orden en que almacenan las filas de la tabla (nodos hoja/página de datos de la imagen anterior). La clave del índice agrupado es el elemento clave para esta ordenación; el índice agrupado se implementa como una estructura de árbol b que ayuda a que la recuperación de las filas a partir de los valores de las claves del índice agrupado sea más rápida. Debemos tener en cuenta:Columnas selectivas, columnas afectadas en consultas, Columnas accedidas "secuencialmente", Columnas implicadas en JOIN, GROUP BY y el Acceso muy rápido a filas: lookups
- Í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) están los datos; en los índices no-agrupados, en el nivel de hoja del índice, hay un puntero a la localización física de la fila correspondiente en el índice agrupado.
- Índices compuestos: es un índice de varias columnas de una tabla. Las columnas de un índice compuesto que deben aparecer en el orden que tenga más sentido para las consultas que recuperar datos y no necesita ser adyacente en la tabla.
- índices descendientes: Este tipo de índice almacena los datos en una columna o columnas de concreto en orden descendente.
Reorganización de
índices
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. Un paquete puede usar la tarea Reorganizar índice
para reorganizar los índices de una base de datos individual o de varias bases
de datos.
La tarea Reorganizar índice encapsula la instrucción ALTER
INDEX de Transact-SQL. Si elige compactar datos de objetos grandes, la
instrucción utiliza la cláusula REORGANIZE WITH (LOB_COMPACTION = ON); en caso
contrario, se establece LOB_COMPACTION en OFF.
Fragmentación de los Índices
La fragmentación es consecuencia de los procesos de
modificación de los datos (instrucciones INSERT, UPDATE y DELETE) efectuados en
la tabla y en los índices definidos en la tabla.
Detección de Fragmentación.
El primer paso para decidir qué método de desfragmentación
se va a utilizar consiste en analizar el índice para determinar el nivel de
fragmentación. Si se usa la función del sistema sys.dm_db_index_physical_stats,
se puede detectar la fragmentación de los índices de la base de datos
thuban-homologada.
Reconstrucción de
índices
Se debe 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.
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.
ALTER INDEX <index_name> REBUILD;
Para reconstruir una partición de un índice podríamos hacer
los siguientes:
ALTER INDEX <index_name> REBUILD PARTITION
<nb_partition> NOLOGGING;
Comando ALTER INDEX
Como hemos comentado 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;
Comentarios
Publicar un comentario