Академический Документы
Профессиональный Документы
Культура Документы
Unidad 3
Configuracin y Administracin del
Espacio en Disco
Integrantes:
Luis Fernando Cmara Ayala
Aldo Prez Maldonado
Cristian de Jess Prez Snchez
3.1.3.- Bitcoras
Son estructuras ampliamente utilizadas para grabar las modificaciones de
la base de datos.
Cada registro de la bitcora escribe una nica escritura de base de datos
y tiene lo siguiente:
Nombre de la Transaccin: Nombre de la transaccin que realiz la
operacin de escritura.
Nombre del Dato: El nombre nico del dato escrito.
Valor Antiguo: El valor del dato antes de la escritura.
Valor Nuevo: El valor que tendr el dato despus de la escritura.
3.1.4.- Particiones
Cuando alguna de las tablas de una base de datos llega a crecer tanto
que el rendimiento empieza a ser un problema, es hora de empezar a
conocer algo sobre optimizacin. Una caracterstica de MySQL son las
particiones.
Particionar tablas en MySQL nos permite rotar la informacin de nuestras
tablas en diferentes particiones, consiguiendo as realizar consultas ms
rpidas y recuperar espacio en disco al borrar los registros. El uso ms
comn de particionado es segn la fecha.
Para ver si nuestra base de datos soporta particionado simplemente
ejecutamos:
SHOW VARIABLES LIKE '%partition%';
Borrar Particiones
Lo bueno de trabajar con particiones es que podemos borrar rpidamente registros
sin tener que recorrer toda la tabla e inmediatamente recuperar el espacio en
disco utilizado por la tabla.
Por ejemplo si queremos borrar la particin ms antigua simplemente ejecutamos:
ALTER TABLE reports DROP PARTITION p201111;
Aadir particiones
En el ejemplo anterior las 2 ltimas particiones creadas han sido:
PARTITION p201205 VALUES LESS THAN (TO_DAYS ("2012-06-01")),
PARTITION pDefault VALUES LESS THAN MAXVALUE
El problema es que todos los INSERT que se hagan despus de mayo de 2012
se insertarn en pDefault. La solucin sera aadir particiones nuevas para cubrir
los prximos meses:
ALTER TABLE reports REORGANIZE PARTITION pDefault INTO (
PARTITION p201206 VALUES LESS THAN (TO_DAYS ("2012-07-01")),
PARTITION pDefault VALUES LESS THAN MAXVALUE);
3.2 Segmentos
Los datos en la BD son almacenados fsicamente en bloques Oracle: la
mnima unidad de espacio fsico, y es un mltiplo del bloque del SO (2 Kb
usualmente). El tamao del bloque Oracle se fija por el parmetro
DB_BLOCK_SIZE del fichero init.ora. Un tamao grande de bloque
mejora la eficiencia del cache de E/S, pero el tamao de la SGA
aumentar para contener los mismos DB_BLOCK_BUFFERS, lo que
significa un problema de memoria.
Una serie de bloques contiguos es una extensin, que es una unidad
lgica de almacenamiento. Una serie de extensiones es un segmento.
Cuando un objeto es creado, se reserva una extensin en su segmento.
Cuando el objeto crezca, necesitar ms espacio y se reservarn ms
extensiones.
Segmentos de Datos
El espacio del diccionario de datos se suele mantener ms o menos constante,
aunque es crtico que tenga suficiente espacio para crecer en el espacio de tablas
SYSTEM. As, hay que tener cuidado de colocar las tablas de usuario, los ndices,
segmentos temporales y los segmentos de rollback en otros espacios de tablas.
Adems, es recomendable que el espacio de tablas SYSTEM est al 50% o 75%
de su espacio disponible. Finalmente, asegurarse que los usuarios no tienen
privilegios de escritura en el espacio de tablas SYSTEM.
Las tablas crecen proporcionalmente con el nmero de filas, ya que se puede
suponer que la longitud de las filas es constante.
Segmentos de ndice
Los ndices crecen en tamao en mayor proporcin que las tablas asociadas si los
datos en la tabla son modificados frecuentemente. La gestin del espacio es mejor
si se mantienen los ndices de tablas grandes en espacios de tablas separados.
Segmentos de Rollback
Los segmentos de rollback almacenan la imagen anterior a una modificacin de un
bloque. La informacin en el segmento de rollback se utiliza para asegurar la
consistencia en lectura, el rollback (el valor en el segmento de rollback se copia en
el bloque de datos) y la recuperacin.
Es importante comprender cul es el contenido de un segmento de rollback. No
almacenan el bloque de datos modificado entero, slo la imagen previa de la fila o
filas modificadas. La informacin del segmento de roolback consiste en varias
entradas llamadas undo.
Por ejemplo, si se inserta una fila en una tabla, el undo necesitar slo el rowid de
la fila insertada, ya que para volver atrs la insercion slo hay que realizar un
delete. En las operacin de actualizacin, se almacenar el valor antiguo de las
columnas modificadas. El segmento de rollback asegura que la informacin undo
se guardan durante la vida de la transaccin.
Un segmento de rollback como cualquier otro segmento consiste en una serie de
extensiones. Sin embargo, la mayor diferencia entre un segmento de datos y otro
rollback es que en este ltimo las extensiones se utilizan de manera circular. As,
habr que tener cuidado a la hora de fijar el tamao del segmento de rollback para
que la cabeza no pille a la cola.
Segmentos Temporales
Los segmentos temporales se crean cuando se efectuan las siguientes
operaciones:
Create Index
Select con distinct, order by, union, intersect y minus.
uniones no indexadas.
Ciertas subconsultas correlacionadas.
Si las tablas a ordenar son pequeas la ordenacin se realiza en memoria
principal, pero si la tabla es grande se realiza en disco. El parmetro
SORT_AREA_SIZE determina el lugar donde se hace la ordenacin.
Incrementndole se reduce la creacin de segmentos temporales.
Instancia de Oracle
La integran los procesos 'background' y la SGA. Abre una y slo una BDO, y
permite acceder a ella.
Nota: con Oracle Real Application Cluster (RAC), ms de una instancia usarn la
misma BD.
En la mquina donde reside el servidor Oracle, la variable ORACLE_SID identifica
a la instancia con la que estamos trabajando.
Vistas
V$DATABASE (Base de datos).
V$INSTANCE (Instancia).
V$SGA (SGA).
V$SGAINFO (Gestin dinmica de la SGA).
V$SGASTAT (SGA detallada).
V$BUFFER_POOL (Buffers en la cach de datos)
V$SQLAREA (Sentencias SQL).
V$PROCESS (Procesos).
V$BGPROCESS (Procesos background).
V$DATAFILE (Ficheros de datos de la BD).
V$CONTROLFILE (Ficheros de control de la BD).
V$LOGFILE (Ficheros redo log de la BD).
DBA_TABLESPACES (Tablespaces de la BD).
Copiar y pegar la configuracin de MySQL. Es decir, del archivo my.ini (en linux
my.cnf) generamos una copia que podra llamarse my2.ini.
Ahora con cuidado editamos my2.ini, procure no tocar my,ini a menos que este
seguro de lo que hace.