3. Configuracion y Administracion Del Espacio en Disco
Short Description
Download 3. Configuracion y Administracion Del Espacio en Disco...
Description
Contenido Introducción ....................................................................................................................................... 2 3. Configuración y administración del espacio en disco ........................................................... 2 3.1 Estructuras lógicas de almacenamiento. ........................................................................... 3 3.1.1 Definición de espacio de Almacenamiento. ............................................................... 3 3.1.2 Definición y creación del espacio asignado para cada base de datos. ................ 4 3.1.3 Bitácoras. ......................................................................................................................... 5 3.1.4 Particiones. ...................................................................................................................... 7 3.1.5 Espacios privados. ......................................................................................................... 9 3.1.6 Espacios para objetos. .................................................................................................. 9 3.2. Segmentos........................................................................................................................... 10 3.3. Memoria Compartida. ......................................................................................................... 11 3.4. Instancias múltiples ............................................................................................................ 12 Conclusión ....................................................................................................................................... 13 Bibliografía ....................................................................................................................................... 13
1
Introducción El espacio en disco es fundamental en las bases de datos para almacenar grandes cantidades de datos de forma permanente. Algunas de las razones por las cuales se almacenan las bases de datos en memorias secundarias es por el gran tamaño de las bases de datos para ser guardadas en la memoria principal. Otra de las causas para utilizar la memoria secundaria es porque suele ser más barata que la memoria primaria. Las bitácoras tienen una principal función que es recuperar información ante incidentes de seguridad, etc. Una de las ventajas de crear particiones en una base de datos es a causa de que mejora el rendimiento y simplifica el mantenimiento. Un segmento es un conjunto de extensiones que contiene todos los datos para un espacio de tabla dentro de una estructura de almacenamiento lógico.
2
3. Configuración y administración del espacio en disco 3.1 Estructuras lógicas de almacenamiento. 3.1.1 Definición de espacio de Almacenamiento. Las bases de datos suelen ser creadas para almacenar grandes cantidades de datos de forma permanente. Por lo general, los datos almacenados en éstas suelen ser consultados y actualizados constantemente. La mayoría de las bases de datos se almacenan en las llamadas memorias secundarias, especialmente discos duros, aunque, en principio, pueden emplearse también discos ópticos, memorias flash, etc. Las razones por las cuales las bases de datos se almacenan en memorias secundarias son: En general, las bases de datos son demasiado grandes para entrar en la memoria principal. La memoria secundaria suele ser más barata que la memoria primaria (aunque esta última tiene mayor velocidad). La memoria secundaria es más útil para el almacenamiento de datos permanentemente, puesto que la memoria primaria es volátil. En cuanto al respaldo de las bases de datos, suelen emplearse tanto discos duros, como cintas magnéticas, discos ópticos o similares. Las técnicas empleadas para almacenar bases de datos son sumamente importantes para la velocidad de acceso y recuperación de datos. Las técnicas dependen del tipo de almacenamiento, el uso que se le da o se le dará a la base de datos, la estructura de la misma, el SGBD empleado, etc. Esta dependencia no significa necesariamente que haya que cambiar la estructura de la base de datos si se cambian las técnicas empleadas. Las técnicas de almacenamiento son independientes de la base de datos, pero, de todas maneras, las mejores técnicas muchas veces pueden determinarse viendo la estructura de la base de datos, entre otras características. Los encargados de elegir estas técnicas son los diseñadores y administradores de bases de datos, y dependen también de las capacidades del SGBD. En general, el SGBD ofrece diferentes opciones y técnicas para organizar los datos. La idea es que los encargados de la base de datos encuentren las técnicas idóneas, o sea, aquellas que permitan la mayor velocidad posible de acceso a los datos. Una mala decisión en esta área puede resultar en una menor velocidad de 3
acceso a la base de datos, o en un uso excesivo del espacio de almacenamiento, o incluso, puede aumentar la velocidad de consulta de una base de datos, pero disminuir la velocidad de actualización de la misma.
3.1.2 Definición y creación del espacio asignado para cada base de datos. Las bases de datos se almacenan en ficheros o archivos. Existen diferentes formas de organizaciones primarias de archivos que determinan la forma en que los registros de un archivo se colocan físicamente en el disco y, por lo tanto, cómo se accede a éstos. Las distintas formas de organizaciones primarias de archivos son: 1. Archivos de montículos (o no ordenados): esta técnica coloca los registros en el disco sin un orden específico, añadiendo nuevos registros al final del archivo. 2. Archivos ordenados (o secuenciales): mantiene el orden de los registros con respecto a algún valor de algún campo (clave de ordenación). 3. Archivos de direccionamiento calculado: utilizan una función de direccionamiento calculado aplicada a un campo específico para determinar la colocación de los registros de disco. 4. Arboles B: se vale de la estructura de árbol para las colocaciones de registros. Existe una segunda forma de acceder a los datos llamada organización secundaria o estructura de acceso auxiliar. Estas permiten que los accesos a los registros de un archivo basado en campos alternativos, sean más eficientes que los que han sido utilizados para la organización primaria de archivos. El DBMS asigna espacio de almacenamiento a las bases de datos cuando los usuarios introducen create database o alter database. El primero de los comandos puede especificar uno o más dispositivos de base de datos, junto con la cantidad de espacio en cada uno de ellos que será asignado a la nueva base de datos. Si se utiliza la palabra clave default o se omite completamente la cláusula on , el DBMS pone la base de datos en uno o más de los dispositivos predeterminados de base de datos especificados en master..sysdevices Para especificar un tamaño (en este ejemplo, 4MB) para una base de datos que se va a almacenar en una ubicación predeterminada, utilice on default = size de esta forma: create database newpubs on default = 4
4
Para situar la base de datos en dispositivos específicos, dé el nombre del dispositivo o dispositivos en que desea almacenarla. Como la sintaxis indica, puede solicitar que se almacene en más de un dispositivo de base de datos, con una cantidad de espacio diferente en cada uno. Todos los dispositivos mencionados en create database deben estar enumerados en sysdevices . En otras palabras, deben haberse inicializado con disk init . La instrucción siguiente crea la base de datos newdb y asigna 3MB en mydata y 2MB en newdata . Como en el ejemplo anterior, la base de datos y el diario de transacciones no se separan: create database newdb on mydata = 3, newdata = 2 A menos que cree una base de datos pequeña o que no sea crucial, sitúe siempre el diario en un dispositivo de base de datos aparte. Si la cantidad de espacio solicitada a un dispositivo específico de base de datos no está disponible, el DBMS crea la base de datos con tanto espacio como sea posible en cada dispositivo y muestra un mensaje informando el espacio asignado en cada uno. (Esto no se considera un error.) Si hay menos espacio del mínimo necesario para una base de datos en el dispositivo especificado (o en el predeterminado, si no se especifica un nombre), el comando create database falla.
3.1.3 Bitácoras. Una bitácora es una herramienta que permite registrar, analizar, detectar y notificar eventos que sucedan en cualquier sistema de información utilizado en las organizaciones. La principal importancia de una bitácora es recuperar información ante incidentes de seguridad, detección de comportamiento inusual, información para resolver problemas, evidencia legal, etc. 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: 1. Nombre de la transacción: Nombre de la transacción que realizó la operación de escritura. 2. Nombre del dato: El nombre único del dato escrito. 3. Valor antiguo: El valor del dato antes de la escritura. 4. Valor nuevo: El valor que tendrá el dato después de la escritura. 5
Existen otros registros de bitácora especiales para grabar sucesos importantes durante el proceso de transacciones tales como: < T1, inicio > < T1, x, v1, v2 > < T1, commit > 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.
Ejemplo e implementación de bitácora de base de datos en lenguaje de programación en SQL server.
CREATE TABLE [dbo].[Bitacora] ( [BitacoraID] [int] IDENTITY (1, 1) NOT NULL , [EventType] [char] (14) NOT NULL , [Status] [int] NOT NULL , [EventInfo] [varchar] (1000) NOT NULL , [Usuario] [varchar] (20) NOT NULL , [Fecha] [smalldatetime] NOT NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[Bitacora] WITH NOCHECK ADD CONSTRAINT [DF_Bitacora_Usuario] DEFAULT (suser_sname()) FOR [Usuario], CONSTRAINT [DF_Bitacora_Fecha] DEFAULT (getdate()) FOR [Fecha] Y, por otro lado, el trigger en la tabla lo refiniría de la siguiente manera: /* Trigger de Monitoreo */ CREATE TRIGGER trig_tablabitacora ON TABLA FOR DELETE, INSERT, UPDATE AS BEGIN DECLARE @NUMERO INT INSERT INTO Bitacora (EventType,Status,EventInfo) 6
exec sp_executesql N’DBCC INPUTBUFFER( @i )’, N’@i int’, @i=@@spid END
3.1.4 Particiones. Las particiones les permiten descomponer tablas muy grandes y los índices en partes más pequeñas y manejables llamadas particiones. Cada partición es un objeto independiente con su propio nombre y, opcionalmente, sus propias características de almacenamiento. La creación de particiones en una base de datos mejora el rendimiento y simplifica el mantenimiento. Al dividir una tabla grande en tablas individuales más pequeñas, las consultas que tengan acceso únicamente a una parte de los datos pueden ejecutarse con mayor rapidez, ya que deben recorrer menos datos. Las tareas de mantenimiento (por ejemplo, volver a generar los índices o hacer copias de seguridad de una tabla), pueden ejecutarse con mayor rapidez. Se puede conseguir la creación de particiones sin dividir las tablas si las tablas se colocan físicamente en unidades de disco individuales. La colocación de una tabla en una unidad física y de las tablas relacionadas en una unidad independiente puede mejorar el rendimiento de las consultas, debido a que, cuando se ejecutan consultas que implican combinaciones entre las tablas, varios encabezados de discos leen los datos al mismo tiempo. Se pueden utilizar grupos de archivos de SQL Server para especificar los discos en los que se colocarán las tablas.
Particiones de hardware
La creación de particiones de hardware diseña la base de datos de forma que aproveche la arquitectura del hardware disponible. Estos son ejemplos de particiones de hardware:
Varios procesadores que permiten múltiples subprocesos de operaciones, lo que permite que muchas consultas se ejecuten al mismo tiempo. Opcionalmente, una sola consulta puede ejecutarse más rápidamente en varios procesadores, ya que permiten la ejecución simultánea de los componentes de la consulta. Por ejemplo, distintos subprocesos pueden recorrer al mismo tiempo cada una de las tablas a las que hace referencia la consulta. Dispositivos RAID (matriz redundante de discos independientes) que permiten crear bandas de datos a través de varias unidades de disco, para obtener un acceso más rápido a los datos, ya que hay más cabezales de lectura y escritura que leen los datos al mismo tiempo. Normalmente, se puede recorrer más rápidamente una tabla separada en bandas a través de 7
varias unidades que la misma tabla almacenada en una sola unidad. De forma alternativa, almacenar tablas en unidades independientes desde las tablas relacionadas puede mejorar de forma significativa el rendimiento de las consultas que combinan esas tablas. Crear particiones horizontales
La creación de particiones horizontales divide una tabla en varias tablas. Así, cada tabla contiene el mismo número de columnas, pero menos filas. Por ejemplo, se podría crear una partición horizontal de una tabla que contenga mil millones de filas en 12 tablas; cada una de las tablas más pequeñas representaría un mes de datos de un año específico. Las consultas que requieran datos de un mes específico sólo hacen referencia a la tabla apropiada.
La determinación del modo de crear particiones horizontales de las tablas depende de cómo se analicen los datos. Debería crear particiones de tablas de forma que las consultas hagan referencia al menor número posible de tablas. De lo contrario, un número excesivo de consultas UNION, utilizadas para mezclar las tablas de forma lógica en el momento de la consulta, podría afectar al rendimiento. Para obtener más información acerca de cómo consultar tablas con particiones horizontales.
Es común crear particiones horizontales de datos basadas en la edad y el uso. Por ejemplo, una tabla puede contener datos de los últimos cinco años, pero normalmente sólo se obtiene acceso a los datos del año actual. En este caso, puede considerar la posibilidad de crear particiones de datos en cinco tablas, cada una de las cuales contendrá sólo los datos de un año.
Crear particiones verticales La creación de particiones verticales divide una tabla en varias tablas que contienen menos columnas. Los dos tipos de particiones verticales son la normalización y la división de filas:
La normalización es el proceso estándar de bases de datos que consiste en quitar columnas redundantes de una tabla y colocarlas en tablas secundarias vinculadas a la tabla principal mediante relaciones de clave principal y clave externa.
La división de filas divide verticalmente la tabla original en tablas con menos columnas. Cada fila lógica de una tabla dividida coincide con la misma fila 8
lógica en las demás tablas, según se identifica en la columna UNIQUE KEY que es idéntica en todas las tablas con particiones. Por ejemplo, al combinar la fila con el Id. 712 de cada tabla dividida se vuelve a crear la fila original.
Igual que las particiones horizontales, las particiones verticales permiten a las consultas recorrer menos datos. De ese modo se aumenta el rendimiento de las consultas. Por ejemplo, una tabla que contenga siete columnas de las cuales generalmente sólo se hace referencia a las cuatro primeras, puede beneficiarse de la división de las tres últimas columnas en una tabla independiente.
La creación de particiones verticales se debe considerar detenidamente, ya que analizar datos de varias particiones requiere consultas que combinen las tablas. La partición vertical también puede afectar al rendimiento si las particiones son muy grandes.
3.1.5 Espacios privados. Un espacio privado permite que los administradores y redactores gestionen el conjunto de datos del sitio. Algunas bases de datos tienen estos espacios privados llamados comúnmente paneles de control, que son formularios que aparecen al abrir la base de datos. Los paneles de control sirven de "puerta principal" o "recibidor" de una base de datos en el sentido de que dirigen a las personas hacia determinadas tareas, como introducir o buscar datos. Sirven también para mantener alejados a los usuarios de las tablas que contienen los datos en tiempo real. Cuando reciba una base de datos, debe adentrarse más allá del panel de control para averiguar cómo están estructurados los datos, pero merece la pena echar un vistazo inicial al panel de control. Le puede ofrecer algún indicio sobre las tareas que el diseñador de la base de datos consideró que realizarían los usuarios habitualmente con los datos.
3.1.6 Espacios para objetos.
9
Los DBMS se basan en archivos para almacenar datos, y estos archivos, o conjuntos de datos, residen en medios de almacenamiento, o dispositivos. Una buena parte del trabajo del DBA implicará la planificación para el almacenamiento real de la base de datos. Algunas tecnologías de almacenamiento son más adecuadas que otras. Sin embargo, la naturaleza mecánica de la unidad de disco los hace más vulnerables al fracaso de los componentes de otro equipo. Además, las formas en que las unidades de disco son utilizados por las bases de datos pueden hacer que la gestión del almacenamiento impredecibles, como la barra lateral "Modern DBMS de uso de disco“ Puede usarse RAID para mejorar la seguridad de los datos. El rendimiento de la base de datos depende de la entrada y salida a disco. La cantidad de datos almacenados es mayor que nunca antes, y los datos se almacenados por más tiempo. Algunos DBMS permiten al tamaño de los archivos temporales de expandirse y contraerse de forma automática. Dependiendo del tipo y la naturaleza de las operaciones de base de datos en proceso, esta fluctuación puede provocar picos de uso del disco. El crecimiento de la capacidad de almacenamiento aumenta aún más la complejidad de la gestión de datos y bases de datos. Muchas organizaciones están implementando nuevas tecnologías de almacenamiento, tales como almacenamiento en red (NAS) y redes de área de almacenamiento (SAN), para ayudar a controlar la cantidad cada vez mayor de almacenamiento necesario para los usos modernos. La gestión del almacenamiento en el entorno dinámico de hoy es una tarea difícil DBA. Hay muchos problemas de almacenamiento que deben ser resueltos antes de que un DBA pueda crear una base de datos. Uno de los temas más importantes es la cantidad de espacio para permitir la base de datos. El cálculo espacial debe tener en cuenta no sólo tablas, índices, sino también, y dependiendo del DBMS, el registro de transacciones. Cada una de estas entidades probablemente requerirá un archivo separado o conjunto de datos, para el almacenamiento persistente. El DBA debe separar en diferentes discos a los archivos para: Mejorar el rendimiento Separar índices de datos Aislar los logros en otro disco
3.2. Segmentos.
10
Un segmento es un conjunto de extensiones que contiene todos los datos para un espacio de tabla dentro de una estructura de almacenamiento lógico Por ejemplo, Base de Datos de Oracle asigna una o más extensiones para formar el segmento de datos para una tabla. La base de datos también asigna una o más extensiones para formar el segmento de índice de una tabla. Segmentos de usuarios Un segmento de datos individual en una base de datos almacena los datos para un objeto de usuario Hay diferentes tipos de segmentos. Ejemplos de segmentos de usuarios incluyen: • Tabla, tabla de particiones, o clúster mesa • Partición LOB LOB o • Partición de índice o un índice
Cada objeto sin particiones y partición objeto se almacena en su propio segmento. Por ejemplo, si un índice tiene cinco particiones, luego cinco segmentos contener los datos de índice.
3.3. Memoria Compartida. Configurar la memoria manualmente Si prefiere ejercer un control más directo sobre el tamaño de los componentes individuales de memoria, puede desactivar la gestión automática de memoria y configurar la base de datos para la gestión de la memoria manual. Hay dos métodos de gestión de memoria manuales diferentes para el SGA, y dos para la instancia PGA. Los dos métodos de gestión de memoria manual del SGA varían en la cantidad de esfuerzo y conocimientos requeridos por el DBA. Con una gestión automática de memoria compartida, se establece objetivo y tamaños máximos para el SGA. La base de datos a continuación, establece el tamaño total de la SGA a su destino 11
designado, y optimiza de manera dinámica los tamaños de muchos componentes SGA. Con la gestión de la memoria compartida manual, ajusta el tamaño de varios componentes individuales SGA, determinando así el tamaño total SGA. A continuación, ajustar manualmente estos componentes SGA de forma permanente. Para la instancia PGA, es la gestión de memoria PGA automático, en el que establece un tamaño final de la instancia PGA. La base de datos a continuación, establece el tamaño de la instancia de PGA a su objetivo, y optimiza de manera dinámica los tamaños de PGA individuales. Existe también la gestión de memoria PGA manual, en el que establece el tamaño máximo del área de trabajo para cada tipo de operador SQL (tal como una especie o de hash-join). Este método de gestión de memoria, aunque compatible, no se recomienda. Las siguientes secciones proporcionan información sobre todos estos métodos de gestión de memoria manuales:
Utilización de la gestión automática de memoria compartida Utilización de la gestión de memoria compartida Manual Utilización de la gestión de memoria automática PGA
3.4. Instancias múltiples Se llama instancia múltiple al hecho de poder ejecutar un programa más de una vez al mismo tiempo. Hay programas que no admiten más que una sola instancia, es decir que si ya se está ejecutando, por más que lo cliquees de nuevo en el icono o en el menú no aparecerá un nuevo ejemplar del programa. Con las bases de datos se complica un poco porque si un usuario modifica un registro que otro usuario tiene también abierto, la modificación que se haga en una instancia debe reflejarse de inmediato (actualizarse) en cualquier otra instancia abierta de la misma base de datos. Sin embargo, en las bases de datos se puede seleccionar la opción en el diseño de la BD, y se reflejarán de inmediato las modificaciones en todas las instancias abiertas.
12
Conclusión La administración del espacio en disco sirve principalmente para tener respaldada toda la información en buen estado las bases de datos ya que existe un respaldo para las bases de datos que contienen mucha información, sin el riesgo de perderla si se ha guardado correctamente y si se ha hecho un buen mantenimiento de las particiones y crear correctamente el respaldo de las bases de datos en
13
Bibliografía Estructuras y Programacion. http://www.estructurayprogramacion.com/materias/administracionde-base-de-datos/definicion-y-creacion-del-espacio/
http://ylez.wordpress.com/2010/03/20/bitacoras-de-bases-de-datos/
http://msdn.microsoft.com/es-mx/library/ms178148(v=sql.90).aspx
http://www.estructurayprogramacion.com/materias/administracion-de-base-de-datos/instanciasmultiples/
14
View more...
Comments