Você está na página 1de 156

Unidad 1: Perspectiva Prctica de la

Administracin de Bases de Datos


1.1. Administrador de Base de Datos (DBA)
Es el profesional que administra las tecnologas de la informacin y la
comunicacin, siendo responsable de los aspectos tcnicos, tecnolgicos,
cientficos, inteligencia de negocios y legales de bases de datos. Tiene la
responsabilidad de mantener y operar las bases de datos que conforman el
sistema de informacin de una compaa.
Debido a la importancia de los datos que estn a su cargo, el administrador
de bases de datos debe ser experto en TI (tecnologa de la informacin),
teniendo particular conocimiento de DBMS (sistemas de administracin de
bases de datos) y el lenguaje de consulta SQL. Tambin debe tener
conocimiento de varios tipos de lenguaje de programacin para poder
automatizar ciertas tareas.
1.1.1 Funciones de un DBA
Funcin principal:

Implementar, dar soporte y gestionar bases de datos corporativas

Crear y configurar bases de datos relacionales

Ser responsables de la integridad de los datos y la disponibilidad

Disear, desplegar y monitorizar servidores de bases de datos

Disear la distribucin de los datos y las soluciones de almacenamiento

Garantizar la seguridad de las bases de datos, incluyendo backups y


recuperacin de desastres

Planificar e implementar el aprovisionamiento de los datos y aplicaciones

Disear planes de contingencia

Disear y crear las bases de datos corporativas de soluciones avanzadas

Analizar y reportar datos corporativos que ayuden a la toma de decisiones


en la inteligencia de negocios
Producir diagramas de entidades relacionales y diagramas de flujos de
datos, normalizacin esquemtica, localizacin lgica y fsica de bases de
datos y parmetros de tablas
Una de sus tareas es la de asegurar la integridad del sistema de informacin
de la compaa. Adems, es necesario que posea un buen entendimiento de
DBMS para optimizar las consultas, ajustar la configuracin de DBMS o para
sincronizar en forma precisa las herramientas de control del acceso a las bases
de datos.
Es posible que el administrador de bases de datos tenga que brindar
asistencia tcnica a usuarios de las aplicaciones cliente o equipos de desarrollo
para solucionar problemas, dar consejos o ayudar a resolver consultas
complicadas.
Al trabajar con el jefe de seguridad, el administrador de bases de datos debe
crear copias de seguridad, planes y procedimientos de restauracin para
preservar los datos de los cuales es responsable.
Adems de estas habilidades tcnicas, el administrador de bases de datos
debe poseer un buen entendimiento de las aplicaciones de la compaa y estar
dispuesto a atender las necesidades de los usuarios cuando desarrolla o edita
una base de datos. En el mejor de los casos, debe tener experiencia en diseo
de sistemas de informacin y modelos UML (Lenguaje unificado de modelos).
1.1.2 Relacin del DBA con Otras reas de los Sistemas
En sistemas muy complejos cliente/servidor y de tres capas, la base de datos
es slo uno de los elementos que determinan la experiencia de los usuarios en
lnea y los programas desatendidos. El rendimiento es una de las mayores
motivaciones de los DBA para coordinarse con los especialistas de otras reas
del sistema fuera de las lneas burocrticas tradicionales. Uno de los deberes
menos respetados por el administrador de base de datos es el desarrollo y
soporte a pruebas, mientras que algunos otros encargados lo consideran como
la responsabilidad ms importante de un DBA. Las actividades de soporte
incluyen la colecta de datos de produccin para llevar a cabo pruebas con ellos;
consultar a los programadores respecto al desempeo; y hacer cambios a los
diseos de tablas de manera que se puedan proporcionar nuevos tipos de

almacenamientos para las funciones de los programas.

1.2 Anlisis de los Manejadores de Bases de Datos


SGBD
Microsoft SQL
Server (2012)

Caractersticas
SQL Server 2012 brindar a los usuarios grandes
avances en tres campos principales:
Confianza de misin crtica con mayor tiempo activo,
rendimiento ultra rpido y caractersticas mejoradas de
seguridad para cargas de trabajo de misin crtica.
Avances innovadores con exploracin de datos de
auto-servicio administrado y capacidades asombrosas e
interactivas de visualizacin de datos.
La nube en sus propios trminos al habilitar la
creacin y extensin de soluciones a lo largo de la nube
en las instalaciones y en la nube pblica.

Requerimientos (de instalaci


Memoria:

medida que el tamao de la ba


un rendimiento ptimo.
Velocidad del procesador:

1,4 GHz

Procesador:

Xeon compatible con Intel EM6


EM64T

superior

Microsoft
Access

Compile bases de datos ms rpida y fcilmente que


nunca.

Procesador: 500 Megahertz (MH

Memoria (RAM): 256 Megabytes


Cree formularios e informes ms impactantes.
Espacio en disco duro: 1.5 GiB.
Obtenga acceso ms fcilmente a las herramientas
adecuadas en el momento exacto.
Agregue expresiones complejas y automatizacin sin
escribir ni una lnea de cdigo.

Pantalla (monitor): resolucin de

Sistema operativo: Windows XP


32bits) o Windows Vista SP1, Win
con MSXML 6.0, Windows Server 2

Obtenga una ubicacin central para los datos.


Obtenga acceso a la base de datos de formas
nuevas.
My SQL

Escrito en C y en C++
Probado con un amplio rango de

compiladores diferentes

Funciona en diferentes plataformas

Proporciona
sistemas
de
almacenamiento
transaccionales
y
no
transaccionales

Un sistema de reserva de memoria


muy rpido basado en threads

Un sistema de privilegios y contraseas

Suficiente espacio en disco rg


crear las bases de datos de acuer
se recomienda un mnimo de 200 m

Un sistema operativo Windows


2000, XP, o Windows Server 2003.
Soporte para protocolo TCP/IP.

que es muy flexible y seguro, y que permite


verificacin basada en el host
InterBase

InterBase nos garantiza que es un producto fiable y


robusto, probado exhaustivamente y que ofrece unos
buenos niveles de seguridad.

Versiones soportadas de Si
Windows 98 / Windows NT Worksta
Protocolos soportados:

Cdigo Abierto
Mantenimiento prcticamente nulo

Instalacin:
clientes. ste cargar los program
completar la instalacin.

Bajo Coste de Desarrollo


Trfico de red reducido
Integracin en Herramientas de Desarrollo

Oracle

Hardware (Mnimo):
RAM., Disco Duro de 500Mb o simi

Hardware (recomendado):
Disco Duro de 4.0Gb, tarjeta de red

Admite varias opciones de soportes de

arranque.

Ayuda en la instalacin del sistema

operativo.

Proporciona un juego especfico de

capacidades de procesador de servicio y de


configuracin de Oracle ILOM.

Capacidades de administracin y de
solucin de problemas.

Sistema operativo:
Windows XP SP2, Windows 200
Windows 2003 Enterprise Server SP
Memoria mnima:
Memoria recomendada:
Espacio en disco mnimo:

Espacio en disco recomendad


DB2

DBase

DB2 UDB es un sistema para administracin de


bases de datos relacionales (RDBMS) multiplataforma,
especialmente diseada para ambientes distribudos,
permitiendo que los usuarios locales compartan
informacin con los recursos centrales.

Gestiona visualmente los archivos de aplicaciones.


automticamente

cdigo

SQL libre

Hardware: Todos los procesa


ejecutar los sistemas operativos Wi

Convertir sus datos en Informacin valiosa.

Genera
errores.

Sistema operativo:
Vista Enterprise, Vista Ultimate,
Ultimate, 8 Standard, 8 Professiona

de

Crear fcilmente EXEs de 32 bits.


Agrupar y definir fcilmente las relaciones entre
componentes visuales a travs de los Contenedores de
Objetos.
Paradox

Contiene nuevas libreras de ayuda especializadas


para que usted cree y ejecute el lenguaje de Consulta
Estructurado (SQL) sin teclear el cdigo.

Windows 95, Windows 98, o Win

Paradox agrega un diseador para crear las formas


de Web en una Plataforma independiente.

16 MB RAM (32 RAM recomend

Procesador 486/66 DX o mayor

65 MB de espacio en Disco Duro

1.3. Consideraciones para Elegir un Buen DBMS


Consideracin al Elegir un DBMS
Nmero de Usuarios: Cantidad mxima de personas que tengan todo tipo
de contacto con el sistema de base de datos desde que ste se disea,
elabora, termina y se usa
Nmero de Transacciones: Son las cantidades de transacciones reales
promovidas por eventos como la compra de un producto, la inscripcin a un

curso o la realizacin de un depsito.


Cantidad de Datos para Almacenar: Hace referencia a la capacidad de
registros que se puede almacenar o de recuperar su estado en un momento
previo a la prdida de datos.
Consistencia de la Informacin: Impedir que exista informacin
inconsistente o contradictoria en la BD. Surge cuando existen varias copias del
mismo dato y tras la modificacin de una de ellas, las dems no son
actualizadas, o lo son pero de forma incorrecta.
Experiencia Propia o Externa: Contar con el conocimiento necesario para
la interaccin con el BDSM y de esa manera poder realizar las tareas que se
nos han presupuesto.
Que OS se Implementar: Si no se tiene un sistema operativo en base al
SGBD y esto tambin tendra consideraciones como la operatividad y la
capacidad de administracin de un servidor en tal o cual SO y los gastos que
implicaran su mantenimiento.

1.4. Nuevas Tecnologas y Aplicaciones de los Sistemas de Bases de


Datos
Los sistemas orientados a los datos se caracterizan porque los datos no son
de una aplicacin sino de una Organizacin entera que los va a utilizar; se
integran las aplicaciones, se diferencian las estructuras lgicas y fsicas. El
concepto de relacin cobra importancia. Originalmente las aplicaciones cubran
necesidades muy especficas de procesamiento, se centraban en una tarea
especfica. Las bases de datos evitan las inconsistencias que se producan por
la utilizacin de los mismos datos lgicos desde distintos archivos a travs de
procesos independientes.
El mundo real considera interrelaciones entre datos y restricciones
semnticas que deben estar presentes en una base de datos. No solo debe
almacenar entidades y atributos, sino que tambin debe almacenar

interrelaciones entre datos.


La redundancia de datos debe ser controlada, pero si se admite cierta
redundancia fsica por motivos de eficiencia.
Pretenden servir a toda la organizacin.
La independencia de los tratamientos sobre los datos y estos mismos, ha
tenido una enorme influencia en la arquitectura de los SGBD.
La definicin y descripcin del conjunto de datos contenido en la base debe
ser nica e integrada con los mismos datos.
La actualizacin y recuperacin de las bases de datos debe realizarse
mediante procesos incluidos en SGBD, de modo que se mantenga la
integridad, seguridad y confidencialidad de la base.
Las limitaciones de los sistemas orientados a archivos puramente
secuenciales no los privaron de ser herramientas eficaces para producir pagos,
facturas y otros informes una o dos veces al mes. Sin embargo, para ejecutar
muchas tareas rutinarias en los negocios se necesita el acceso directo a los
datos -La capacidad de tener acceso y procesar directamente un registro dado
sin ordenar primero el archivo o leer los registros en secuencia.
Los archivos de acceso directo permiten la recuperacin de los registros
aleatoriamente, a diferencia de los de acceso secuencial. Sin embargo, los
archivos de acceso directo solamente proporcionaron una solucin parcial. Para
lograr una solucin ms completa a estos problemas fue necesario introducir
los sistemas de gestin de bases de datos.
Los usuarios cada vez necesitamos ms recursos en tecnologa, es por eso
que surgen las evoluciones de sistemas, y por ende de las bases de datos, es
impresionante ver como la informacin se procesa en microsegundos, mientras
se realizan transacciones al mismo tiempo en la misma base de datos en
lugares y estados diferentes.
La importancia de la informacin es lo que ha llevado a que las empresas y
otras instituciones inviertan para la seguridad de sus datos, el futuro de la
tecnologa es incierto debido a que algunas proyecciones de tecnologa
estimadas hace 5 aos y proyectadas hasta los prximos 10 aos ya son una
realidad, la tecnologa avanza a pasos agigantados es por eso que no debemos
quedarnos atrs y apostar a las nuevas tecnologas que sin duda harn ms

fcil la vida de las personas que tratamos con la administracin y seguridad de


la informacin.
Tanto en uno como en otro papel, la tecnologa de bases de datos se ve
sometida a numerosos cambios tanto desde el punto de vista empresarial como
tecnolgico. Las nuevas aplicaciones estn llevando hasta el lmite a los
sistemas de bases de datos disponibles, al incorporar documentos multimedia.

Unidad 2: Arquitectura del Gestor

2.1 Caractersticas del DBMS


Los sistemas de administracin de bases de datos son usados para:
Permitir a los usuarios acceder y manipular la base de datos
proveyendo mtodos para construir sistemas de procesamiento de datos
para aplicaciones que requieran acceso a los datos.
Proveer a los administradores las herramientas que les permitan
ejecutar tareas de mantenimiento y administracin de los datos.
Algunas de sus caractersticas son:
Control de la Redundancia de Datos
Este consiste en lograr una mnima cantidad de espacio de almacenamiento
para almacenar los datos evitando la duplicacin de la informacin. De esta
manera se logran ahorros en el tiempo de procesamiento de la informacin, se
tendrn menos inconsistencias, menores costos operativos y har el
mantenimiento ms fcil.
Compartimiento de Datos
Una de las principales caractersticas de las bases de datos, es que los
datos pueden ser compartidos entre muchos usuarios simultneamente,
proveyendo, de esta manera, mxima eficiencia.
Mantenimiento de la Integridad
La integridad de los datos es la que garantiza la precisin o exactitud de la
informacin contenida en una base de datos. Los datos interrelacionados deben
siempre representar informacin correcta a los usuarios.
Soporte para Control de Transacciones y Recuperacin de Fallas
Se conoce como transaccin toda operacin que se haga sobre la base de
datos. Las transacciones deben por lo tanto ser controladas de manera que no
alteren la integridad de la base de datos. La recuperacin de fallas tiene que
ver con la capacidad de un sistema DBMS de recuperar la informacin que se
haya perdido durante una falla en el software o en el hardware.

Independencia de los Datos


En las aplicaciones basadas en archivos, el programa de aplicacin debe
conocer tanto la organizacin de los datos como las tcnicas que el permiten
acceder a los datos. En los sistemas DBMS los programas de aplicacin no
necesitan conocer la organizacin de los datos en el disco duro. Este
totalmente independiente de ello.
Seguridad
La disponibilidad de los datos puede ser restringida a ciertos usuarios. Segn
los privilegios que posea cada usuario de la base de datos, podr acceder a
mayor informacin que otros.
Velocidad
Los sistemas DBMS modernos poseen altas velocidades de respuesta y
proceso.
Independencia del Hardware
La mayora de los sistemas DBMS estn disponibles para ser instalados en
mltiples plataformas de hardware.
2.1.1 Estructura de Memoria y Procesos de la Instancia
Introduccin
Oracle utiliza la memoria para almacenar la siguiente informacin:

Cdigo del programa

Informacin acerca de una sesin conectada, incluso si


no se encuentra activa.

Informacin necesaria durante


programa(por ejemplo, el estado de las consultas)

la

ejecucin

del

La informacin que comparten y con la cual se


comunican los procesos Oracle (por ejemplo, la informacin de bloqueo)

La Cach de Datos

La memoria se puede estructurar en las siguientes partes:


rea Global del sistema (SGA), la cual se comparte entre todos los
servidores y los procesos en segundo plano.

reas globales de programas (PGA), que es privada


para cada servidor y proceso en segundo planos; a cada proceso se asigna un
PGA.

rea de Ordenaciones (Sort Areas).

Memoria Virtual

rea de cdigo de Software (SCA).

Figura 1. Estructura de
la memoria en Oracle
rea Global del Sistema (System Global Area, SGA)
El rea Global del Sistema (SGA) es un grupo de estructuras de la memoria
compartida que contiene datos e informacin de control de una instancia de una
BD. Si varios usuarios se conectan de forma concurrente a la misma instancia,
entonces los datos se comparten en el SGA, por lo que tambin se
llama shared global area.
Una instancia en Oracle se compone de un SGA y de procesos. Cuando se
crea una instancia, Oracle asigna memoria a un SGA automticamente y esta
se devuelve al sistema operativo cuando la instancia se cierra. Por tanto, cada

instancia posee su propio SGA.


Adems, es de lectura/escritura. Todos los usuarios conectados a una
instancia multiproceso pueden leer la informacin contenida en el SGA de la
instancia y varios procesos pueden escribir en l durante la ejecucin.
Una parte del SGA contiene informacin general acerca del estado de la
base de datos y de la instancia, a la que los procesos en segundo plano
necesitan acceder (SGA fija), pero no se almacenan los datos de usuario. El
SGA tambin incluye informacin de comunicacin entre procesos, como la
informacin de bloqueos. Adems, si el sistema usa una arquitectura de
servidor compartido, entonces las colas de peticin y respuesta y algunos
contenidos del PGA se encuentran en el SGA.
El SGA contiene la siguiente estructura de datos:

Cach de los Buffers de la BD (Database Buffer Cache).

Buffer del Dietario o del Registro del Rehacer (Redo Log

Buffer).

El Pool Compartido (Shared Pool).

Cach de Biblioteca.

Cach del Diccionario de Datos.

Estructuras de Control.

Informacin diversa

Instancia de una Base de Datos


Cada instancia Oracle est asociada a una base de datos. Cuando se inicia
una base de datos en un servidor (independientemente del tipo de ordenador),
se le asigna un rea de memoria (SGA) y lanza uno o ms procesos. A la
combinacin del SGA y de los procesos es lo que se llama instancia. La
memoria y los procesos de una instancia gestionan los datos de la base de
datos asociada de forma eficiente y sirven a uno o varios usuarios.

Figura 2. Estructura de
una instancia de Oracle
La Instancia y la Base de Datos
Cuando se inicia una instancia Oracle monta la base de datos, es decir,
asocia dicha instancia a su base de datos correspondiente. En un mismo
ordenador pueden ejecutarse varias instancias simultneamente, accediendo
cada una a su propia base de datos fsica.
nicamente el administrador de la base de datos puede iniciar una instancia
y abrir una base de datos. Si una base de datos est abierta, entonces el
administrador puede cerrarla y, cuando esto ocurre, los usuarios no pueden
acceder a la informacin que contiene.
Estructura de Datos del SGA
Cach de los Buffers (Database Buffer Cache)
La cach de los buffers de la base de datos es una parte de la SGA que
contiene copias de los bloques de datos de lectura de las pginas. Todos los
procesos de los usuarios conectados concurrentemente a la instancia
comparten el acceso a ella. Esta cach junto con la cach compartida de SQL
estn lgicamente segmentadas en varios conjuntos, lo que reduce la
contencin en sistemas multiprocesador.
Organizacin de la Cach de los Buffers
Los buffers en la cach estn organizados en dos listas: la lista en espera y
la lista LRU. La lista en espera contiene los buffers en espera (dirty buffers), los
cuales contienen datos que han sido modificados pero que an no se han
escrito en disco. La lista LRU contiene los buffers libres, buffers que estn

siendo accedidos actualmente (pinned buffers) y los buffers en espera, que an


no estn almacenados en la lista en espera. Cuando un proceso Oracle accede
a un buffer, este lo sita al final de la lista LRU.
La primera vez que un proceso de usuario necesita un dato concreto, este
los busca en los datos almacenados en la cach de los buffers. Si el proceso
encuentra el dato en uno de estos buffers, se lee directamente de la memoria
(cache hit). Si no lo encuentra, entonces debe copiar la pgina en disco a un
buffer de la cach antes de leerlo (cache miss). Acceder a los datos a travs
de un cache hit es ms rpido que hacerlo mediante un cache miss.
Antes de leer un bloque de datos dentro de la cach, el proceso debe
encontrar primero un buffer libre, empezando desde el menos usado
recientemente de la lista LRU. El proceso sigue buscando hasta que encuentra
un buffer libre o hasta que llega al final de la lista.
El Algoritmo LRU y la Lectura Completa de Tablas
Cuando un proceso de usuario realiza una exploracin completa de la tabla,
lee cada bloque de la tabla en los buffers y los pone al final de la lista LRU. Se
hace as porque normalmente la exploracin completa se necesita brevemente,
por lo que los bloques deben sacarse rpidamente para dejar espacio en la
cach a los bloques que se usan con mayor frecuencia.
Tamao de la Cach de los buffer
Oracle soporta mltiples tamaos de bloque en una base de datos. El
tamao estndar de bloque se especifica mediante la configuracin del
parmetro DB_BLOCK_SIZE. Se admiten valores desde 2K hasta 32K.
Opcionalmente, tambin se puede seleccionar el tamao de dos pool de
buffer adicionales, KEEP y RECYCLE, configurando DB_KEEP_CACHE_SIZE
y DB_RECYCLE_CACHE_SIZE. Estos tres parmetros son independientes
entre s.
Mltiples Pools de Buffer
Se puede configurar la cache del buffer con buffer pools distintos, en los
que cualquiera contiene datos, o estn disponibles para nuevos datos tras usar
los bloques de datos. Objetos particulares del esquema (tablas, clusters,
ndices y particiones) se asignan al buffer pool apropiado para controlar la

forma en que los bloques de datos envejecen en la cache.


El buffer pool KEEP conserva los bloques de datos de los objetos del
esquema en memoria.

El buffer pool RECYCLE elimina bloques de datos de la


memoria tan pronto como dejan de ser necesitados.

El buffer pool DEFAULT contiene bloques de datos de los


objetos del esquema que no son asignados a ningn buffer pool, as como los
objetos del esquema que son explcitamente asignados al pool DEFAULT.

Los parmetros que configuran los buffer pools KEEP y RECYCLE son
DB_KEEP_CACHE_SIZE y DB_RECYCLE_CACHE_SIZE.
Buffer del Registro del Rehacer (Redo Log Buffer)
El redo log buffer es un buffer circular en el SGA que contiene informacin
sobre cambios hechos a la base de datos, la cual se almacena en las entradas
redo. Estas entradas contienen la informacin necesaria para reconstruir, o
rehacer cambios hechos en la base de datos mediante las operaciones
INSERT, UPDATE, DELETE, CREATE, ALTER o DROP y se usan para la
recuperacin de la base de datos, si fuera necesario.
Las entradas se copian por los procesos desde el espacio de memoria del
usuario al redo log buffer en el SGA, ocupando continuamente espacio
secuencial. El proceso en segundo plano LGWR escribe el redo log buffer en el
fichero redo log activo (o grupo de ficheros) en disco.
El parmetro LOG_BUFFER determina el tamao (en bytes) del redo log
buffer.
El Pool Compartido
Es la parte del SGA que contiene la cache de biblioteca, la cache de
diccionario, los buffers para los mensajes de ejecucin paralela y las
estructuras de control.
El tamao total del Pool Compartido se determina por el parmetro
SHARED_POOL_SIZE. El valor por defecto es de 8MB en plataformas de 32bit, y de 64MB para plataformas de 64-bit. Incrementando su valor se
incrementa la cantidad de memoria reservada para el pool compartido.

Cach de Biblioteca (Library Cache)


La cache de biblioteca incluye reas de SQL compartidas, reas SQL
privadas (en caso de una configuracin de servidor compartido),
procedimientos y paquetes PL/SQL, y estructuras de control tales como
bloqueos y el manejo de la cache de biblioteca.
Ya que las reas de SQL compartidas son accesibles para todos los
usuarios, la cach de biblioteca est contenida en el Pool compartido dentro del
SGA.
reas SQL Compartidas y reas SQL Privadas
Oracle representa cada declaracin de SQL con un rea SQL compartida y
un rea SQL privada. Oracle reconoce cuando dos usuarios estn ejecutando la
misma instruccin SQL y reutiliza el rea SQL compartida para esos usuarios.
Sin embargo, cada usuario debe tener una copia separada de la declaracin del
rea SQL privada.
reas SQL Compartidas
Un rea SQL Compartida contiene el rbol de anlisis y el plan de ejecucin
para una instruccin SQL dada. Se ahorra memoria usando un solo rea SQL
compartida para instrucciones SQL ejecutndose varias veces, lo cual ocurre
con frecuencia cuando varios usuarios ejecutan la misma aplicacin.
Programas PL/SQL y el Pool Compartido
Oracle procesa programas PL/SQL (procedimientos, funciones, paquetes,
bloques annimos, triggers) tanto como procesa instrucciones SQL individuales.
Oracle asigna un rea compartida que contiene la forma analizada y compilada
del programa. Asigna un rea privada para mantener los valores especficos de
la sesin que ejecuta el programa, incluyendo variables locales, globales y de
paquete y buffers para ejecucin SQL. Si ms de un usuario ejecuta el mismo
programa, entonces una simple rea compartida es usada por todos los
usuarios siempre que tenga una copia de su rea SQL privada, manteniendo
valores especficos de su sesin.
Las instrucciones SQL individuales estn contenidas en programas PL/SQL.
Large Pool

El administrador de la base de datos puede configurar un rea de memoria


opcional llamado large pool que proporciona grandes cantidades de memoria
para asignar:
Memoria de la sesin para el servidor compartido y el Oracle XA
interface (usado donde las transacciones interactan con ms de una
base de datos)

Procesamiento de E/S

Copias de seguridad y operaciones de recuperacin

El large pool satisface mejor las peticiones de gran cantidad de memoria que
el pool compartido. Sin embargo, no posee una lista LRU.
Java Pool
La memoria java pool se usa en la memoria del servidor para almacenar todo
el cdigo y datos del JVM en las sesiones. Se usa de diferentes formas,
dependiendo del modo en que se ejecute el servidor Oracle.
El asesor de estadsticas de java pool proporciona informacin sobre la
memoria de la cache de biblioteca usada para java y predice como pueden
afectar cambios en el tamao del java pool en la tasa de anlisis. El asesor de
java pool se activa internamente cuando el statistics_level est configurado en
TYPICAL o mayor. Estas estadsticas se reinician cuando el asesor es
desactivado.
Streams Pool
En una nica base de datos, se puede especificar que los flujos de memoria
se asignen desde un pool en el SGA llamado Streams pool. Para configurarlo
se especifica el tamao del pool en bytes usando el parmetro
STREAMS_POOL_SIZE. Si un streams pool no est definido, entonces se crea
automticamente cuando los flujos se usan por primera vez.
Si SGA_TARGET est activo, entonces la memoria del SGA para los
Streams pool viene del pool global del SGA. Si no est activo, entonces se
transfiere desde la cache del buffer, aunque solo tiene lugar despus del primer
uso de los flujos. La cantidad transferida es del 10% del tamao del pool
compartido.

Cach de Diccionario (Dictionary Cache)


El diccionario de datos es una coleccin de tablas y vistas de la base de
datos que contienen informacin sobre la base de datos (sus estructuras y sus
usuarios.
Oracle accede con frecuencia al diccionario de datos, por lo que tiene dos
localizaciones especiales en memoria designadas a mantenerlo. Una de ellas
es la cach del diccionario de datos, tambin conocida como la cache de fila
porque contiene datos sobre las filas en vez de los buffers (los cuales contienen
bloques de datos), y la otra es el cache de biblioteca.
El Parmetro SGA_MAX_SIZE
El SGA comprende un nmero de componentes de memoria, denominados
pools de memoria, que se usan para satisfacer una clase particular de
asignacin de memoria. Todos los componentes del SGA asignan y liberan
espacio en unidades (mdulos). El tamao del mdulo queda determinado por
el tamao total del SGA. En la mayora de las plataformas el tamao del
mdulo es 4MB si el tamao total del SGA es menor de 1GB, y de 16MB para
SGA mayores.
La base de datos puede configurar lmites sobre cuanta memoria virtual se
usa para el SGA. Puede crear instancias con un mnimo de memoria y permitir
que la instancia use ms, expandiendo la memoria asignada a los componentes
del SGA, hasta un mximo determinado por el SGA_MAX_SIZE. Si el valor es
menor que la suma de memoria asignada para todos los componentes, la base
de datos ignora la configuracin de SGA_MAX_SIZE.
Para un rendimiento ptimo, en la mayora de los sistemas, todo el SGA
debera ajustarse a la memoria real. Si no es as, y la memoria virtual es usada
para almacenar partes del SGA, entonces el rendimiento total del sistema
puede decrementarse en gran medida. La cantidad de memoria dedicada para
todas las reas compartidas en el SGA tambin influye en el rendimiento.
El tamao del SGA queda determinado por muchos parmetros, aunque son
los siguientes los que tienen un gran efecto sobre el tamao del SGA:

Parmetro

Descripcin

DB_CACHE_SIZE

Tamao de la cache de los bloques estndar.

LOG_BUFFER

Nmero de bytes asignados al redo log buffer.

SHARED_POOL_SIZ
E

Tamao en bytes para el rea dedicada al SQL


compartido e instrucciones PL/SQL.

LARGE_POOL_SIZE

Tamao del large pool, por defecto es 0.

JAVA_POOL_SIZE

Tamao del java pool.

Gestin Automtica de Memoria Compartida


En versiones anteriores el administrador de la base de datos tena que
especificar manualmente los tamaos de los diferentes componentes del SGA
configurando un nmero de parmetros de inicializacin, que incluan el
SHARED_POOL_SIZE,
DB_CACHE_SIZE,
JAVA_POOL_SIZE,
y
LARGE_POOL_SIZE. En la versin 10g se incluye la gestin automtica de la
memoria compartida que simplifica la gestin de la memoria del SGA. El
administrador de la BD puede simplemente especificar la cantidad total de
memoria del SGA disponible para una instancia usando SGA_TARGET y la
base de datos automticamente distribuir esta memoria entre varios
subcomponentes para asegurar el mayor uso de memoria efectiva.
Cuando la gestin automtica de memoria del SGA esta activada, el tamao
de los diferentes componentes del SGA es flexible y pueden adaptarse a las
necesidades del trabajo sin requerir ninguna configuracin adicional. La base
de datos automticamente distribuye la memoria disponible entre varios
componentes como se requiera, permitiendo al sistema maximizar el uso de
toda la memoria del SGA disponible.
Configurando un nico parmetro se simplifica mucho la tarea de
administracin ya que puedes especificar solo la cantidad de memoria del SGA

que una instancia tiene disponible y olvidarte de los tamaos de los


componentes individuales. No se generan errores de out of memory a menos
que el sistema se haya quedado sin memoria.
La gestin automtica del SGA puede mejorar el rendimiento sin necesidad
de recursos adicionales ni ajustes manuales. Con la configuracin manual del
SGA es posible que instrucciones SQL compiladas se saquen del pool
compartido debido a su insuficiente tamao lo que incrementa la frecuencia de
anlisis difciles, que reducen el rendimiento. Cuando la gestin automtica del
SGA esta activa, el algoritmo de ajuste interno supervisa el rendimiento del
trabajo, incrementando el tamao del pool compartido si reduce el nmero de
anlisis requeridos.
El Parmetro SGA_TARGET
El parmetro SGA_TARGET refleja el tamao total del SGA e incluye la
memoria para los siguientes componentes:

SGA Fija y otras asignaciones internas necesarias para la instancia.

El log buffer

El pool compartido

El Java pool

La cach del buffer

Las cachs de los buffers keep y recycle (si son

especificados)
El tamao de los bloques no estndar de las cachs de
los buffer (si son especificados)

El Streams pool

Este incluye toda la memoria del SGA, en diferencia con las versiones
anteriores en las que la memoria para la SGA interna y fija se configuraba a
travs de otros parmetros. En consecuencia, el SGA_TARGET da un control
preciso sobre el tamao de la regin de memoria compartida asignada por la
base de datos. Si est configurado con un valor mayor que SGA_MAX_SIZE al
inicio, entonces este ltimo se usa como respaldo para el SGA_TARGET.

Nota: No configurar dinmicamente


configurado solo al inicio.

el

SGA_TARGET.

Debera

ser

Limitando el Tamao de la SGA


El parmetro SGA_MAX_SIZE especifica el tamao mximo del SGA
durante la duracin de la instancia. Puedes modificar dinmicamente los
parmetros que afectan al tamao de las caches de los buffers, del pool
compartido, large pool, java pool, y streams pool pero solo para controlar que la
suma de estos tamaos y los tamaos de los otros componentes del SGA no
exceden el valor especificado por SGA_MAX_SIZE.
2.1.2 Estructuras Fsicas de la Base de Datos
reas Globales de Programas PGA (Program Global Areas)
Un rea global de programa (PGA) es una regin de memoria que contiene
datos e informacin de control para los procesos de servidores. Es una
memoria no compartida creada por Oracle cuando un proceso de un servidor es
iniciado. Solo el servidor del proceso puede acceder a l y se lee y escribe
solamente por un cdigo de Oracle que acta en nombre del proceso.
Contenido de un PGA
El contenido de la memoria de un PGA vara dependiendo de dnde se est
ejecutando la instancia y de si el tipo de servidor es compartido. Pero
generalmente la memoria del PGA puede ser clasificada de la siguiente forma:
Memoria de Sesin: La memoria de sesin (Session Memory) se asigna
para mantener las variables de una sesin (logon information) y otra
informacin relativa a la sesin. Para un servidor compartido, la memoria de
sesin es compartida y no privada.
rea SQL Privada: Un rea SQL privada contiene datos como por ejemplo
consultas de informacin de ejecuciones y consultas de ejecuciones en reas
de trabajo. Cada sesin que establece una sentencia tiene un rea privada de
SQL. Cada usuario que emite la misma sentencia tiene su propia rea SQL
privada que usa un rea SQL compartida. Aunque, muchas reas SQL privadas
pueden ser asociadas con la misma rea SQL compartida.
La ubicacin de un rea privada SQL depende del tipo de conexin
establecida para una sesin. Si una sesin se conecta a travs de un servidor

dedicado, las reas privadas SQL esta localizadas en el servidor del proceso
del PGA. De cualquier forma, si una sesin se conecta a travs de un servidor
compartido, parte del rea privada SQL se mantiene en el SGA.
Cursores y reas SQL
La aplicacin de desarrollo de un programa precompilador Oracle o un
programa OCI puede explcitamente abrir cursores, o manejar algn rea
privada SQL especfica, y usarla como un recurso nombrado a travs de la
ejecucin de un programa. Los cursores recursivos de Oracle que emiten
implcitamente algunas sentencias SQL tambin usan reas SQL.
La administracin de las reas SQL privadas son responsabilidad de los
procesos del usuario. La asignacin y liberacin de las reas SQL privadas
dependen de en qu herramienta de la aplicacin se usan, aunque el nmero
de reas SQL privadas que un proceso de usuario puede asignar est siempre
limitado el parmetro OPEN_CURSORS. El valor por defecto de este
parmetro es 50.
Un rea SQL privada continua existiendo hasta que el correspondiente
cursor es cerrado o la sentencia es liberada. Aunque Oracle libera el rea de
ejecucin despus de que la sentencia se complete, el rea persistente se
mantiene en espera. Las aplicaciones de desarrollo cierran todos los cursores
abiertos que no van a ser usados otra vez para liberar el rea persistente y
minimizar la cantidad de memoria requerida por el usuario de la aplicacin.
Componentes del rea SQL Privada
El rea SQL privada de un cursor se divide en 2 reas cuya duracin son
diferentes:
El rea persistente (Persistent Area), que contiene, por ejemplo,
informacin envuelta. Es liberada solamente cuando el cursor es
cerrado.

El rea de ejecucin (Run-time Area), que es liberada


cuando la ejecucin, valga la redundancia, es terminada.

Oracle crea el rea de ejecucin en el primer paso que una ejecucin es


pedida. Para una sentencia INSERT, UPDATE y DELETE Oracle libera el rea
de ejecucin despus de que la sentencia ha sido ejecutada. Para las
consultas, Oracle libera el rea de ejecucin solamente cuando todas las filas

han sido recorridas, o la consulta ha sido cancelada.


reas de Trabajo SQL
Para las consultas complejas, una gran porcin del rea de ejecucin es
dedicada a reas de trabajo asignadas por operadores de memoria-intensiva
como los siguientes:
Operadores de base de clasificacin Sort-based (order by, group by,
rollup)

Hash-join

Bitmap merge

Bitmap create

Por ejemplo, un operador de clasificacin (sort operator) usa un rea de


trabajo (algunas veces llamado rea de clasificacin sort area) para la forma
de distribucin de la memoria interna (in-memory) de una serie de filas.
Similarmente, un operador hash-join usa un rea de trabajo (tambin llamada
rea hash) para construir una tabla hash desde su entrada izquierda. Si la
cantidad de datos que deben ser procesados por estos dos operadores no
entran en el rea de trabajo, entonces los datos de entrada son divididos en
piezas ms pequeas. Esto permite que alguna de las piezas se procesen en la
memoria mientras el resto son distribuidos en un disco temporal para ser
procesado luego. Aunque los operadores de bitmap no se distribuyen por el
disco cuando su rea de trabajo es muy pequea, su complejidad es
inversamente proporcional al tamao de su rea de trabajo. Estos operadores
se ejecutan ms rpido en reas de trabajo ms grandes.
El tamao del rea de trabajo puede ser controlado y modificado.
Generalmente, reas de bases de datos grandes pueden mejorar
significativamente el rendimiento de un operador respecto al coste de consumo
de memoria. Opcionalmente, el tamao de un rea de trabajo puede ser lo
bastante grande como para almacenar los datos de entradas y las estructuras
auxiliares de memoria asignadas por el operador SQL asociado. De lo contrario,
el tiempo de respuesta aumenta, porque parte de los datos de entrada deben
ser distribuidos por un disco de almacenamiento temporal. En caso extremo, si
el tamao del rea de trabajo es muy pequeo comparado con el tamao del
dato de entrada, mltiples procesos se ejecutan sobre la parte de los datos.

Esto puede aumentar


considerablemente.

el

tiempo

de

respuesta

de

un

operador

Administracin de la Memoria del PGA para un Modo Dedicado


Se puede administrar el tamao de las reas de trabajo SQL globalmente y
automticamente. El administrador de la base de datos simplemente necesita
que sea especificado el tamao total dedicado a la memoria del PGA para las
instancias de configurando el parmetro PGA_AGGREGATE_TARGET. El
nmero especificado (por ejemplo 2G) es un objetivo global para la instancia, y
se trata de asegurar que la cantidad total de memoria del PGA asignada por
toda la base de datos de los procesos del servidor nunca exceda esa meta.
Con PGA_AGGREGATE_TARGET, modificar el tamao de las reas de
trabajo para todas las sesiones dedicadas es automtico, y todos los
parmetros *_AREA_SIZE se ignoran en estas sesiones.
rea de Ordenaciones (Sort Areas)
Las reas de ordenaciones (Sort Areas) de Oracle son las zonas de memoria
en las que se ordenan los datos, es decir el espacio en memoria que necesita
la organizacin y ordenacin de las filas.
El tamao por defecto, expresado en bytes, es especfico de cada SO. Sin
embargo, hay muchas razones importantes por las que este tamao influye en
el rendimiento. En el manual de Oracle 10i encontramos cuatro de ellas:
Aumentar el SORT_AREA_SIZE mejora la eficiencia de
ordenaciones grandes.

Cada ordenacin en una consulta puede consumir la


cantidad de memoria especificada en el SORT_AREA_SIZE, y pueden haber
mltiples ordenaciones en una consulta. De esta forma, si otra consulta se
ejecuta en paralelo, cada ordenacin puede consumir la memoria especificada
en este campo.

El SORT_AREA_SIZE tambin se utiliza para selecciones


y actualizaciones en los ndices de las tablas. Seleccionar un valor apropiado
aqu, puede dar como resultado que la tabla se actualice una nica vez en cada
operacin DML, pudiendo incluso haber cambiado varias filas a la vez.

Grandes valores en este campo nos permitirn realizar

mayores bsquedas en memoria. Si se necesitase ms espacio para la


ordenacin del que tenemos, los datos se dividirn en trozos y se utilizarn
segmentos de disco temporales como apoyo en la ordenacin.
En ste ltimo caso, en el que los datos a ordenar no quepan en el rea de
ordenaciones, se dividen en trozos que s quepan, se ordenan y se mezclan
(merge). A esto hace referencia tambin el manual de Oracle9i, que si bien lo
hace en trozos separados, a continuacin se muestran las dos referencias
juntas:
Para un mejor rendimiento del SGBD, la mayora de las
ordenaciones deberan tener lugar nicamente en memoria ya que en caso de
tener que escribir a disco, obtendremos un claro efecto adverso sobre ste. Si
las aplicaciones que acceden a la base de datos suelen realizar bsquedas que
no caben en el rea de ordenaciones, o incluso si las aplicaciones realizan
demasiadas bsquedas innecesarias, entonces sera conveniente modificar el
parmetro de SORT_AREA SIZE.

El SORT_AREA_SIZE es un parmetro que se puede


inicializar y modificar dinmicamente y que especifica la cantidad de memoria
que se tiene disponible al realizar las ordenaciones. Si una cantidad importante
de ordenaciones requiere acceso a disco para almacenar segmentos
temporales, entonces la aplicacin se ver claramente beneficiada al ampliar el
SORT_AREA_SIZE. De forma alternativa, en un entorno DSS, aumentar este
parmetro no tiene por qu hacer que la ordenacin se realice nicamente en
memoria, pero s es cierto que dependiendo del valor actual y del nuevo
elegido, se puede aumentar drsticamente la velocidad de la ordenacin.

Por lo tanto, como conclusin, alterar este parmetro, se puede considerar


como un paso importante para asegurarnos el rendimiento en ciertas
circunstancias y situaciones. Sin embargo, determinar qu valor es el ms
apropiado, es por supuesto, la parte ms complicada.
Memoria Virtual en Oracle
Oracle puede utilizar la memoria virtual proporcionada por el SO para simular
memoria a base de algn dispositivo de almacenamiento como el disco duro.
La memoria virtual est mapeada en la RAM. Cuando no hay suficiente
memoria con sta para ejecutar los programas (en caso de Oracle las
sentencias, bsquedas, etc) se necesita un espacio auxiliar que normalmente

suele ser el disco duro. Para el traspaso de informacin se utilizan dos tcnicas
principales: el Paging o paginacin y el Swapping.
Paginacin
La paginacin consiste en dividir los programas en pequeos bloques o
pginas, de manera que sea ms fcil moverlos de memoria a disco y
viceversa. De la misma forma, la memoria se divide en marcos de pgina. De
esta forma, la cantidad de memoria desperdiciada por un proceso es el final de
su ltima pgina, minimizando as la fragmentacin interna y evitando la
externa.
En un momento cualquiera, la memoria se encuentra ocupada con pginas
de diferentes procesos, mientras que algunos marcos estn disponibles para su
uso. El sistema operativo mantiene una lista de estos ltimos marcos, y una
tabla por cada proceso, donde consta en qu marco se encuentra cada pgina
del proceso. De esta forma, las pginas de un proceso pueden no estar
contiguamente ubicadas en memoria, y pueden intercalarse con las pginas de
otros procesos.
En la tabla de pginas de un proceso, se encuentra la ubicacin del marco
que contiene a cada una de sus pginas. Las direcciones lgicas ahora se
forman como un nmero de pgina y de un desplazamiento dentro de esa
pgina (conocido comnmente como offset). El nmero de pgina es usado
como un ndice dentro de la tabla de pginas, y una vez obtenida la direccin
del marco de memoria, se utiliza el desplazamiento para componer la direccin
real o direccin fsica. Este proceso se realiza en una parte del ordenador
especficamente diseada para esta tarea, es decir, es un proceso hardware y
no software.
De esta forma, cuando un proceso es cargado en memoria, se cargan todas
sus pginas en marcos libres y se completa su tabla de pginas.
Swapping
El Swapping es el procedimiento de mover los bloques de memoria en los
que estn algunos procesos que no se estn utilizando, desde la memoria
principal a un espacio Swap dejando as hueco libre para poder cargar en
memoria otros procesos que s se van a utilizar.
El espacio Swap o espacio de intercambio es una zona de disco (un fichero o

una particin) que se usa para guardar las imgenes de los procesos que no
han de mantenerse en memoria fsica.
Este procedimiento es muy similar a la paginacin, con la diferencia principal
de que el directorio Swap funciona exactamente igual que la memoria RAM, por
lo que puede almacenar datos privados, contraseas y todo lo que almacena
sta. Sin embargo, en la paginacin, nicamente se sacan de memoria pginas
pertenecientes a procesos que no se estn utilizando, adems de que se
pueden sacar solo algunas pginas de los procesos y no stos enteros como se
hace en el Swapping.
Con respecto al tamao que debe tener el directorio Swap, hay muchas
discusiones sobre ello como por ejemplo la antigua creencia de El Swap debe
tener el doble de tamao que la RAM. cosa que no es vlida hoy da debido a
la gran capacidad de la memoria RAM de la mayora de ordenadores.
Como conclusin, hay que destacar que el uso de la memoria virtual por
parte de Oracle, va a influir bastante en el rendimiento, disminuyndolo
drsticamente en comparacin con el uso nicamente de la memoria RAM.
rea de Cdigo de Software (Sca)
El rea de cdigo de software son zonas de memoria destinadas a
almacenar el cdigo de Oracle en ejecucin o que puede ejecutarse. Este
cdigo de Oracle se almacena en una zona distinta, y ms protegida, que las
zonas dedicadas a almacenar los cdigos de programas de usuarios.
La SCA suele ser de tamao esttico, cambiando nicamente cuando el
software se reinstala o actualiza. El tamao requerido para este rea puede
variar en funcin del SO. Son reas de slo lectura y pueden ser instalas de
forma compartida o no compartida. Cuando es posible, el cdigo de Oracle se
comparte, por lo que todos los usuarios pueden acceder a l sin tener mltiples
copias en memoria. El resultado es un ahorro considerable de memoria y una
mejora del rendimiento general.
Por otra parte, los programas de usuario tambin pueden ser compartidos o
no. Algunas utilidades y herramientas de Oracle (como ocurre con Oracle
Forms y SQL*Plus) pueden ser instalados de forma compartida, pero otras no.
Mltiples instancias de Oracle pueden usar la misma SCA con diferentes bases
de datos si estn corriendo en la misma mquina.

Hay que tener en cuenta que la opcin de instalar software compartido


puede no estar disponible en funcin del sistema operativo, como ocurre por
ejemplo en mquinas con Windows.
Estructura de los Procesos
Cuando un usuario se conecta a una base de datos de Oracle ejecuta dos
mdulos de cdigo diferentes, que adems el encargado de gestionar estos
procesos es el sistema operativo, estos dos mdulos diferentes son:
Aplicacin o Herramienta Oracle: normalmente son
programas clientes que se conectan a la base de datos y permiten ejecutar
sentencias SQL. Ej.: SQL*Plus, SQL developer
Cdigo del Servidor de Oracle: son los diferentes procesos
que se han de ejecutar en el servidor para atender las peticiones del usuario.
La base de datos Oracle es un sistema multiproceso, lo que significa que no
toda la base de datos est corriendo en un mismo proceso, si no que varias
partes de la base de datos se ejecuta concurrentemente. Permitiendo a
mltiples usuarios conectarse a la misma vez, y mayor rapidez en el tiempo de
respuesta, puesto que siempre que pueda va a utilizar al mximo al ordenador,
por ejemplo si tiene ocho ncleos el servidor, y resulta que una peticin se
puede paralelizar se ejecutara esa peticin por partes en cada ncleo.
De los procesos que se ejecutan en el servidor podemos hacer dos grandes
grupos:
Procesos de Usuarios: Cada vez que un usuario ejecuta una aplicacin, ya
sea propia o de Oracle se crea un proceso, que puede ser de dos tipos.
Conexin: Que es la va de comunicacin entre la aplicacin y
la instancia de la base de datos a la que se ha conectado.
Sesin: Es la conexin especfica con la base de datos
proporcionando un usuario y su contrasea.
Esto permite que desde un mismo equipo se puedan conectar varios
usuarios simultneamente, y que un usuario se pueda conectar desde
diferentes equipos simultneamente.

Procesos de Oracle: Son propios de la base de datos, y el usuario no tiene


control sobre ellos, pueden ser de dos tipos:
Procesos de Servidor: Se crea cuando una aplicacin intenta
acceder a la base de datos, para atender a las peticiones de la aplicacin y
devolver los resultados que se precisen.
Procesos de Background: Se crean cuando se inicia una instancia
de la base de datos, solo hay un proceso de cada tipo de los que
especificaremos a continuacin, y no han de estar todos siempre presentes en
el servidor. Se utilizan para realizar labores de mantenimiento, y para guardar la
integridad de la base de datos. Los diferentes tipos de procesos son los
siguientes:
Database Writer Process (DBWn)
El (DBWn) escribe el contenido de los buffers en los archivos de datos. El
proceso DBWn es responsable por la escritura de los buffers modificados del
buffer cache al disco. El proceso DBWn escribe buffers modificados al disco
bajo las siguientes condiciones:
Cuando un proceso no puede encontrar un buffer limpio reusable despus de
haber recorrido un nmero de determinado de buffers en el buffer cach, ste
enva una seal al DBWn para la escritura. El DBWn escribe los buffers sucios
al disco.
El DBWn peridicamente escribe los buffers cuando se lleva a cabo un
checkpoint. Chekpoint es una posicin en el hilo de redo (log) donde se iniciar
luego la recuperacin. La posicin en el log est determinada por el ltimo
buffer sucio en el buffer cach.
Log Writer Process (LGWR)
El proceso LGWR es responsable del manejo del redo log buffer, las
escrituras del redo log buffer al archivo de redo log en el disco. El LGWR
escribe todos los registros de redo que han sido copiados en el buffer desde la
ltima vez que ste se escribi. El redo log buffer es un buffer circular. Cuando
LGWR escribe los registros del redo log buffer al redo log file, el proceso
servidor puede copiar nuevos registros sobre aquellos que se pasaron a disco.
LGWR normalmente escribe lo suficientemente rpido para asegurar que el
espacio est siempre disponible en el buffer para nuevos registros, aun cuando

la escritura al redo log file sea lenta.


LGWR escribe en porciones contiguas del buffer al disco. El LGRW escribe:
Un registro de commit cuando un usuario hace commit de una
transaccin
Redo log buffers:

Cada tres segundos

Cuando el redo log tenga un tercio lleno

Cuando un proceso de DBWn escriba los buffers modificados a


disco, si es necesario.
Cuando un usuario lleva a cabo una instruccin de commit, el LGWR coloca
el registro de commit en el log buffer y escribe la transaccin a disco
inmediatamente en el redo log. Los cambios correspondientes a los bloques de
datos en el buffer cach, son dejados hasta que se tenga una escritura ms
eficiente que hacer. Esto se denomina el mecanismo de fast commit. La
escritura de un registro de redo del commit de la transaccin es un evento
atmico.
Existe un mito con respecto a la escritura en el redo log buffer, se dice que
en el redo log buffer o redo log file aparecern slo las transacciones
comprometidas. En el redo log file se escriben todas las transacciones, no slo
las comprometidas, es por ello que el redo log permite rehacer los segmentos
de undo del cualquier punto en el tiempo cuando se hace recuperacin
incompleta (point in time recovery).
Redo Log Files
Los Redo Log Files se agrupan en grupos de Redo Log. Todos los miembros
de un Redo Log Group son idnticos, es decir contendrn la misma
informacin. Dentro de un grupo de Redo Log se "multiplexan" los archivos para
evitar los puntos de fallas, es decir si se perdiera un archivo de Redo Log
habra otro que contendra la informacin y que permitiera la recuperacin de la
base de datos.
Los redo log se utilizan de forma circular, mediante grupos de archivos. Por

defecto la base de datos Oracle genera 3 grupos de archivos. Se considerar el


grupo current (actual) aquel donde se est utilizando para escribir las
transacciones actuales de la base de datos. Se considera un grupo active
(activo), aquel que no es el actual y que posea transacciones cuyos cambios no
se han hecho permanentes en los archivos de datos e inactivo aquel que
contenga transacciones que han sido completamente escritas a disco,
finalmente tambin se puede tener que un grupo de redo log est limpio porque
nunca haya sido escrito.
Los archivos de redo log trabajan de forma circular porque se sobrescriben,
generalmente con los tres grupos se tendr que uno de ellos se encontrar
activo, el siguiente en enumeracin ser el actual y el siguiente estar inactivo
listo para que se escriba en l. Una vez llenado el grupo actual se comenzar a
escribir en el inactivo, que ahora ser el actual, el que anteriormente era el
actual pasar a ser activo si an no se han escrito todas sus transacciones a
disco y eventualmente el que inicialmente estaba activo pasar a ser inactivo y
permitir que al llenarse el grupo actual se escriban las transacciones en l.
Si se llenara el grupo actual de los archivos de redo y el resto de los grupos
se encontraran activos, la base de datos no permitira ninguna transaccin
hasta que se escriban todas las transacciones a disco del siguiente grupo de
redo log y que este quedase inactivo. Cuando se trabaja con una base de datos
en modo ARCHIVELOG, antes de sobrescribir el archivo se hace una copia de
ese grupo de redo log al destino de los archivos.
Checkpoint Process (CKPT)
El CKPT lleva a cabo un checkpoint, entendindose como tal a la escritura
parcial o completa de los buffers de memoria a disco. El CKPT no es el
responsable de escribir los bloques a disco, para ello llama al DBWn y como en
esa escritura podran almacenarse en disco buffers de transacciones no
comprometidas el CKPT tambin llama al LGWR para que registre en los redo
log files esta escritura que permita generar los segmentos de undo de
transacciones no comprometidas cuando se realice una recuperacin
incompleta. Tambin si en la escritura del checkpoint hay transacciones que no
se haban terminado de escribir en disco se escriben, se actualiza la cola de
transacciones activas y un grupo de redo log que estaba activo podra pasar a
inactivo.
Cuando un checkpoint ocurre, Oracle debe actualizar todas las cabeceras de
los archivos de datos con los detalles del checkpoint, sta es una tarea del

CKPT.
System Monitor Process (SMON)
El proceso SMON lleva a cabo la recuperacin, si es necesaria, de la
instancia en el inicio de la misma, es decir rehacer cualquier transaccin
comprometida en el redo log file que no haya sido escrita a disco. SMON
tambin es responsable de limpiar los segmentos temporales que no estn en
uso por algn tiempo y de desfragmentar si cree oportuno alguna zona de los
discos.
Process Monitor (PMON)
PMON lleva a cabo procesos de recuperacin cuando un proceso de usuario
falla. Es responsable de la limpieza del buffer cach, tambin de deshacer los
cambios que se hayan hecho desde el ultimo commit y de la liberacin de
recursos que el proceso estaba usando. Por ejemplo este restaura el status de
la tabla de transacciones activas, libera los locks y remueve el ID del proceso
de la lista de procesos activos, asociados a un proceso usuario que pudo haber
perdido la conexin de red.
Recoverer (RECO)
Este proceso solo se observa cuando la base de datos ejecuta la opcin
distribuida de Oracle. La transaccin distribuida es una en la que dos o ms
emplazamientos de datos deben mantenerse sincronizados, Por ejemplo
cuando se tiene una copia de los datos en diferentes ciudades y por fallas en
una lnea telefnica se pierde una transaccin en la mitad de su actualizacin.
El proceso recuperador entonces resuelve las transacciones que hayan
quedado inconsistentes en las dos ciudades.
Archiver Processes (ARCn)
El ARCn copia los archivos de redo log llenos a un espacio de
almacenamiento distinto para no perderlos al ser sobreescritos. El ARCn slo
est habilitado cuando la base de datos est en el modo ARCHIVELOG. En
Oracle 10g para colocar la base de datos en modo archive basta con colocarla
en modo ARCHIVELOG y especificar los destinos de "archive". En Oracle 9i se
distingua entre el "archive" manual y automtico. Con "archive" manual el DBA
deba ordenar hacer la copia de los redo log a los "archives", en el modo
automtico se copiaban automticamente antes de ser sobrescritos. En Oracle

10g al poner una base de datos en modo ARCHIVELOG automticamente se


coloca en el modo automtico.
Lock (LCKn)
Es un proceso opcional, configurado para manejar los bloqueos entre bases
de datos Oracle cuando estas se encuentran en distintos computadores y
compartiendo el mismo conjunto de discos (es decir en modo servidor en
paralelo).
Job Queue (SNPn)
Es un proceso opcional, que se encarga de planificar los procesos que se
deben ejecutar y asegurar que todos deben de terminar en algn momento.
Queue Monitor (QMNn)
QMNn es un proceso opcional de background para el encolamiento
avanzado de Oracle, que monitorea las colas de mensajes. El encolamiento
avanzado se usa con comunicacin asncrona. Los procesos envan los
mensajes y en lugar de esperar por la respuesta siguen con su trabajo.
Dispatcher (Dnnn)
Es un proceso opcional que permite a los usuarios compartir procesos de
servidor. Permitiendo que se conecten mltiples usuarios al mismo servidor.
Shared Server (Snnn)
Este tipo de proceso se encarga de atender a cada uno de los clientes
conectados a la base de datos compartiendo los procesos del servidor.
2.1.3 Requerimientos para Instalacin de la Base de Datos
Antes de instalar cualquier SGBD es necesario conocer los requerimientos
de hardware y software, el posible software a desinstalar previamente, verificar
el registro de Windows y el entorno del sistema, as como otras caractersticas
de configuracin especializadas como pueden ser la reconfiguracin de los
servicios TCP/IP y la modificacin de los tipos archivos HTML para los diversos
navegadores.
Se presenta a continuacin una serie de requerimientos mnimos de

hardware y software para instalar oracle 11g Express y MySQL estndar versin
5.1. En Windows Seven y Ubuntu 10.

Requerimiento

Oracle

MySQL

RAM

512
MB

512
MB

Memoria virtual

1024
MB

1024
MB

Espacio disco duro

1.5
GB

Tamao mximo de la base de datos

Sistema Operativo:
Seven, Linux, Unix

Windows

Arquitectura del Sistema 32/64-bit

Protocolo de red TCP/IP

Protocolo de red TCP/IP con SSL

Server,

4 GB

Windows

1 GB

Sin
limite

La regla general para determinar el tamao de la memoria virtual depende


del tamao de memoria RAM instalada. Si su sistema tiene menos de 4 GB de
RAM por lo general el espacio de intercambio debe ser de al menos dos veces
este tamao. Si usted tiene ms de 8 GB de memoria RAM instalada puede
considerar usar el mismo tamao como espacio de intercambio. Cuanta ms
memoria RAM tenga instalada, es menos probable usar el espacio de
intercambio, a menos que tenga un proceso inadecuado.
2.1.4 Instalacin del Software de Base de Datos en ModoTransaccional
Debido al constante crecimiento de datos que generan las empresas hoy en
da, se ha vuelto muy necesaria la bsqueda de nuevas plataformas para
almacenar y analizar la informacin, ambientes que consuman menos recursos,
que sean ms escalables y que provean una alta disponibilidad. La solucin
consiste en el procesamiento paralelo de los datos de una base de datos.
Una base de datos en modo transaccional significa que la BD ser capaz de
que las operaciones de insercin y actualizacin se hagan dentro de una
transaccin, es un componente que procesa informacin descomponindola de
forma unitaria en operaciones indivisibles, llamadas transacciones, esto quiere
decir que todas las operaciones se realizan o no, si sucede algn error en la
operacin se omite todo el proceso de modificacin de la base de datos, si no
sucede ningn error se hacen toda la operacin con xito.
Una transaccin es un conjunto de lneas de un programa que llevan insert o
update o delete. Todo aqul software que tiene un log de transacciones (que es
la "bitcora" que permite hacer operaciones de commit o rollback), propiamente
es un software de BD; aqul que no lo tiene (v.g. D-Base), propiamente no lo
es. Todo software de base de datos es transaccional; si el software de la BD no
es "transaccional", en realidad NO es un "software" de BD; en todo caso, es un
software que emula el funcionamiento de un verdadero software de BD. Cada
transaccin debe finalizar de forma correcta o incorrecta como una unidad
completa. No puede acabar en un estado intermedio.
Se usan los siguientes mtodos:

Begin TRans para iniciar la transaccin

CommitTrans para efectuar los cambios con xito

RollbackTrans para deshacer los cambios

Y depende que base de datos uses para efectuar las operaciones pero, es la
misma teora para cualquier BD.
Instalacin de MySQl en Windows 7
1. Comprobar que no existe una versin anterior, si existe desinstalarla.
2. Descargar el archivo de instalacin, en nuestro caso MySQL
Enterprise.
3. Ejecute el archivo:

4. Procesa a instalar en el modo por defecto. Es necesario tener


conexin a Internet
5. Configure el servidor segn sus necesidades

6. Es este punto se configura como se comportar nuestro servidor y el


servicio. Adems se descargan e instalan los paquetes necesarios.

7. Ahora proceda a configurar MySQL Workbench; es una herramienta


visual de diseo de bases de datos que integra desarrollo de software,
administracin de bases de datos, diseo de bases de datos, creacin y
mantenimiento para el sistema de base de datos MySQL. Es el sucesor
de DBDesigner 4 de fabFORCE.net, y reemplaza el anterior conjunto de
software, MySQL GUI Tools Bundle.

En MySQL 5.x se soporta por defecto el modo transaccional mediante el


motor InnoDB
Dos recursos basados en disco muy importantes que gestiona el motor de
almacenamiento InnoDB son sus archivos de datos de espacios de tablas y sus
archivos de registro (log).
Si no se especifican opciones de configuracin para InnoDB, MySQL 5.0
crea en el directorio de datos de MySQL un archivo de datos de 10MB
(autoextensible) llamado ibdata1 y dos archivos de registro (log) de 5MB
llamados ib_logfile0 e ib_logfile1.
2.1.5 Variables de Ambiente y Archivos Importantes para Instalacin
Variable: Es un espacio en memoria al cual se le da un nombre Hay
variables especficas que se crean al momento de entrar al sistema, pero
tambin hay variables que pueden ser definidas por el usuario. Las variables
son una forma de pasar informacin a los programas al momento de
ejecutarlos.
Variables de Ambiente: Se usan para personalizar el entorno en el que se
ejecutan los programas y para ejecutar en forma correcta los comandos del
shell.
Toman su valor inicial generalmente de un archivo .profile, pero hay veces en
que el usuario tiene que modificar los valores de alguna variable de ambiente
cuando est tratando de instalar o ejecutar un nuevo programa
A continuacin se comentan las opciones ms utilizadas de la seccin
mysqld (afectan al funcionamiento del servidor MySQL), se almacenan en el
archivo my.cnf (o my.ini)
basedir = ruta: Ruta a la raz MySQL
console: Muestra los errores por consola independientemente de lo que se
configure para log_error.
datadir = ruta: Ruta al directorio de datos.
default-table-type = tipo: Tipo de la Tabla InnoDB o, MyISAM.
flush: Graba en disco todos los comandos SQL que se ejecuten (modo de

trabajo, sin transaccin).


general-log = valor: Con valor uno, permite que funcione el archivo LOG
para almacenar las consultas realizadas.
general-log-file = ruta: Indica la ruta al registro general de consultas.
language: Especifica el idioma de los lenguajes de error, normalmente esots
archivos de lenguaje, estn bajo /usr/local/share.
log-error = ruta: Permite indicar la ruta al registro de errores.
log = ruta: Indica la ruta al registro de consultas.
long-query-time = n: Segundos a partir de los cuales una consulta que
tardes ms, se considerar una consulta lenta.
og-bin = ruta: Permite indicar la ruta al registro binario.
pid-file = ruta: Ruta al archivo que almacena el identificador de proceso de
MySQL.
port = puerto: Puerto de escucha de MySQL.
skip-grant-tables: Entra al servidor saltndose las tablas de permisos, es
decir todo el mundo tiene privilegios absolutos.
skip-networking: El acceso a MySQL se har solo desde el servidor local.
slow-query-log = 0|1: Indica si se hace LOG de las consultas lentas.
slow-query-log-file = ruta: Ruta al archivo que hace LOG de las consultas
lentas.
socket = ruta: Archivo o nombre de socket a usar en las conexiones locales.
standalone: Para Windows, hace que el servidor no pase a ser un servicio.
user = usuario: Indica el nombre de usuario con el que se iniciar sesin en
MySQL.
tmpdir = ruta: Ruta al directorio para archivos temporales.

Archivos LOG en MySQL


Hay cuatro registros (logs):
Registro de Errores (Error Log): Indica cuando arranc y se detuvo el
servidor. Se graba por defecto en la carpeta de datos de MySQL (archivo
host_name.err, donde host_name es el nombre del servidor), pero la variable
de sistema log_error permite indicar otra ruta si fuera necesario.
Registro General de Consultas (General Log File): Est en la carpeta de
datos de MySQL, salvo que se indique la variable general-log-file. Contiene las
consultas realizadas. Es el archivo host_name.log.
Registro Binario (Binary Log): Registra instrucciones DML. Los archivos
binarios se almacenan por defecto en el directorio de datos. Sirve para intentar
restaurar una base de datos en caso de desastre. Es binario, por lo que su
manejo es complicado, para ver el contenido se usa la utilidad mysqlbinlog de
esta forma: mysqlbinlog archivoLOG
Registro de Consultas Lentas (Slow Query Log File): Registra las
consultas que tardaron ms del tiempo mnimo establecido. El archivo est
(salvo quese especifique slow-log-file como parmetro) en la carpeta de datos
de MySQL con el nombre host_name-slow.log
2.1.6 Procedimiento General de Instalacin de un DBMS
MySQL Enterprise Edition
MySQL Enterprise Edition incluye el conjunto ms completo de
caractersticas avanzadas y herramientas de gestin para alcanzar los ms
altos niveles de escalabilidad, seguridad, fiabilidad y tiempo de actividad.
Reduce el riesgo, costo y complejidad en el desarrollo, implementacin y
administracin de aplicaciones crticas de negocio MySQL.
El MySQL Enterprise incluye las siguientes opciones:
Backup: Realiza copias de seguridad de bases de datos MySQL en lnea, de
los subconjuntos de tablas InnoDB, y la recuperacin mediante puntos de
restauracin.
Alta Disponibilidad: es proporcionada con soluciones certificadas que
incluyen replicacin de MySQL.

Escalabilidad: permite alcanzar el rendimiento sostenido y la escalabilidad


de cada vez mayor de usuarios, consulta, y las cargas de datos
MySQL Enterprise Security: Proporciona listas para utilizar los mdulos de
autenticacin externos para integrar fcilmente las infraestructuras existentes
de seguridad, incluyendo Pluggable Authentication Modules y el directorio
activo de Windows
MySQL Enterprise Monitor: supervisa continuamente su base de datos y de
forma proactiva le asesora sobre cmo implementar las mejores prcticas de
MySQL, incluyendo consejos y alertas de seguridad
MySQL Query Analyzer: Mejora el rendimiento de las aplicaciones mediante
el control de rendimiento de las consultas y precisa localizacin de cdigo SQL
que est causando una desaceleracin
MySQL Workbench: Cuenta con ofertas de modelado de datos, desarrollo
de SQL y herramientas de administracin integral para la administracin del
servidor de configuracin del usuario, y mucho ms.
El proceso de instalacin es muy simple y prcticamente no requiere
intervencin por parte del usuario.
Comienza el proceso; slo nos llevar un par de minutos

Cada vez que veo la pantalla de la GNU GPL me lleno de felicidad. No slo
por las condiciones y el precio: es adems, para m, una garanta de
profesionalidad.

Estadsticamente, la instalacin tpica ser la que mejor se adapte a tus


necesidades.

Todo listo; presiona Install cuando quieras.

Una vez instalado MySQL, la siguiente fase es la configuracin del servidor


en s mismo. Asegrate de que la marca Launch the MySQL Instance
Configuration Wizard est activa.

2.1.7 Procedimiento para Configuracin de un DBMS


Para configurar nuestro DBMS podemos acceder a las siguientes pantallas,
para Oracle o MySQL.
El esquema de una base de datos (en ingls, Database Schema) describe la
estructura de una Base de datos, en un lenguaje formal soportado por un
Sistema administrador de Base de datos (DBMS). En una Base de datos
Relacional, el Esquema define sus tablas, sus campos en cada tabla y las
relaciones entre cada campo y cada tabla.
Oracle generalmente asocia un 'username' como esquemas en este caso
SYSTEM y HR (Recursos humanos).
Por otro lado MySQL presenta dos esquemas information_schema y MySQL
ambos guardan informacin sobre privilegios y procedimientos del gestor y no
deben ser eliminados.
Adelante, sin miedo

Optamos por Detailed Configuration, de modo que se optimice la


configuracin del servidorMySQL.

Ha llegado un momento crucial. Dependiendo del uso que vayamos a darle a


nuestro servidor deberemos elegir una opcin u otra, cada una con sus propios
requerimientos de memoria. Puede que te guste la opcin Developer Machine,
para desarrolladores, la ms apta para un uso de propsito general y la que
menos recursos consume. Si vas a compartir servicios en esta mquina,
probablemente Server Machine sea tu eleccin o, si vas a dedicarla
exclusivamente como servidor SQL, puedes optar por Dedicated MySQL Server
Machine, pues no te importar asignar la totalidad de los recursos a esta
funcin.

De nuevo, para un uso de propsito general, te recomiendo la opcin por


defecto, Multifunctional Database.

InnoDB es el motor subyacente que dota de toda la potencia y seguridad


a MySQL. Su funcionamiento requiere de unas tablas e ndices cuya ubicacin
puedes configurar. Sin causas de fuerza mayor, acepta la opcin por defecto.

Esta pantalla nos permite optimizar el funcionamiento del servidor en


previsin del nmero de usos concurrentes. La opcin por defecto, Decision
Support (DSS) / OLAP ser probablemente la que ms te convenga.

Deja ambas opciones marcadas, tal como vienen por defecto. Es la ms


adecuada para un uso de propsito general o de aprendizaje, tanto si eres
desarrollador como no. Aceptar conexiones TCP te permitir conectarte al
servidor desde otras mquinas (o desde la misma simulando un acceso web
tpico).

Hora de decidir qu codificacin de caracteres emplears, salvo que quieras


empezar a trabajar con Unicode porque necesites soporte multilenguaje,
probablemente Latin1 te sirva (opcin por defecto).

Instalamos MySQL como un servicio de Windows (la opcin ms limpia) y lo


marcamos para que el motor de la base de datos arranque por defecto y est
siempre a nuestra disposicin. La alternativa es hacer esto manualmente.
Adems, me aseguro de marcar que los ejecutables estn en la
variable PATH, para poder invocar a MySQL desde cualquier lugar en la lnea
de comandos.

Pon una contrasea al usuario root. Esto siempre es lo ms seguro.


Si lo deseas, puedes indicar que el usuario root pueda acceder desde una
mquina diferente a esta, aunque debo advertirte de que eso tal vez no sea una
buena prctica de seguridad.

ltima etapa, listos para generar el fichero de configuracin y arrancar el


servicio.

Slo damos al botn de Finalizar y terminamos con la configuracin del


DBMS.

2.1.8 Comandos Generales de Alta y Baja del DBMS


Una tabla es un sistema de elementos de datos (atributo - valores) que se
organizan que usando un modelo vertical - columnas (que son identificados por
su nombre)- y horizontal filas. Una tabla tiene un nmero especfico de
columnas, pero puede tener cualquier nmero de filas. Cada fila es identificada
por los valores que aparecen en un subconjunto particular de la columna que se
ha identificado por una llave primaria.
Una tabla de una base de datos es similar en apariencia a una hoja de
clculo, en cuanto a que los datos se almacenan en filas y columnas. Como
consecuencia, normalmente es bastante fcil importar una hoja de clculo en
una tabla de una base de datos. La principal diferencia entre almacenar los
datos en una hoja de clculo y hacerlo en una base de datos es la forma de
organizarse los datos.
MySQL
MySQL soporta varios motores de almacenamiento que tratan con distintos
tipos de tabla. Los motores de almacenamiento de MySQL incluyen algunos
que tratan con tablas transaccionales y otros que no lo hacen:

MyISAM: trata tablas no transaccionales. Proporciona almacenamiento y


recuperacin de datos rpida, as como posibilidad de bsquedas fulltext.
MyISAM se soporta en todas las configuraciones MySQL, y es el motor de
almacenamiento por defecto a no ser que tenga una configuracin distinta a la
que viene por defecto con MySQL.
El motor de almacenamiento MEMORY proporciona tablas en memoria. El
motor de almacenamiento MERGE permite una coleccin de tablas MyISAM
idnticas ser tratadas como una simple tabla. Como MyISAM, los motores de
almacenamiento MEMORY y MERGE tratan tablas no transaccionales y ambos
se incluyen en MySQL por defecto.
Nota: El motor de almacenamiento MEMORY anteriormente se conoca
como HEAP.
Los motores de almacenamiento InnoDB y BDB proporcionan tablas
transaccionales. BDB se incluye en la distribucin binaria MySQL-Max en
aquellos sistemas operativos que la soportan. InnoDB tambin se incluye por
defecto en todas las distribuciones binarias de MySQL 5.0. En distribuciones
fuente, puede activar o desactivar estos motores de almacenamiento
configurando MySQL a su gusto.
El motor de almacenamiento EXAMPLE es un motor de almacenamiento
'tonto' que no hace nada. Puede crear tablas con este motor, pero no puede
almacenar datos ni recuperarlos. El objetivo es que sirva como ejemplo en el
cdigo MySQL para ilustrar cmo escribir un motor de almacenamiento. Como
tal, su inters primario es para desarrolladores.
NDB Cluster es el motor de almacenamiento usado por MySQL
Cluster para implementar tablas que se particionan en varias mquinas. Est
disponible en distribuciones binarias MySQL-Max 5.0. Este motor de
almacenamiento est disponible para Linux, Solaris, y Mac OS X. Los autores
mencionan que se aadir soporte para este motor de almacenamiento en
otras plataformas, incluyendo Windows en prximas versiones.
El motor de almacenamiento ARCHIVE se usa para guardar grandes
cantidades de datos sin ndices con una huella muy pequea.
El motor de almacenamiento CSV guarda datos en archivos de texto usando
formato de valores separados por comas.

El motor de almacenamiento FEDERATED se aadi en MySQL 5.0.3. Este


motor guarda datos en una base de datos remota. En esta versin slo
funciona con MySQL a travs de la API MySQL C Client. En futuras versiones,
ser capaz de conectar con otras fuentes de datos usando otros drivers o
mtodos de conexin clientes.
La versin 5 de MySQL crea por defecto tablas InnoDB que permiten el
manejo de integridad referencial, transacciones. Al igual que las tablas
regulares de Oracle. Para saber si el gestor de base de datos de MySQL que
tenemos las soporta es necesario ejecutar la siguiente sentencia.
SHOW VARIABLES like '%innodb%';
Comando Describe
MySQL proporciona este comando que resulta til para conocer la estructura
de una tabla, las columnas que la forman y su tipo y restricciones. La sintxis
es la siguiente:
DESCRIBE nombre Tabla.
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 creacin de la tabla.
Tablas Temporales
Las tablas temporales solo existen mientras la sesin est viva. Si se corre
este cdigo en un script de PHP (Cualquier otro lenguaje), la tabla temporal se
destruir automticamente al trmino de la ejecucin de la pgina. Si no
especfica MEMORY, la tabla se guardar por defecto en el disco.
CREATE TEMPORARY TABLE temporal (
ife INTEGER (13) PRIMARY KEY,
nombre CHAR (30) NOT NULL UNIQUE
);

Este tipo de tabla solo puede ser usada por el usuario que la crea.
Si creamos una tabla que tiene el mismo nombre que una existente en la
base de datos, la que existe quedar oculta y trabajaremos sobre la temporal.
Tablas Memory (Head)
Se almacenan en memoria
Una tabla head no puede tener ms de 1600 campos
Las tablas MEMORY usan una longitud de registro fija.
MEMORY no soporta columnas BLOB o TEXT.
MEMORY
en
MySQL
5.0
incluye
soporte
para
columnas
AUTO_INCREMENT e ndices en columnas que contengan valores NULL.
Las tablas MEMORY se comparten entre todos los clientes (como cualquier
otra tabla no-TEMPORARY).
CREATE TEMPORARY TABLE temporal (
ife INTEGER (13) PRIMARY KEY,
nombre CHAR (30) NOT NULL UNIQUE
) ENGINE = MEMORY;
Modificacin
Esta operacin se puede realizar con el comando ALTER TABLE. Para usar
ALTER TABLE, necesita permisos ALTER, INSERT y CREATE para la tabla. La
sintaxis para MySQL es
ALTER [IGNORE] TABLE tbl_name
alter_specification [, alter_specification] ...;
alter_specification:
ADD [COLUMN] column_definition [FIRST | AFTER col_name]

| ADD [COLUMN] (column_definition,)


| ADD INDEX [index_name] [index_type] (index_col_name,)
| ADD [CONSTRAINT [symbol]]
PRIMARY KEY [index_type] (index_col_name,)
| ADD [CONSTRAINT [symbol]]
UNIQUE [index_name] [index_type] (index_col_name,)
| ADD [FULLTEXT|SPATIAL] [index_name] (index_col_name,)
| ADD [CONSTRAINT [symbol]]
FOREIGN KEY [index_name] (index_col_name,)
[reference_definition]
| ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
| CHANGE [COLUMN] old_col_name column_definition
[FIRST|AFTER col_name]
| MODIFY [COLUMN] column_definition [FIRST | AFTER col_name]
| DROP [COLUMN] col_name
| DROP PRIMARY KEY
| DROP INDEX index_name
| DROP FOREIGN KEY fk_symbol
| DISABLE KEYS
| ENABLE KEYS
| RENAME [TO] new_tbl_name

| ORDER BY col_name
| CONVERT
collation_name]

TO

CHARACTER

SET

charset_name

[COLLATE

| [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name]


| DISCARD TABLESPACE
| IMPORT TABLESPACE
| table_options

Unidad 3: Configuracin y Administracin


del Espacio en Disco
3.1 Estructuras Lgicas de Almacenamiento
Para la gestin del almacenamiento de una base de datos existen 4
conceptos bien definidos que deben ser conocidos para poder comprender la
forma en la que se almacenan los datos. Vamos a ver la diferencia entre
bloque, extensin, segmento y espacio de tablas.
Bloques: Se tratan de la unidad ms pequea. Generalmente debe mltiple
del tamao de bloque del sistema operativo, ya que es la unidad mnima que va
a pedir Oracle al sistema operativo. Si no fuera mltiple del bloque del sistema

se aadira un trabajo extra ya que el sistema debera obtener ms datos de los


estrictamente necesarios. Se especifica mediante DB_BLOCK_SIZE
Extensiones: Se forma con uno o ms bloques. Cuando se aumenta tamao
de un objeto se usa una extensin para incrementar el espacio.
Segmentos: Grupo de extensiones que forman un objeto de la base de
datos, como por ejemplo una tabla o un ndice.
Espacio de Tablas: Formado por uno o ms datafiles, cada datafile solo
puede pertenecer a un determinado tablespace
En general, el almacenamiento de los objetos de la base de datos (tablas e
ndices fundamentalmente) no se realiza sobre el archivo o archivos fsicos de
la base de datos, sino que se hace a travs de estructuras lgicas de
almacenamiento que tienen por debajo a esos archivos fsicos, y que
independizan por tanto las sentencias de creacin de objetos de las estructuras
fsicas de almacenamiento. Esto es til porque permite que a esos "espacios de
objetos " les sean asociados nuevos dispositivos fsicos (es decir, ms espacio
en disco) de forma dinmica cuando la base de datos crece de tamao ms de
lo previsto. Posibilita adems otra serie de operaciones como las siguientes:
Asignar cuotas especficas de espacio a usuarios de la base de
datos.
Controlar la disponibilidad de los datos de la base de datos, poniendo
fuera de uso alguno de esos espacios de tablas individualmente.
Realizar copias de seguridad o recuperaciones parciales de la base
de datos.
Reservar espacio para almacenamiento
cooperativa entre distintos dispositivos.

de

datos

de

forma

El administrador de la base de datos puede crear o borrar nuevos espacios


lgicos de objetos, aadir o eliminar ficheros fsicos de soporte, utilizados como
espacio temporal de trabajo, definir parmetros de almacenamiento para
objetos destinados a ese espacio de datos, todos los gestores relacionales que
venimos introduciendo como ejemplos siguen esta filosofa. En el caso de
Oracle, sobre los ficheros fsicos de datos (datafiles) se definen los
tablespaces. Por lo tanto, una base de datos Oracle se compone lgicamente

de tablespaces, y fsicamente de datafiles. Su creacin es sencilla, con la


sentencia GREAT'', TABLESPACE: CREATE TABLESPACE usuarios DATAFILE
`datal.ora' SIZE 50M
Tambin es sencillo ampliar el espacio destinado a un tablespace utilizando
el comando ALTER TABLESPACE:
ALTER TABLESPACE usuarios ADD DATAFILE 'data2.ora' SIZE 25M
Para hacer ms grande una base de datos, las opciones disponibles son
tres:

Cada base de datos contiene un tablespace llamado SYSTEM que es creado


automticamente al crear la base de datos. Contiene las tablas del diccionario
de datos para la base de datos en cuestin. Es recomendable no cargar datos
de usuario en SYSTEM, para dejarlos como espacio de objetos del sistema.
Si adems los datos de usuario estn en tablespaces sitos en otros
dispositivos, el rendimiento mejorar porque las tablas del diccionario de datos
se acceden frecuentemente y por lo tanto son un cuello de botella potencial
desde el punto de vista del acceso a disco. A la hora de estimar el espacio
necesario para cl tablespace sys-nsm hay que tener en cuenta que las
unidades de programacin PL-SQL (entorno de programacin SQL

proporcionado por Oracle) almacenadas en la base de datos (procedimientos,


paquetes, disparos y funciones) almacenan sus datos en SYSTEM.
3.1.1 Definicin de Almacenamiento de Bases de Datos
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 mayora de las bases de datos se almacenan en las llamadas memorias
secundarias, especialmente discos duros, aunque, en principio, pueden
emplearse tambin 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 primaria.
La memoria secundaria suele ser ms barata que la memoria
primaria (aunque esta ltima tiene mayor velocidad).
La memoria secundaria es ms til para el almacenamiento de datos
permanente, puesto que la memoria primaria es voltil.
3.1.2.- Definicin y Creacin 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 fsicamente en el disco y, por lo
tanto, cmo se accede a stos.
Las distintas formas de organizaciones primarias de archivos son:
Archivos de Montculos (o no Ordenados): esta tcnica
coloca los registros en el disco sin un orden especfico, aadiendo nuevos
registros al final del archivo.
Archivos Ordenados (o Secuenciales): mantiene el orden de
los registros con respecto a algn valor de algn campo (clave de ordenacin).

Archivos de Direccionamiento Calculado: utilizan una funcin


de direccionamiento calculado aplicada a un campo especfico para determinar
la colocacin de los registros en disco.
rboles B: se vale de la estructura de rbol para las
colocaciones de registros.
Organizacin Secundaria o Estructura de Acceso
Auxiliar: Estas permiten que los accesos a los registros de un archivo basado
en campos alternativos, sean ms eficientes que los que han sido utilizados
para la organizacin 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 ms 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 clusula on,
el DBMS pone la base de datos en uno o ms de los dispositivos
predeterminados de base de datos especificados en master.sysdevices.
Para especificar un tamao (por ejemplo, 4MB) para una base de datos que
se va a almacenar en una ubicacin predeterminada, se utiliza: on default =
size de esta forma:
create database newpubs on default = 4
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.

escritura.

Valor Nuevo: El valor que tendr el dato despus de la

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.
La instruccin en MySQL para crear una bitcora en .txt se crea antes de
acceder a la base de datos con la instruccin:
"xampp>mysql>bin>mysql -hlocalhost -uroot --tee=C:bitacora.txt"
La bitcora debe registrar todos los movimientos (insertar, eliminar y
modificar) que se realicen en las tablas de la base de datos. Para lograr lo
anterior es necesario crear un trigger para que se ejecute despus de la
operacin de insertar, otro para despus de eliminar y el ltimo para despus
de modificar para cada una de las 3 tablas de la base de datos.
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%';

Se puede particionar una tabla de 5 maneras diferentes:

de valores.

Por Rango: para construir las particiones se especifican rangos

ALTER TABLE contratos


PARTITION BY RANGE (YEAR (fechaInicio)) (
PARTITION partDecada80 VALUES LESS THAN (1990),
PARTITION partDecada90 VALUES LESS THAN (2000),
PARTITION partDecada00 VALUES LESS THAN (2010),
PARTITION partDefault VALUES LESS THAN MAXVALUE
);
La ltima particin (partDefault) tendr todos los registros que no entren en
las particiones anteriores. De esta manera nos aseguramos que la informacin
nunca dejar de insertarse en la tabla.
Por Listas: para construir nuestras particiones especificamos
listas de valores concretos.
ALTER TABLE contratos
PARTITION BY LIST (YEAR (fechaInicio)) (
PARTITION partDecada80 VALUES IN (1980, 1981, 1982, 1983, 1984,
1985, 1986, 1987, 1988, 1989),
PARTITION partDecada90 VALUES IN (1990, 1991, 1992, 1993, 1994,
1995, 1996, 1997, 1998, 1999),
PARTITION partDecada00 VALUES IN (2000, 2001, 2002, 2003, 2004,
2005, 2006,
2007, 2008, 2009),
PARTITION partDecada10 VALUES IN (2010, 2011, 2012, 2013, 2014,

2015, 2016,
2017, 2018, 2019)
);
Por Hash: MySQL se encarga de distribuir las tuplas
automticamente usando una operacin de mdulo. Slo hay que pasarle una
columna o expresin que resulte en un entero (el hash) y el nmero de
particiones que queramos crear.
ALTER TABLE contratos
PARTITION BY HASH (YEAR (fechaInicio))
PARTITIONS 7;
Por Clave: similar a la particin por hash, pero en este caso no
necesitamos pasarle un entero; MySQL utilizar su propia funcin de hash para
generarlo. Si no se indica ninguna columna a partir de la que generar el hash,
se utiliza la clave primaria por defecto.
ALTER TABLE contratos
PARTITION BY KEY ()
PARTITIONS 7;
Compuesta: podemos combinar los distintos mtodos de
particionado y crear particiones de particiones
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);
En el caso que no tuviramos una particin del tipo pDefault simplemente
ejecutamos:
ALTER TABLE reports ADD PARTITION (PARTITION p201206 VALUES
LESS THAN (TO_DAYS ("2012-07-01")));
Consultar Particiones
Para consultar informacin de particiones creadas en una tabla as como
tambin los registros que contiene cada una ejecutamos:
SELECT
PARTITION_NAME,
TABLE_ROWS
information_schema.PARTITIONS WHERE TABLE_NAME='reports';

FROM

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 comnmente 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 tambin para mantener alejados a los

usuarios de las tablas que contienen los datos en tiempo real.


Cuando se recibe una base de datos, se averiguar cmo estn estructurados
los datos, revisar de manera general el panel de control. Puede ofrecer algn
indicio sobre las tareas que el diseador de la base de datos consider que
realizaran los usuarios habitualmente con los datos.
3.1.6.- Espacios para Objetos
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 planificacin para el
almacenamiento real de la base de 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 son
almacenados por ms tiempo.
Algunos DBMS permiten al tamao de los archivos temporales de expandirse
y contraerse de forma automtica. Dependiendo del tipo y la naturaleza de las
operaciones de base de datos en proceso, esta fluctuacin puede provocar
picos de uso del disco.
Hay muchos problemas de almacenamiento que deben ser resueltos antes
de que un DBA pueda crear una base de datos. Uno de los temas ms
importantes es la cantidad de espacio para permitir la base de datos.
El clculo espacial debe tener en cuenta no slo tablas, ndices, sino
tambin, 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

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.
Cada segmento tiene un conjunto de parmetros de almacenamiento que
controla su crecimiento:
initial: tamao de la extensin inicial (10k).
next: tamao de la siguiente extensin a asignar (10k).
minextents: nmero de extensiones asignadas en el momento de la
creacin del segmento (1).
maxextents: nmero mximo de extensiones (99).
pctincrease: Porcentaje en el que crecer la siguiente extensin antes de
que se asigne, en relacin con la ltima extensin utilizada (50).
pctfree: porcentaje de espacio libre para actualizaciones de filas que se
reserva dentro de cada bloque asignado al segmento (10).
pctused: porcentaje de utilizacin del bloque por debajo del cual Oracle
considera que un bloque puede ser utilizado para insertar filas nuevas en l.
tablespace: nombre del espacio de tablas donde se crear el segmento.
Cuando se disea una BD se ha de tener mucho cuidado a la hora de
dimensionar la BD y prever el crecimiento de las tablas. A continuacin se
hacen algunas consideraciones sobre la gestin del espacio para los diferentes
segmentos.
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.
3.3 Definicin de Memoria Compartida
Un servidor Oracle es un sistema que permite administrar bases de datos y
que ofrece un medio de gestin de informacin abierto, completo e integrado.
Un servidor Oracle est constituido de una instancia y una base de datos.
Instancia de Oracle
Una instancia de Oracle permite acceder a la base de datos Oracle y permite
abrir nicamente una sola base de datos.
La instancia de Oracle est compuesta de:
Procesos en segundo plano que administran y aplican las relaciones entre
las estructuras fsicas y las estructuras de memoria. Existen dos categoras:
Procesos en Segundo Plano Obligatorios: DBWN, PMON, CKPT,
LGWR, SMON

Procesos en Segundo Plano Facultativos: ARCn, LMDn, RECO,

CJQ0, LMON, Snnn, Dnnn, Pnnn, LCKn, QMNn


Estructuras de Memoria: compuestas bsicamente de dos reas de
memoria: el rea de memoria asignada a la SGA (System Global Area):
asignada al inicio de la instancia y representa un componente fundamental de
una instancia de Oracle.
Est compuesta de varias reas de memoria:
rea de memoria compartida
Buffer cach de la base de datos
Log buffer
As como otras estructuras para la gestin de bloqueos externos (lock),
internos (match), datos estadsticos, etc.
Eventualmente tambin es posible configurar al nivel de la SGA
rea de memoria LARGE POOL
rea de memoria Java
rea de Memoria Asignada a la PGA (Program Global Area): sta es
asignada al inicio del proceso de servidor. Es reservada a cada proceso de
usuario que se conecte a la base de datos Oracle y liberada al final del proceso.
El Proceso de Usuario: Es el programa que solicita una interaccin con la
base de datos iniciando una conexin. Se comunica nicamente con el proceso
de servidor correspondiente.
El Proceso de Servidor
Representa el programa que entra directamente en interaccin con el
servidor Oracle. Responde a todas las peticiones y enva los resultados. Puede
estar dedicado a un servidor cliente o compartido por varios.
3.4 Definicin de Mltiples Instancias de un DBMS
Cuando comenzamos a trabajar con Oracle una de las primeras cosas que
aprendemos es a diferenciar entre estos conceptos: base de datos, instancia e

instancia de base de datos.


Una instancia es el conjunto de procesos que se ejecutan en el servidor as
como la memoria que comparten para ello.
Cuando se habla de base de datos, nos referimos a los archivos fsicos que
componen nuestra base de datos.
Si queremos referirnos a los procesos que se ejecutan en memoria como a
los archivos de base de datos tendremos que utilizar el trmino instancia de
base de datos.
La instancia en Oracle describe varios procesos residentes en la memoria
del computador(es) y un rea de memoria compartida por aquellos procesos.
En arquitecturas de bases de datos tales como, Microsoft SQL Server e IBM
BD2, la palabra instancia indica una coleccin de bases de datos que
comparten recursos de memoria en comn, o sea, la relacin entre instancia y
bases de datos es 1 a N. Pero la relacin entre la instancia de Oracle y la base
de datos es 1 a 1 o n a 1. Cuando hay una relacin N a 1, la configuracin es
llamada RAC (Real Application CLuster), donde la base de datos reside en
discos compartidos y las instancias en mltiples computadores anexados a la
base de datos.
La instancia de Oracle es el motor que procesa los requerimientos de datos
desde la base de datos. Est compuesta por procesos en primer plano, en
segundo plano y un rea de memoria compartida (SGA).

Una instancia de Oracle es un conjunto de estructuras de memoria que estn


asociadas con los archivos de datos (datafiles) en una mquina. Una base de
datos es una coleccin de archivos fsicos.
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).
DBA_SEGMENTS (Segmentos que hay en los tablespaces).
DBA_EXTENTS (Extensiones que componen los segmentos).
DBA_USERS (Usuarios de la BD).
Oracle RAC(Real Application CLuster).
En un Rac de Oracle, mltiples instancias permiten el acceso a una nica
Base de datos. En un RAC las instancias corren en mltiples Nodos
(servidores), y acceden a un conjunto comn de datafiles que comprender a
una 'nica' Base de datos."
En contraste, en un ambiente de una nica instancia, una base de datos
Oracle es usada por slo UNA Instancia corriendo en el servidor. Por lo Tanto,
los usuarios accediendo a la base de datos pueden conectarse a sta, slo a
travs de ese 'nico' servidor.

En un Oracle RAC, una base de datos puede ser montada por ms de una
instancia, y en cualquier punto, una instancia ser parte de slo una Base de
datos. El almacn no voltil para archivos de datos que comprende la Base de
datos es igualmente disponible a todos los nodos, para el acceso de lectura y
escritura. De lo anterior se desprende que un RAC de Oracle necesita coordinar
y regular el acceso simultaneo a los datos desde mltiples servidores (nodos),
por ende, debe existir una red privada que sea eficiente, confiable y de alta
rapidez, entre los nodos del clster para enviar y recibir datos
Crear Instancias MySQL
Tener dos instancias o ms tiene entre otras las siguientes justificaciones.
Una se dedicar a desarrollo, para hacer las modificaciones y pruebas
necesarias y otra al de produccin.
Proceso
Copiar la carpeta data que se encuentra en nuestro caso en c:\MySQL, como
data2

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.
Iniciamos configurando el puerto por donde escuchara MySQL la segunda
instancia y la ruta de datos el archivo de datos.

Iniciar Instancia desde Consola


Desde la consola de ms-dos en modo administrador. [Tecla Win] + [X] y
damos clic en Smbolo de Sistema (Administrador). Ahora introduzca desde la
lnea de comandos:
cd /MySQL/MySQL Server 5.6/bin
mysqld --defaults-file=my2.ini --explicit_defaults_for_timestamp = TRUE
mysql -u root -port 3307 -p

Establecer la Instancia como Servicio


Procederemos a instalar la nueva instancia como servicio. Desde la consola
de ms-dos en modo administrador. En windows 8 pulse la [Tecla Win] + [X] y
damos clic en Smbolo de Sistema (Administrador):

Unidad 4: Operacin y Mantenibilidad


4.1 Bitcoras de Trabajo del DBMS
Una bitcora (log) es una herramienta (archivos o registros) que permite
registrar, analizar, detectar y notificar eventos que sucedan en cualquier
sistema de informacin utilizado en las organizaciones.
La estructura ms ampliamente usada para grabar las acciones que se
llevan en la base de datos.
Nos ayuda a recuperar la informacin ante algunos incidentes de seguridad,
deteccin de comportamiento inusual, informacin para resolver problemas,
evidencia legal, es de gran ayuda en las tareas de computo forense.
Permite guardar las transacciones realizadas sobre una base de datos en
especfico, de tal manera que estas transacciones puedan ser auditadas y
analizadas posteriormente.
Pueden obtenerse datos especficos de la transaccin como:
1. Operacin que se realiz
2. Usuario de BD
3. Fecha
4. Mquina
5. Programa
6. Tipo de conexin
7. Estado
No se requiere hacer cambios en los sistemas de produccin o de desarrollo
o en una simple instalacin para la implementacin de la bitcora.
A travs de la parametrizacin se generan las pantallas de consulta y
reportes sin necesidad de programar.

Acceso a la bitcora a travs de una aplicacin Web.


Control de Acceso a la informacin de la bitcora a travs de Roles.
Se puede implementar en los sistemas de informacin que utilicen las
principales bases de datos: Oracle, SQL Server, Informix, Sybase.
Permite hacer el seguimiento de todos los cambios que ha tenido un registro.
4.1.1 Funciones Especficas 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 Transaccin

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, los ROLLBACK 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.
4.1.3 Permanencia (Commit)
En el contexto de la Ciencia de la computacin y la gestin de
datos, commit (accin de comprometer) se refiere a la idea de consignar un
conjunto de cambios "tentativos, o no permanentes". Un uso popular es al final
de una transaccin de base de datos.
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)
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 bsqueda y de actualizacin. En el
caso de la estructura archivos, entenderemos como actualizacin, adems de
las operaciones, vistas para vectores y listas enlazadas, de introducir nuevos
datos (altas) o de eliminar alguno existente (bajas), la modificacin de datos ya
existentes, (operacin muy comn con datos almacenados). En esencia, es la
puesta al da de los datos del archivo.
Una operacin de alta en un archivo consiste en la adicin de un nuevo
registro. En un archivo de empleados, un alta consistir en introducir los datos
de un nuevo empleado. Para situar correctamente un alta, se deber conocer la
posicin donde se desea almacenar el registro correspondiente: al principio, en
el interior o al final de un archivo.
El algoritmo de ALTAS debe contemplar la comprobacin de que el registro a
dar de alta no existe previamente. Una baja es la accin de eliminar un registro
de un archivo. La baja de un registro puede ser lgica o fsica. Una baja lgica
supone el no borrado del registro en el archivo. Esta baja lgica se manifiesta
en un determinado campo del registro con una bandera, indicador o flag
-carcter *. $, etc.,-, o bien con la escritura o rellenado de espacios en blanco
en el registro dado de baja
Altas
La operacin de dar de alta un determinado registro es similar a la de aadir
datos a un archivo. Es importante remarcar que en un archivo secuencial slo
permite aadir datos al final del mismo.
En otro caso, si se quiere insertar un registro en medio de los ya presentes

en el archivo, sera necesaria la creacin nueva del archivo.


El algoritmo para dar de alta un registro al final del fichero es como sigue:
algoritmo altas
leer registro de alta
inicio
abrir archivo para aadir
mientras haya ms registros hacer {algunos lenguajes ahorran este bucle}
leer datos del registro
fin_mientras
escribir (grabar) registro de alta en el archivo
cerrar archivo
fin
Bajas
Existen dos mtodos para dar de baja a un registro en un archivo secuencial,
donde no es fcil eliminar un registro situado en el interior de una secuencia:
Para ello podemos seguir dos mtodos:
1) Utilizar y por tanto crear un segundo archivo auxiliar transitorio, tambin
secuencial, copia del que se trata de actualizar. Se lee el archivo completo
registro a registro y en funcin 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 tendrn 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.
2) Guardar o sealar 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 fsicamente, 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
grabarn.
Propsito de Backup y Recuperacin
Como administrador de copia de seguridad, la tarea principal es disear,

implementar y gestionar una estrategia de backup y recuperacin. En general,


el propsito de una estrategia de recuperacin de copia de seguridad y es para
proteger la base de datos contra la prdida de datos y reconstruir la base de
datos despus de la prdida de datos. Normalmente, las tareas de
administracin de seguridad son las siguientes:

Planificacin y probar las respuestas a diferentes tipos de fallas.

Configuracin del entorno de base de datos de copia de seguridad y


recuperacin.

La creacin de un programa de copia de seguridad

Seguimiento de la copia de seguridad y entorno de recuperacin

Solucin de problemas de copia de seguridad

Para recuperarse de la prdida de datos en caso de necesidad

Como administrador de copia de seguridad, es posible que se le pida que


realice otros deberes que se relacionan con copia de seguridad y recuperacin:
La preservacin de datos, lo que implica la creacin de una copia de
base de datos para el almacenamiento a largo plazo
La transferencia de datos, lo que implica el movimiento de datos de
una base de datos o un host a otro.
De Proteccin de Datos
Como administrador de copia de seguridad, su trabajo principal es hacer
copias de seguridad y vigilancia para la proteccin de datos. Una copia de
seguridad es una copia de los datos de una base de datos que se puede utilizar
para reconstruir los datos. Una copia de seguridad puede ser una copia de
seguridad fsica o una copia de seguridad lgica.
Copias de seguridad fsicas son copias de los archivos fsicos utilizados en el
almacenamiento y la recuperacin de una base de datos. Estos archivos
incluyen archivos de datos, archivos de control y los registros de rehacer
archivados. En ltima instancia, cada copia de seguridad fsica es una copia de
los archivos que almacenan informacin de base de datos a otra ubicacin, ya
sea en un disco o en medios de almacenamiento fuera de lnea, tales como

cinta.
Copias de seguridad lgicas contienen datos lgicos, como tablas y
procedimientos almacenados. Puede utilizar Oracle Data Pump para exportar
los datos a archivos lgicos binarios, que posteriormente puede importar a la
base de datos. Clientes de lnea de comandos La bomba datos expdp y impdp
utilizan el DBMS_DATAPUMP y DBMS_METADATA PL / SQL paquetes.
Copias de seguridad fsicas son la base de cualquier estrategia de
recuperacin de copia de seguridad slida y. Copias de seguridad lgicas son
un complemento til de las copias de seguridad fsicas en muchas
circunstancias, pero no son suficiente proteccin contra la prdida de datos y
sin
respaldos
fsicos.
A menos que se especifique lo contrario, la copia de seguridad trmino tal como
se utiliza en la copia de seguridad y la documentacin de recuperacin se
refiere a una copia de seguridad fsica. Copia de seguridad de una base de
datos es el acto de hacer una copia de seguridad fsica. El enfoque en la copia
de seguridad y recuperacin de documentacin est casi exclusivamente en
copias de seguridad fsicas.
Mientras que varios problemas pueden detener el funcionamiento normal de
una base de datos Oracle o afectar a las operaciones de base de datos de E /
S, solamente la siguiente normalmente requiere la intervencin del DBA y de
recuperacin de datos: un error de medios, errores de usuario, y los errores de
aplicacin. Otros fallos pueden requerir intervencin DBA sin causar la prdida
de datos o que requieren la recuperacin de copia de seguridad. Por ejemplo,
es posible que tenga que reiniciar la base de datos tras un fallo de instancia o
asignar ms espacio de disco despus de un fallo debido a la declaracin de un
archivo de datos completo.
Las Fallas de Medios
La falta de medios es un problema fsico con un disco que provoca un fallo
de una leer o escribir en un archivo de disco que se requiere para ejecutar la
base de datos. Cualquier archivo de base de datos puede ser vulnerable a un
fallo de comunicacin. La tcnica de recuperacin adecuada despus de un
fallo de los medios de comunicacin depende de los archivos afectados y el tipo
de
copia
de
seguridad
disponible.
Un aspecto particularmente importante de la copia de seguridad y recuperacin
se est desarrollando una estrategia de recuperacin ante desastres para
proteger contra la prdida de datos catastrfica, por ejemplo, la prdida de toda
una serie de bases de datos.

Errores de los Usuarios


Los errores del usuario cuando se producen, ya sea debido a un error en la
lgica de la aplicacin o un error manual, los datos en una base de datos se
modifican o eliminan incorrectamente. Errores de usuario se estima que la
mayor causa de inactividad de base de datos.
La prdida de datos debido a un error del usuario puede ser localizada o
generalizada. Un ejemplo de dao localizado est eliminando a la persona
equivocada en la tabla empleados. Este tipo de lesiones requiere la deteccin y
la reparacin quirrgica. Un ejemplo de un dao generalizado es un trabajo por
lotes que borra las rdenes de la empresa para el mes en curso. En este caso,
se requiere una accin drstica para evitar una extensa base de datos de
tiempo de inactividad.
Mientras que la formacin de usuarios y el manejo cuidadoso de los
privilegios pueden prevenir la mayora de los errores de usuario, su estrategia
de copia de seguridad determina la gracia de recuperar los datos perdidos
cuando un error del usuario que hace perder los datos.
Errores de Aplicacin
A veces, un mal funcionamiento de software puede daar los bloques de
datos. En una corrupcin fsica, que tambin se conoce como la corrupcin los
medios de comunicacin, la base de datos no reconoce el bloque en absoluto:
la suma de comprobacin no es vlida, el bloque contiene todos los ceros, o el
encabezado y el pie de pgina del bloque no coinciden. Si el dao no es muy
amplio, puede a menudo repara fcilmente con bloque de recuperacin de
medios.
Preservacin de Datos
Conservacin de datos se relaciona con la proteccin de datos, pero tiene un
propsito diferente. Por ejemplo, puede que tenga que conservar una copia de
una base de datos tal como exista al final de la cuarta parte del negocio. Esta
copia de seguridad no es parte de la estrategia de recuperacin de desastres.
Los medios a los que estas copias de seguridad se escriben a menudo
disponible despus de la copia de seguridad. Usted puede enviar la cinta en
almacenamiento incendio o enviar un disco duro porttil a un centro de
pruebas. RMAN proporciona una manera conveniente para crear una copia de
seguridad y eximirla de su poltica de retencin de copia de seguridad. Este tipo
de copia de seguridad se conoce como una copia de seguridad de archivo.

Transferencia de Datos
En algunas situaciones, es posible que tenga que tomar una copia de
seguridad de una base de datos o base de datos de componentes y moverlo a
otra ubicacin. Por ejemplo, puede utilizar el Administrador de recuperacin
(RMAN) para crear una copia de base de datos, cree una copia de tabla que se
puede importar en otra base de datos, o mover una base de datos completa de
una plataforma a otra. Estas tareas no son, estrictamente hablando, parte de
una estrategia de backup y recuperacin, pero requieren el uso de copias de
seguridad de bases de datos, por lo que pueden incluirse en las tareas de un
administrador de copia de seguridad.
Oracle Backup y Recuperacin de Soluciones
Al implementar una estrategia de backup y recuperacin, dispone de las
siguientes soluciones disponibles:

Administrador de Recuperacin (RMAN)

Recovery Manager est completamente integrado con la base de datos


Oracle para llevar a cabo una serie de actividades de copia de seguridad y
recuperacin, incluyendo el mantenimiento de un repositorio de RMAN de datos
histricos acerca de las copias de seguridad. Se puede acceder a RMAN travs
de la lnea de comandos oa travs de Oracle Enterprise Manager.

Copia de Seguridad y Recuperacin Gestionadas por el Usuario

En esta solucin, realizar copias de seguridad y recuperacin con una


mezcla de comandos del sistema operativo host y SQL * Plus.
Recuperacin de Comandos
Ustedes son responsables de determinar todos los aspectos de cundo y
cmo las copias de seguridad y la recuperacin se hacen.
Estas soluciones estn respaldadas por Oracle y se documentan, pero
RMAN es la mejor solucin para copia de seguridad y recuperacin de bases
de datos. RMAN proporciona una interfaz comn para las tareas de copia de
seguridad a travs de diferentes sistemas operativos host, y ofrece varias
tcnicas de copia de seguridad que no estn disponibles a travs de mtodos
administrados por usuarios.
La mayor parte de este manual se centra en la copia de seguridad y

recuperacin de RMAN basado. Tcnicas de copia de seguridad y recuperacin


gestionadas por el usuario se tratan en Realizacin de usuario-Managed
Backup and Recovery. Las ms destacables son los siguientes:

Copias de Seguridades Incrementales

Una copia de seguridad incremental almacena slo los bloques modificados


desde la ltima copia de seguridad. Por lo tanto, proporcionan copias de
seguridad ms compacta y una recuperacin ms rpida, lo que reduce la
necesidad de aplicar de rehacer en archivo de datos de recuperacin de los
medios de comunicacin. Si se habilita el seguimiento de cambios de bloque,
entonces usted puede mejorar el rendimiento al evitar escaneos completos de
todos los archivos de datos de entrada. Utilice el comando Copia de seguridad
incremental para realizar copias de seguridad incrementales.

Bloquear los Medios de Recuperacin

Usted puede reparar un archivo de datos con slo un pequeo nmero de


bloques de datos corruptos sin tomarlo fuera de lnea o la restauracin desde
copia de seguridad. Utilice el comando BLOQUE RECOVER para realizar la
recuperacin del bloque de comunicacin.

Compresin Binaria

Un mecanismo de compresin binaria integrado en base de datos Oracle


reduce el tamao de las copias de seguridad.

Copias de Seguridad Encriptadas

RMAN utiliza las capacidades de cifrado de copia de seguridad integrados en


bases de datos Oracle para almacenar conjuntos de copia de seguridad en un
formato codificado. Para crear copias de seguridad cifradas en el disco, la base
de datos debe utilizar la opcin de seguridad avanzada. Para crear copias de
seguridad encriptadas directamente en cinta, RMAN debe utilizar la copia de
seguridad de Oracle Secure interfaz SBT, pero no requiere la opcin de
seguridad avanzada.

Duplicacin de la Base de Datos Automatizada

Crea fcilmente una copia de su base de datos, el apoyo a diversas


configuraciones de almacenamiento, incluida la duplicacin directa entre las
bases de datos de ASM.

Conversin de Datos entre Plataformas

Ya sea que utilice RMAN o mtodos administrados por usuarios, puede


complementar las copias de seguridad fsicas con copias de seguridad lgicas
de objetos de esquema realizados con la utilidad Export Data Pump. Ms tarde,
puede utilizar Data Pump Import para volver a crear los datos despus de la
restauracin y la recuperacin. Copias de seguridad lgicas son en su mayora
ms all del alcance de la copia de seguridad y de recuperacin de
documentacin.
4.3 Comandos de Activacin para 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 de
derechos Service Management.
Comando STARTUP
Para el arranque de una base de datos hay tres fases de arranque, para
realizar estas fases podemos utilizar startup 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:
startup mount;
alter database mount;
Fase de 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:
startup open;
alter database open;
Si es necesario utilizar resetlogs:
startup open resetlogs;
alter database open resetlogs;
startup restrict (slo permite la conexin de usuarios con el privilegio
restricted sesion).
startup force (hace shutdown abort y arranca la BD).
Comando SHUTDOWN
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 de
parada 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 hara
roolback 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
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 creacin de la tabla.
Modificacin
Para realizar una modificacin utilizamos el comando ALTER TABLE. Para
usar ALTER TABLE, necesita permisos ALTER, INSERT y CREATE para la
tabla.
4.4.- Manejo de ndices
El ndice de una base de datos es una estructura alternativa 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. En pocas palabras, se
mejoran las operaciones gracias a un aumento de la velocidad, permitiendo un
rpido acceso a los registros de una tabla en una base de datos. Al aumentar
drsticamente la velocidad de acceso, se suelen usar sobre aquellos campos
sobre los cules se hacen bsquedas frecuentes.
4.4.1 Tipos de ndices
Resumen de ndices
Un ndice es una estructura opcional, asociado con una mesa o tabla de
clster, que a veces puede acelerar el acceso de datos. Mediante la creacin
de un ndice en una o varias columnas de una tabla, se obtiene la capacidad en
algunos casos, para recuperar un pequeo conjunto de filas distribuidas al azar
de la tabla. Los ndices son una de las muchas formas de reducir el disco I / O.
Si una tabla de montn organizado no tiene ndices, entonces la base de
datos debe realizar un escaneo completo de tabla para encontrar un valor. Por

ejemplo, sin un ndice, una consulta de ubicacin 2700 en la tabla


hr.departments requiere la base de datos para buscar todas las filas de cada
bloque de la tabla para este valor. Este enfoque no escala bien como datos de
aumento de volmenes.
Por analoga, supongamos que un gerente de Recursos Humanos tiene un
estante de cajas de cartn. Las carpetas que contienen informacin de los
empleados se insertan aleatoriamente en las cajas. La carpeta de empleado
Whalen (ID 200) es de 10 carpetas desde el fondo de la caja 1, mientras que la
carpeta para el rey (ID 100) se encuentra en la parte inferior del cuadro 3. Para
localizar una carpeta, el gestor busca en cada carpeta en la casilla 1 de abajo
hacia arriba, y luego se mueve de una casilla a otra hasta que se encuentra la
carpeta. Para acelerar el acceso, el administrador puede crear un ndice que
enumera de forma secuencial todos los ID de empleado con su ubicacin de la
carpeta:
ID 100: Box 3, position 1 (bottom)
ID 101: Box 7, position 8
ID 200: Box 1, position 10
Del mismo modo, el administrador podra crear ndices separados para los
ltimos nombres de los empleados, los ID de departamento, y as
sucesivamente.
En general, considerar la creacin de un ndice en una columna en cualquiera
de las siguientes situaciones:
Las columnas indizadas se consultan con frecuencia y devuelven un
pequeo porcentaje del nmero total de filas en la tabla.
Existe una restriccin de integridad referencial en la columna o
columnas indexadas. El ndice es un medio para evitar un bloqueo de
tabla completa que de otro modo se requerira si se actualiza la clave
principal de la tabla principal, se funden en la tabla principal, o eliminar de
la tabla primaria.
Una restriccin de clave nica se coloca sobre la mesa y desea
especificar manualmente el ndice de todas las opciones sobre ndices y.
Caractersticas de Indexacin

Los ndices son objetos de esquema que son lgica y fsicamente


independiente de los datos de los objetos con los que estn asociados. Por lo
tanto, un ndice se puede quitar o creado sin afectar fsicamente a la tabla para
el ndice.
Nota: Si se le cae un ndice, las aplicaciones siguen funcionando. Sin
embargo, el acceso de los datos previamente indexado puede ser ms lento.
La ausencia o presencia de un ndice no requiere un cambio en el texto de
cualquier sentencia SQL. Un ndice es una ruta de acceso rpido a una sola fila
de datos. Slo afecta a la velocidad de ejecucin. Dado un valor de datos que
se ha indexado, el ndice apunta directamente a la ubicacin de las filas que
contienen ese valor.
La base de datos mantiene automticamente y utiliza los ndices despus de
su creacin. La base de datos tambin refleja automticamente los cambios en
los datos, como agregar, actualizar y eliminar filas, en todos los ndices
pertinentes sin acciones adicionales requeridas por los usuarios. Rendimiento
de recuperacin de datos indexados permanece casi constante, incluso cuando
se insertan filas. Sin embargo, la presencia de muchos ndices en una tabla
degrada el rendimiento DML porque la base de datos tambin debe actualizar
los ndices.
Los ndices tienen las siguientes propiedades:

Facilidad de Uso

Los ndices son utilizables (por defecto) o inutilizable. Un ndice inutilizables


no se mantiene por las operaciones DML y es ignorado por el optimizador. Un
ndice inutilizable puede mejorar el rendimiento de las cargas a granel. En lugar
de dejar un ndice y luego volverlo a crear, puede hacer que el ndice inservible
y luego reconstruirlo. ndices inutilizables y las particiones de ndice no
consumen espacio. Cuando usted hace un ndice utilizable no utilizable, la base
de datos cae su segmento de ndice.

Visibilidad

Los ndices son visibles (por defecto) o invisible. Un ndice invisible se


mantiene por las operaciones DML y no se utiliza de forma predeterminada por
el optimizador. Cmo hacer una invisible ndice es una alternativa a lo que es
inutilizable o se caiga. ndices invisibles son especialmente tiles para probar la
eliminacin de un ndice antes de dejarlo caer o mediante ndices

temporalmente sin afectar a la aplicacin general.


Gua del Administrador para Aprender a Manejar los ndices
Base de datos Oracle Performance Tuning Guide para aprender
cmo ajustar los ndices
Teclas y Columnas
Una clave es un conjunto de columnas o expresiones en las que se puede
construir un ndice. Aunque los trminos se usan indistintamente, los ndices y
las claves son diferentes. Los ndices son estructuras almacenados en la base
de datos que los usuarios a administrar el uso de sentencias de SQL. Las
claves son estrictamente un concepto lgico.
La siguiente sentencia crea un ndice en la columna customer_id de la
muestra oe.orders tabla:
CREATE INDEX ord_customer_ix ON orders (customer_id);
En la declaracin anterior, la columna customer_id es la clave de ndice. El
ndice en s se llama ord_customer_ix.
ndices Compuestos
Un ndice compuesto, tambin llamado ndice concatenado, es un ndice de
varias columnas de una tabla. Las columnas de un ndice compuesto que
deben aparecer en el orden que tenga ms sentido para las consultas que
recuperar datos y no necesita ser adyacente en la tabla.
Los ndices compuestos pueden acelerar la recuperacin de datos para las
instrucciones SELECT en la que el DONDE referencias clusula totalidad o la
parte principal de las columnas en el ndice compuesto. Por lo tanto, el orden
de las columnas utilizadas en la definicin es importante. En general, las
columnas de acceso ms comn van primero.
Por ejemplo, supongamos que una aplicacin realiza consultas frecuentes a
apellidos, job_id, y columnas de salario en la tabla empleados. Tambin asumir
que last_name tiene alta cardinalidad, lo que significa que el nmero de valores
distintos que es grande en comparacin con el nmero de filas de la tabla. Se
crea un ndice con el siguiente orden de las columnas:
CREATE INDEX employees_ix

ON employees (last_name, job_id, salary);


Las consultas que acceden a las tres columnas, slo la columna last_name,
o slo el last_name y columnas job_id utilizan este ndice. En este ejemplo, las
consultas que no tienen acceso a la columna last_name no utilizan el ndice.
Nota: En algunos casos, tales como cuando la columna principal tiene muy
baja cardinalidad, la base de datos puede utilizar una bsqueda selectiva de
este ndice.
Mltiples ndices pueden existir para la misma mesa, siempre y cuando la
permutacin de columnas difiere para cada ndice. Puede crear varios ndices
que utilizan las mismas columnas si se especifica claramente diferentes
permutaciones de las columnas. Por ejemplo, las siguientes sentencias SQL
especifican permutaciones vlidas:
CREATE INDEX employee_idx1 ON employees (last_name, job_id);
CREATE INDEX employee_idx2 ON employees (job_id, last_name);
ndices nicos y no nicos
Los ndices pueden ser nicos o no nicos. ndices nicos garantizar que no
hay dos filas de una tabla tienen valores duplicados en la columna de clave o
columna. Por ejemplo, dos empleados no pueden tener el mismo ID de
empleado. Por lo tanto, en un ndice nico, existe una ROWID para cada valor
de datos. Los datos de los bloques de hojas se ordenan slo por clave.
ndices no nicas permiten valores duplicados en la columna o columnas
indexadas. Por ejemplo, la columna 'nombre de la tabla de empleados puede
contener varios valores Mike. Para un ndice no nico, el ROWID se incluye en
la clave de forma ordenada, por lo que los ndices no nicos se ordenan por la
clave de ndice y ROWID (ascendente).
Oracle Database no filas de la tabla de ndice en el que todas las columnas
clave son nulas, a excepcin de los ndices de mapa de bits o cuando el valor
de la columna clave de clster es nulo.
Tipos de ndices
Base de Datos Oracle ofrece varias combinaciones de indexacin, que
proporcionan una funcionalidad complementaria sobre el rendimiento. Los
ndices se pueden clasificar de la siguiente manera:

Los ndices de rbol B

Estos ndices son el tipo de ndice estndar. Son excelentes para la clave
principal y los ndices altamente selectivos. Utilizado como ndices
concatenados, B-tree ndice pueden recuperar los datos ordenados por las
columnas de ndice. ndices B-tree tienen los siguientes subtipos:

ndice de Tablas Organizadas

Una tabla de ndice-organizada difiere de un montn-organizado porque los


datos es en s mismo el ndice.
En este tipo de ndice, los bytes de la clave de ndice se invierten, por
ejemplo, 103 se almacena como 301. La inversin de bytes extiende inserta en
el ndice durante muchos bloques.

ndices Descendentes

Este tipo de ndice almacena los datos en una columna o columnas de


concreto en orden descendente.

ndices B-Tree de Racimo

Este tipo de ndice se utiliza para indexar una clave de clster tabla. En lugar
de apuntar a una fila, los puntos clave para el bloque que contiene filas
relacionadas con la clave de clster.

Mapa de Bits y los ndices Bitmap Join

En un ndice de mapa de bits, una entrada de ndice utiliza un mapa de bits


para que apunte a varias filas. En cambio, los puntos de entrada de un ndice
B-tree en una sola fila. Un ndice de combinacin de mapa de bits es un ndice
de mapa de bits para la unin de dos o ms tablas. Consulte "Indicadores de
mapa de bits".

ndices Basados en Funciones

Este tipo de ndice incluye columnas que, o bien se transforman por una
funcin, tales como la funcin UPPER, o incluidos en una expresin. ndices Btree o mapa de bits puede ser basado en las funciones.

ndices de Dominio de Aplicacin

Este tipo de ndice se crea por un usuario para los datos en un dominio
especfico de la aplicacin. El ndice fsico no tiene que utilizar una estructura
de ndice tradicional y se puede almacenar ya sea en la base de datos Oracle
como tablas o externamente como un archivo. Consulte "Indicadores de
dominio de aplicacin".

ndices B-Tree

rboles B, abreviatura de rboles balanceados, son el tipo ms comn de


ndice de base de datos. Un ndice B-tree es una lista ordenada de valores
dividida en rangos. Mediante la asociacin de una tecla con una fila o rango de
filas, los rboles B proporcionan un excelente rendimiento de la recuperacin
para una amplia gama de consultas, incluyendo coincidencia exacta y
bsquedas
por
rango.
La figura 3-1 ilustra la estructura de un ndice B-tree. El ejemplo muestra un
ndice en la columna department_id, que es una columna de clave externa en la
tabla empleados.
4.4.2 Reorganizacin de ndices.
Un factor clave para conseguir una E/S de disco mnima para todas las
consultas de bases de datos es asegurarse de que se creen y se mantengan
buenos ndices. Una vez creados los ndices, se debe procurar mantenerlos
para asegurarse que sigan trabajando en forma ptima. A medida que se
agregan, modifican o borran datos se produce fragmentacin. Esta
fragmentacin puede ser buena o mala para el rendimiento del sistema,
dependiendo de las necesidades del trabajo de la base de datos.
Fragmentacin de los ndices
La fragmentacin es consecuencia de los procesos de modificacin de los
datos (instrucciones INSERT, UPDATE y DELETE) efectuados en la tabla y en
los ndices definidos en la tabla. Como dichas modificaciones no suelen estar
distribuidas de forma equilibrada entre las filas de la tabla y los ndices, el
llenado de cada pgina puede variar con el paso del tiempo. Para las consultas
que recorren parcial o totalmente los ndices de una tabla, este tipo de
fragmentacin puede producir lecturas de pginas adicionales. Esto impide el
recorrido paralelo de los datos. Existen dos tipos de fragmentacin:
Interna: Fragmentacin dentro de pginas individuales de datos e ndices
con espacios libres que generan la necesidad de ms operaciones de E/S y
ms memoria para su lectura. Este hecho disminuye el rendimiento en

ambientes de lectura, pero en algunos casos puede beneficiar las inserciones,


que no requieren una divisin de pginas con tanta frecuencia.
Externa: Cuando el orden lgico de las pginas no es correcto, porque las
pginas no son contiguas. El acceso a los datos es mucho ms lento por la
necesidad de bsqueda de los datos.
La fragmentacin de ndices se puede reparar reorganizando un ndice o
reconstruyndolo. Para los ndices fraccionados que fueron construidos en una
estructura partida se puede usar cualquiera de estos mtodos o bien en un
ndice completo o bien en un nico fragmento del ndice.
Deteccin de Fragmentacin
El primer paso para decidir qu mtodo de desfragmentacin se va a utilizar
consiste en analizar el ndice para determinar el nivel de fragmentacin. Si se
usa la funcin del sistema sys.dm_db_index_physical_stats, se puede detectar
la fragmentacin de los ndices de la base de datos thuban-homologada.
SELECT DISTINCT
A.INDEX_ID 'IDIndice';
sys.TABLES.name 'Tabla',
b.name 'Indice',
avg_fragmentation_in_percentr '% Fragmentacin',
fragment_count 'Cantidad de Fragmentos',
avg_fragment_size_in_pages 'Promedio de fragmentos por pgina',
FROM
sys.dm_db_index_physical_stats (
DB_ID ()N'thuban-himologada'),
OBJECT_ID (N'dbo.*'),
NULL,

NULL,
NULL) AS a JOIN sys.indexes AS b ON a.object_id = b.object_id AND
a.index_id = b.index_id,
sys.TABLES
WHERE
sys.TABLES.object_id = b.object_id
ORDER BY
avg_fragmentation_in_percent DESC
La grilla de resultados emitida por la anterior sentencia incluye las siguientes
columnas:
Columna
Id ndice
Tabla

ndice

Descripcin
El nmero de ndice dentro de la tabla.
Nombre de la tabla a la que corresponde el
ndice.
Nombre del ndice.

% Fragmentacin

El porcentaje de fragmentacin
(pginas del ndice fuera de orden).

lgica

Cantidad de fragmentos

La cantidad de fragmentos (pginas fsicas


consecutivas) en el ndice.

Promedio de pginas por Promedio de nmero de pginas en un


fragmentos
fragment del ndice.

Una vez que se toma conciencia del nivel de fragmentacin, se debe utilizar
la tabla a continuacin para determinar el mejor mtodo para su correccin.
% Fragmentacin

Sentencia correctiva

> 5% and < = 30%

ALTER INDEX REORGANIZE

> 30%

ALTER INDEX REBUILD WITH (ONLINE = ON)*

La reconstruccin del ndice puede ejecutarse tanto en lnea como fuera de


lnea. La reorganizacin de los ndices debe ejecutarse siempre en lnea. Para
adquirir una disponibilidad similar a la de la opcin de reorganizacin, los
ndices deben ser reconstruidos en lnea.
Estos valores proveen una estricta gua para determinar el punto en el que
se debe cambiar de ALTER INDEX REORGANIZE a ALTER INDEX REBUILD.
Los niveles muy bajos de fragmentacin (menores que el 5 por ciento) no
deben ser corregidos por ninguno de estos comandos porque el beneficio de la
remocin de una cantidad tan pequea de fragmentacin es casi siempre
superado ampliamente por el costo de reorganizacin o reconstruccin de
ndices.
Reorganizacin de ndices
Para reorganizar uno o ms ndices se debe usar la sentencia ALTER INDEX
con la clusula REORGANIZE. Por ejemplo:
ALTER INDEX PK_LOGS ON THUBAN_LOGS REORGANIZE
El proceso de reorganizacin de ndices se realiza siempre en lnea y el
consumo de recursos es bajo por lo que no mantiene bloqueos por mucho
tiempo.
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.
Blevel (branch level) es parte del formato del B-tree del ndice e indica el
nmero de veces que Oracle ha tenido que reducir la bsqueda 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 particin de un ndice podramos hacer los siguiente:
ALTER INDEX <index_name> REBUILD PARTITION <nb_partition>
NOLOGGING;
Nota: En algunos casos cuando alguno de los ndices tiene algn tipo de
corrupcin no es posible reconstruirlo. La solucin en este caso es borrar el
ndice y recrearlo.

Unidad 5: Seguridad
5.1 Respaldo y Recuperacin
El respaldo es uno de los pasos ms importantes que puedes dar para
proteger tu informacin. Cuando algo sale mal, como fallas en disco duro,
borrado accidental de archivos o infecciones por malware, son tu ltimo
recurso. En esta edicin, te explicamos cmo respaldar tu informacin y
preparar una estrategia adecuada para ti.
Qu Respaldar y Cundo
Existen dos aspectos fundamentales para decidir qu respaldar: la
informacin que hayas generado o que sea importante para ti, como
documentos, fotografas o videos; o toda, incluyendo tu sistema operativo y
cualquier programa que hayas instalado. El primer aspecto limita el proceso
de respaldo, mientras que el segundo hace que sea ms fcil recuperar el
sistema en caso de un fallo completo. Si no ests seguro de qu respaldar,
respalda todo. A continuacin, tendrs que decidir qu tan seguido respaldar
tu informacin. Lo ms comn es hacerlo cada hora, diariamente,
semanalmente, etc. Para usuarios caseros, los programas de respaldo
personal como Time Machine de Apple o Copias de seguridad y restauracin

de Windows, permitirn fijar un horario automtico de respaldo progrmalo y


olvdate. Otras soluciones ofrecen proteccin continua, en la cual los
archivos nuevos o modificados son respaldados inmediatamente tan pronto
sean cerrados. Si perteneces a una organizacin con muchas computadoras,
quizs te gustara definir tu propio calendario. Sera bueno que consideraras
cunta informacin ests dispuesto a perder en el peor de los casos. Por
ejemplo, si respaldas diariamente, puedes perder una jornada de trabajo si tu
computadora falla al final del da. Muchas organizaciones programan
respaldos diarios fuera de las horas pico para minimizar el impacto la
operacin normal.
Cmo Respaldar
En general, existen dos recursos en los que puedes respaldar tu
informacin: medios fsicos o almacenamiento en la nube. Ejemplos de
medios fsicos incluyen DVDS, dispositivos USB, cintas magnticas o discos
duros adicionales. Evita respaldar en el mismo dispositivo que contiene los
archivos originales. Cuando uses medios fsicos asegrate de etiquetarlos,
tanto interna (en el nombre del archivo) como externamente (sobre el
dispositivo), para que puedas identificar fcilmente fecha y hora del respaldo.
Puedes almacenar el respaldo en un contenedor con llave, a prueba de
fuego y de agua, dependiendo del medio que elegiste. Una opcin ms
robusta es almacenar copias de tus respaldos fuera de las instalaciones.
Para respaldos personales, puede ser tan simple como almacenarlos en
casa de un miembro de la familia o en una caja de seguridad. Las
organizaciones quiz deseen contratar un servicio profesional para
transportar y almacenar los respaldos de forma segura. Dependiendo de qu
tan sensibles sean y dnde se almacenen los respaldos, tal vez convenga
cifrarlos.
Muchos de estos problemas se solucionan con respaldos en la nube.
Realizar copias de seguridad en la nube es tan sencillo como instalar o
configurar una aplicacin en tu computadora. Despus de configurar las
opciones de respaldo, archivos nuevos y modificados son respaldados
automticamente a travs de Internet en servidores del centro de datos del
proveedor.
Finalmente, necesitas decidir por cunto tiempo conservars tus
respaldos. Es probable que los usuarios caseros no necesiten mantenerlos
por ms de treinta das. Algunas organizaciones cuentan con polticas o

requerimientos legales para resguardar por periodos ms largos, as como


reglas para la destruccin de respaldos obsoletos. Si ests respaldando
informacin de tu organizacin, verifica con el grupo de TI, legal o de gestin
de registros para estar seguro. Respecto a las opciones de respaldo en la
nube, es posible que te cobren con base a la cantidad de datos que
respaldes, as que es importante ser cuidadoso de no acumular una gran
deuda.
Recuperacin
Respaldar tu informacin es slo la mitad de la batalla; ahora tienes que
asegurarte de que puedes recuperarla fcilmente. Practica regularmente tu
proceso de recuperacin, tal y como haras en un simulacro de sismo, esto
te ayudar a asegurar que todo funcione correctamente en caso de
necesitarlo. Comprueba por lo menos una vez al mes que el programa de
respaldos est funcionando adecuadamente. Por lo menos trata de
recuperar un archivo. Para una prueba ms robusta, sobre todo para las
organizaciones, considera hacer la recuperacin completa del sistema y
verifica que sea recuperable. Si no cuentas con hardware externo para la
prueba de recuperacin completa del sistema, restaura archivos y carpetas
importantes en una ubicacin diferente y luego verifica si recuperaste y
puedes abrir todo.
5.1.1 Espejeo (Mirroring)
Base de Datos Espejo (Database Mirroring) es una configuracin donde
dos o tres servidores de dase de datos, ejecutndose en equipos
independientes, cooperan para mantener copias de la base de datos y
archivo de registro de transacciones (log).
Tanto el servidor primario como el servidor espejo mantienen una copia de
la base de datos y el registro de transacciones, mientras que el tercer
servidor, llamado el servidor rbitro, es usado cuando es necesario
determinar cul de los otros dos servidores puede tomar la propiedad de la
base de datos. El rbitro no mantiene una copia de la base de datos. La
configuracin de los tres servidores de base de datos (el primario, el espejo y
el rbitro) es llamado Sistema Espejo (Mirroring System), y el servidor
primarioy espejo juntos son llamados Servidores Operacionales (Operational
Servers) o Compaeros (Partners).

5.1.1.1 Beneficios del Espejeo de Datos en un DBMS


La creacin de reflejo de la base de datos es una estrategia sencilla que
ofrece las siguientes ventajas:
Incrementa la disponibilidad de una base de datos. Si se produce un
desastre en el modo de alta seguridad con conmutacin automtica por
error, la conmutacin por error pone en lnea rpidamente la copia en espera
de la base de datos, sin prdida de datos. En los dems modos operativos,
el administrador de bases de datos tiene la alternativa del servicio forzado
(con una posible prdida de datos) para la copia en espera de la base de
datos. Para obtener ms informacin, vea Conmutacin de roles, ms
adelante en este tema.
Aumenta la proteccin de los datos. La creacin de reflejo de la base de
datos proporciona una redundancia completa o casi completa de los datos,
en funcin de si el modo de funcionamiento es el de alta seguridad o el de
alto rendimiento. Para obtener ms informacin, vea Modos de
funcionamiento, ms adelante en este tema.
Un asociado de creacin de reflejo de la base de datos que se ejecute en
SQL Server 2008 Enterprise o en versiones posteriores intentar resolver
automticamente cierto tipo de errores que impiden la lectura de una pgina
de datos. El socio que no puede leer una pgina, solicita una copia nueva al
otro socio. Si la solicitud se realiza correctamente, la copia sustituir a la
pgina que no se puede leer, de forma que se resuelve el error en la mayora
de los casos. Para obtener ms informacin, vea Reparacin de pgina
automtica (grupos de disponibilidad/creacin de reflejo de base de datos).
Mejora la disponibilidad de la base de datos de produccin durante las
actualizaciones. Para minimizar el tiempo de inactividad para una base de
datos reflejada, puede actualizar secuencialmente las instancias de SQL
Server que hospedan los asociados de creacin de reflejo de la base de
datos. Esto incurrir en el tiempo de inactividad de solo una conmutacin por
error nica. Esta forma de actualizacin se denomina actualizacin gradual.
Para obtener ms informacin, vea Instalar un Service Pack en un sistema
con un tiempo de inactividad mnimo para bases de datos reflejadas.
5.1.1.2 Activacin de Espejeo en un DBMS

5.1.1.3 Creacin de Espacios de Disco con Espejo


Discos Espejo
Espejeado de disco significa que se conectan dos unidades de disco al
mismo controlador de disco. Las dos unidades se mantienen idnticas
cuando el servidor escribe en una unidad (la primaria), posteriormente se
escribe en (la secundaria). Si durante la operacin falla, la unidad primaria,
en su lugar se utiliza la secundaria. Si la secundaria falla, no importa. En
ambos casos los usuarios experimentan una breve pausa mientras el
servidor se asegura que la unidad est muerta, y luego se regresa al
servicio normal.
Como sucede con todas las cosas buenas, hay una desventaja. Para
contar con este nivel de confiabilidad, se necesita un segundo disco duro, lo
que duplica el costo del almacenamiento de datos. Pero en lo que concierne
a su organizacin, tal vez valga la pena el costo relativamente pequeo de
una unidad de disco, para evitar lo que de otra manera seria un desastre.
Una de las desventajas de los discos espejos es la perdida de rendimiento.
Dado que un controlador manejados unidades primarias para escribir los
datos en la unidad secundaria. Esto provoca que las escrituras en disco se
tarden el doble. En un servidor con carga ligera esto quizs no sea tan malo
desde el punto de vista del usuario, ya que el cach de disco del servidor
hace que el acceso a disco perezca extremadamente rpido. Sin embargo, la
sobrecarga puede llegar a ser significativa en un sistema con carga pesada.
Otra de las desventajas del espejeado es que el controlador de disco duro
o los cables de conexin llegan a fallar. Los datos se pueden leer desde la
unidad o matriz duplicada sin que se produzcan interrupciones. Es una
alternativa costosa para los grandes sistemas, ya que las unidades se deben
aadir en pares para aumentar la capacidad de almacenamiento, para los
disco espejos. Los discos espejos tambin llamado "duplicacin" (creacin
de discos en espejo).Se basa en la utilizacin de discos adicionales sobre
los que se realiza una copia en todo momento de los datos que se
estn modificando. El cual ofrece una excelente disponibilidad delos datos
mediante la redundancia total de los mismos. Administracin del espacio
libre en un disco.
Es necesario saber qu bloques estn libres. Las opciones son parecidas
a las que se pueden usar para administrar espacio en memoria. Mapa de
bits. Un bit por bloque. Es eficiente si se puede mantener el mapa entero en

memoria. Disco de 1 GB, con bloques de 512 KB requiere un mapa de 256


KB. Usado en los MACS. Lista ligada. En un bloque reservado (fijo) del disco
se registran las direcciones de los bloques desocupados. La ltima direccin
apunta no a un bloque libre, sino a otro bloque con ms direcciones de
bloques libres. En MS-DOS se usa la misma FAT para administrar el espacio
libre.
Cachs de Disco
Ya que el disco es tan lento comparado con la memoria (unas 10000
veces) resulta rentable usar un cach para mantener en memoria fsica parte
de la informacin que hay en el disco, de manera que, si en el futuro se
requiere un bloque que ya est en memoria, se ahorra el acceso al disco.
Igual que en el caso de memoria virtual, hay que tratar de adivinar
qu bloques se van a acceder en el futuro cercano, para mantener esos
bloques en el cach. Pero al contrario de lo que ocurre con memoria virtual,
no se requiere ningn apoyo especial del hardware para implementar LRU.
Ya que todos los accesos a disco pasan por las manos del
sistema operativo. Paradjicamente, LRU no es necesariamente la mejor
alternativa tratndose de bloques de disco. Por otra parte, algunos delos
bloques contienen informacin crtica respecto del sistema de archivos. Si
este bloque es modificado y puesto al final de la cola LRU, puede pasar un
buen tiempo antes de que llegue a ser el menos recientemente usado, y sea
escrito en el disco para ser reemplazado. Si el sistema se cae antes que eso,
esa informacin crtica se perder, y el sistema de archivos quedar en un
estado inconsistente.
Planificacin de Disco
Un disco, mirado desde ms bajo nivel, no es simplemente una secuencia
de bloques. Estn compuestos de platos, cada uno de los cuales contiene
una serie de pistas o tracks concntricos. A su vez, las pistas se dividen en
sectores. Las pistas exteriores, que son ms grandes, pueden contener ms
sectores que las interiores. (En un CD, en realidad hay una espiral de
sectores.)Existe un brazo mecnico con un cabezal lector/escritor para cada
plato. El brazo mueve todos los cabezales juntos. Un cilindro se conforma
por las pistas que los cabezales pueden leer cuando el brazo est en una
posicin determinada. Los bloques lgicos (secuenciales) que ve el sistema
de archivos deben traducirse a un tro (cilindro, plato, sector). El tiempo

requerido para leer un sector depende de:


1. El tiempo de bsqueda (seek time), es decir, el tiempo requerido para
mover el brazo al cilindro apropiado.
2. El retardo rotacional, o sea, el tiempo que hay que esperar hasta que el
sector requerido pase por debajo del cabezal.
3. El tiempo de transferencia de los datos.
El primero es el que predomina, de manera que conviene reducirlo para
aumentar la eficiencia del sistema. El sistema de archivo puede ayudar (por
ejemplo, con asignacin contigua).Obviamente, bloques en el mismo cilindro
deben considerarse contiguos. Pero hay otra cosa que se puede hacer,
considerando que en un sistema con muchos procesos la cola de solicitudes
pendientes de un dispositivo suele no estar vaca: atenderlas en un orden
que reduzca los movimientos del brazo.
Algoritmos de Planificacin de Disco
FIFO
Es simple, pero no estamos haciendo nada por la eficiencia. Es malo si
las solicitudes se alternan entre cilindros exteriores e interiores.
SSTF (Shortest Seek-Time First)
Se trata de atender primero las solicitudes ms cercanas a la posicin
actual del brazo. El problema es que, cuando hay muchas solicitudes,
es posible que slo se atiendan las cercanas al centro. Puede haber
inanicin para los procesos que solicitan cilindros delos extremos.
Algoritmo del Ascensor
Para evitar inanicin, se mantiene la direccin de movimiento del brazo
hasta que no queden solicitudes pendientes en esa direccin. Es lo
mismo que hacen los ascensores. Un pequeo problema es que las
solicitudes en los extremos tienen, en promedio, un tiempo de espera mayor.
Discos RAM
Gracias a la estructuracin en capas, podemos usar el mismo sistema

de archivos en cualquier dispositivo de bloques con un driver adecuado, que


implemente la interfaz para el software independiente del dispositivo. Por
ejemplo, en los primeros computadores personales, que tenan slo una
disquetera como medio de almacenamiento, era habitual crear un disco
RAM, es decir reservar un trozo de la memoria para usarlo como un disco
virtual, para almacenar archivos. Un driver de disco RAM es
extremadamente simple.
5.1.2. Rplica (Replication)
La replicacin es el proceso de copiar y mantener actualizados los datos
en varios nodos de bases de datos ya sean estos persistentes o no. ste usa
un concepto donde existe un nodo amo o maestro (master) y otros sirvientes
o esclavos (slaves).
La replicacin de discos y particiones es la respuesta a una parte
importante de esas dos acciones de mantenimiento. La replicacin es el
proceso mediante el cual se genera una copia exacta de parte del sistema.
Esa parte puede ser desde un archivo hasta una carpeta, una particin, un
disco o incluso varios discos.
La replicacin es til para:

Copia de Seguridad

En condiciones normales, una base de datos replicada de forma correcta


es vlida como copia de seguridad.
Adems se puede realizar copias de seguridad usando un servidor
esclavo para as no interferir al servidor maestro.

Mejorar la Escalabilidad

Podramos configurar nuestras aplicaciones para balancear las consultas


de lectura (SELECT) entre los servidores replicados.
Podramos usar herramientas como MySQL Proxy para balancear las
consultas de lectura entre los servidores replicados y enviar las consultas de
actualizacin de datos al maestro.

Alta Disponibilidad

En aplicaciones y entornos en donde slo se requieren lecturas,


podramos configurar nuestras aplicaciones para balancear las consultas de
lectura (SELECT) entre los servidores replicados de manera que si uno se
cae se continue prestando servicio.
El Log Binario
El log binario es un archivo binario gestionado por el servidor de base de
datos en el que se registran todas las sentencias SQL de modificacin de
datos o estructura.
En el caso de la replicacin es importante saber que cada servidor
esclavo se conecta al servidor maestro y le solicita que le enve las
sentencias registradas en los logs binarios a partir de una posicin, para ello,
cada esclavo mantiene un archivo a modo de ndice en donde registra la
posicin actual de la replicacin.
Gracias a esto, podemos detener el esclavo (STOP SLAVE), que haya un
corte de red, etc... De manera que cuando se vuelva a iniciar la replicacin
(START SLAVE) o se reestablezca la comunicacin... Pase el tiempo que
pase) el esclavo solicitar al maestro todas las sentencias a ejecutar desde
su estado actual y las ir ejecutando secuencialmente de manera que en
cuestin de segundos ambos servidores tendrn las bases de datos con el
mismo contenido y estructura.
Probando la Replicacin
1. En el servidor esclavo ejecute el comando SHOW SLAVE STATUS y
observe que el mensaje que le muestra es un mensaje que indica que est
esperando eventos del maestro...
2. Modifique algo en el maestro y verifique que instantneamente se
replica en el esclavo.
3. Detenga el esclavo durante un tiempo, realice cambios (cree tablas,
modifique registros...) en el maestro e inicie el esclavo. En cuestin de
milisegundos ambas bases de datos deberan de ser iguales.
5.1.2.1 Beneficios de la Rplica de Datos en un DBMS
La replicacin se usa mucho en sistema de acceso a datos por varios

motivos:
Rendimiento: Normalmente y dependiendo del caso, hay ms
lectura que escritura en una base de datos, por lo que tener varios
nodos solo procesando la lectura puede traer un gran beneficio de
rendimiento en una base de datos muy consultada.
Prueba de Fallas: Un esclavo estando casi sincrnicamente
actualizado puede ser til en caso de que el nodo maestro caiga, este
puede reemplazarlo y as no detener el servicio.
Fiabilidad: Muchas veces se puede tener una replicacin para
tener la seguridad de que los datos estn siendo copiados a otro nodo,
en caso de sufrir un desperfecto en el maestro.
Generacin de Bloqueos: aunque sta es ms precisa, tambin
se puede usar para procesos que necesiten leer datos, generando
bloqueos, al hacerlo sobre un esclavo esto no interviene en el
funcionamiento de todo el sistema, es muy usado para por ejemplo,
hacer copias de seguridad, o extraer grandes cantidades de datos para
generar estadsticas.
5.1.3 Mtodos de Respaldo de un DBMS
En mySQL existen varios mtodos para la realizacin de un backup y esto
se debe principalmente a que mySQL guarda las tablas como archivos y al
tipo de tablas que se est manejando (InnoDB, MyISAM, ISAM). As por
ejemplo para la presente prctica se utiliz el tipo de tabla InnoDB y el
mtodo de backup utilizado es el que funciona con este tipo de tablas.
InnoDB es una de las tecnologas de almacenamiento que utiliza mySQL,
es de codigo abierto. Entre sus caractersticas principales estan que soporta
transacciones con caractersticas ACID (Atomicidad, Consistencia,
Aislamiento y Durabilidad), tiene bloque de registros e integridad referencial
(cosa que no maneja ISAM, ni myISAM). Esta ltima es una de sus
caractersticas ms importantes pues una base de datos sin integridad
referencial, es nada ms un conjunto de datos que no denotan informacin.
Este tipo de almacenamiento tambin ofrece una alta fiabilidad y
consistencia. El mismo gestiona el control de los datos y no se lo deja al
sistema operativo, una de sus desventajas es que no tiene una buena

compresin de datos, por lo que ocupa un poco ms de espacio que


myISAM.
5.1.3.1 Elementos y Frecuencia de Respaldo
Normalmente cuando uno plantea que va a respaldar los datos de su PC a
una persona en una compaa uno tiene que definir muy bien cul es la
informacin crtica para la empresa, por ejemplo la msica que guarde un
empleado en su PC no es crtica para las actividades de la empresa ni lo son
las fotos de su ltima fiesta. En cambio su correo electrnico, proyectos,
informes y papeles administrativos si lo suelen ser y tener un respaldo de
estos es clave para el funcionamiento de la empresa en caso de cualquier
eventualidad.
Normalmente lo datos o informacin que es respaldada por las empresas
es:
Archivos creados por aplicaciones, como por ejemplo .doc, .odt,
.xls, .mdb, .pdf, .ppt entre otros.

Archivos de correo electrnico

Directorios telefnicos y de contactos

Favoritos de los navegadores como Firefox e Internet Explorer

Base de datos

Configuraciones de los equipos

Archivos de CAD, PSD, XCF, etc.

Imgenes y Fotografas de proyectos

Configuraciones de servicios

Clasificacin de Respaldos

Copias de Informacin (Backups)

Estos respaldos son slo duplicados de archivos que se guardan en

"Tape Drives" de alta capacidad. Los archivos que son respaldados pueden
variar desde archivos del sistema operativo, bases de datos, hasta archivos
de un usuario comn. Existen varios tipos de Software que automatizan la
ejecucin de estos respaldos, pero el funcionamiento bsico de estos
paquetes depende del denominado archive bit.
Este archive bit indica un punto de respaldo y puede existir por archivo o
al nivel de "Bloque de Informacin" (tpicamente 4096 bytes), esto depender
tanto del software que sea utilizado para los respaldos as como el archivo
que sea respaldado. Este mismo archive bit es activado en los archivos (o
bloques) cada vez que estos sean modificados y es mediante este bit que se
llevan a cabo los tres tipos de respaldos comnmente utilizados:

Respaldo Completo ("Full")

Guarda todos los archivos que sean especificados al tiempo de ejecutarse


el respaldo. El archive bit es eliminado de todos los archivos (o bloques),
indicando que todos los archivos ya han sido respaldados.

Respaldo de Incremento ("Incremental")

Cuando se lleva a cabo un Respaldo de Incremento, slo aquellos


archivos que tengan el archive bit sern respaldados; estos archivos (o
bloques) son los que han sido modificados despus de un Respaldo
Completo. Adems cada Respaldo de Incremento que se lleve a cabo
tambin eliminar el archive bit de estos archivos (o bloques) respaldados.

Respaldo Diferencial ("Differential")

Este respaldo es muy similar al "Respaldo de Incremento", la diferencia


estriba en que el archivo bit permanece intacto.
Frecuencia de Actualizacin de la Informacin
Hay dos puntos importantes en cuanto a la actualizacin de la
informacin:

Que tan frecuentemente se actualiza la informacin

Si queremos guardar un histrico de la informacin o no

No toda la informacin se actualiza con la misma frecuencia, hay


informacin que puede durar aos sin ser modificada y otra que se actualice
constantemente todos los das, es importante definir qu informacin se
actualiza y en qu momento para hacer una poltica de respaldo ms
eficiente.
La mayora de las aplicaciones de respaldos hacen esto automticamente
fijndose en la fecha de modificacin del archivo y comparndola con la que
tiene en el respaldo.
El otro punto es si queremos hacer un respaldo con histricos o
duplicados, en este caso tenemos que indicarle al programa que no
queremos que nos borre o sobrescriba ningn archivo y que vaya guardando
los archivos con su respectiva fecha y con qu frecuencia queremos hacer el
respaldo.
En caso de que haya informacin que se pueda sobrescribir o actualizar,
se realiza un respaldo incremental donde slo se actualiza lo que ha
cambiado del archivo lo que mejora la eficiencia de nuestro sistema. Esto
realmente va a depender del tipo de informacin y vara de empresa a
empresa pero es algo importante que tengamos que tomar en cuenta ya que
toda la informacin no es igual.
5.1.3.2 Comandos para Respaldo de Datos
A continuacin vamos a exponer los pasos y comandos para realizar la
replicacin de una base de datos en un nico servidor esclavo. Si
quisiramos configurar ms esclavos, los pasos a realizar seran los mismos
sobre cada uno de los esclavos.
1. Creamos un usuario MySQL en el servidor maestro con
privilegios de replicacin.
2. El servidor esclavo se autentificar frente al servidor maestro
como un usuario normal.
3. Para crear el usuario debemos ejecutar desde la consola de
comandos de mysql las siguientes sentencias SQL:
CREATE USER '<replication_user>'@'<slave_address>' IDENTIFIED BY
'<replication_user_password>'

GRANT
REPLICATION
SLAVE
'<replication_user>'@'<slave_address>'

ON

*.*

TO

4. Con la sentencia anterior el usuario slo tendra permiso de


acceso desde la mquina <slave_address>, en caso de no requerir
esta medida de seguridad puedes sustituir el comodn % por el
parmetro <slave_address>.
Configuracin del Servidor Maestro
1. Deberemos agregar las siguientes lneas al final del archivo de
configuracin
del
servidor
MySQL,
por
defecto:
<MySQL_HOME>/my.ini
2. Identificador nico del servidor MySQL dentro de todos los
servidores implicados en la replicacin.
Server id = 1
3. Al especificar el parmetro log-bin estamos activando el log
binario.
4. No especificamos un valor para el parmetro de configuracin
(por defecto ser <nombre_maquina > - bin).
Log bin =
5. El log binario slo tendr las actualizaciones realizadas sobre la
base de datos "bd_autentia"
6. Si adems quisiramos replicar otras bases de datos,
duplicaramos este parmetro para cada base de datos.
Binlog do db = bd_autentia
Configuracin del Servidor Esclavo
1. Deberemos agregar las siguientes lneas al final del archivo de
configuracin
del
servidor
MySQL,
por
defecto:
<MySQL_HOME>/my.ini
2. Identificador nico del servidor MySQL dentro de todos los

servidores implicados en la replicacin.


Server id = 2
3. Nombre del archivo binario que almacena las instrucciones
pendientes de ejecutar, por defecto: <host_name> - relay - bin.index
Relay log =
4. Nombre o direccin IP del maestro.
Master host = <master_address>
5. El esclavo se conecta a travs de un usuario al maestro.
Identificador del usuario.
Master user = <replication_user>
6. El esclavo se conecta a travs de un usuario al maestro.
Contrasea del usuario.
Master password = <replication_user_password>
7. Nmero de segundos que esperar el esclavo para reintentar
conectarse al maestro en caso de una prdida de conexin.
Master connect retry = 50
8. Nmero de reintentos de reconexin
Master retry count = 5000
9. Realizamos una copia de seguridad de la base de datos del
maestro sobre el servidor esclavo.
Desde la consola ejecutamos los siguientes comandos:
[Maestro]: <MYSQL_HOME>/bin/mysql
-u
root
<contrasea> -e "FLUSH TABLES WITH READ LOCK"

password

Para limpiar las caches y bloquear el acceso de cualquier aplicacin a la

base de datos.
[Maestro]: <MYSQL_HOME>/bin/mysqldump
<contrasea> --opt bd_autentia > backup.sql

--u

root

password

Realizamos una copia completa de la base de datos en el archivo


backup.sql.
[Esclavo]: <MYSQL_HOME>/bin/mysql
<contrasea> bd_autentia < backup.sql

--user=root

password

Para Restaurar la Copia de Seguridad en el Esclavo


[Esclavo]: <MYSQL_HOME>/bin/mysqladmin
<contrasea> shutdown

-u

root

password

-u

root

password

Detenemos el Servidor Esclavo


[Maestro]: <MYSQL_HOME>/bin/mysqladmin
<contrasea> shutdown

Detenemos el servidor maestro (Se desbloquearn las tablas de las bases


de datos previamente bloqueadas)
[Esclavo]: <MYSQL_HOME>/bin/mysqld-nt
file="<MYSQL_HOME>\my.ini" MySQL

defaults

Iniciamos el Servidor, el cual Tomar la Nueva Configuracin:


[Maestro]: <MYSQL_HOME>/bin/mysqld-nt
file="<MYSQL_HOME>\my.ini" MySQL

--defaults-

5.1.3.3 Mtodos de Recuperacin de un DBMS


Recuperarse al fallo de una transaccin significa que la base de datos se
restaura al estado coherente ms reciente, inmediatamente anterior al
momento del fallo para esto el sistema guarda las informacin sobre los
cambios de las transacciones esta informacin se guarda en el registro del
sistema.
1. Si hay un fallo como la cada del disco, el sistema restaura una

copia se seguridad del registro, hasta el momento del fallo.


2. Cuando el dao se vuelve inconsistente, se pueden rehacer
algunas operaciones para restaurar a un estado consistente. En
este caso no se necesita una copia archivada.
Actualizacin Diferida: No se actualiza fsicamente la base de datos
Hasta que no haya alcanzado su punto de confirmacin.
Actualizacin Inmediata: La base de datos puede ser actualizada por
Algunas Operaciones antes de que esta ltima alcance su punto de
confirmacin.
Tipos de Almacenamiento

Almacenamiento Voltil: no sobrevive a las cadas del sistema.

Almacenamiento no Voltil: disco, cinta...: existen accidentes.

Almacenamiento Estable Frente al no Estable: la informacin no se


pierde nunca, se repite en varios medios no voltiles (disco) con modos de
fallo independientes.
Almacenamiento en Cach (Bfer) de los Bloques de Disco
El proceso de recuperacin se entrelaza con funciones del sistema
operativo en particular con el almacenamiento en cach o en bfer en la
memoria principal, Normalmente se reserva una coleccin de bferes en
memoria, denominados cach DBMS. Se utiliza un directorio para rastrear
los elementos de la base de datos que se encuentra en los bferes.
Bit Sucio: que puede incluirse en la entrada del directorio, para indicar si
se ha modificado o no el bfer.
Pin: Un pin dice que una pgina en cach se est accediendo
actualmente.
Actualizacin en el Lugar (In Place): Escribe en el bfer la misma
ubicacin de disco original.
Shadowing (en la Sombra): Escribe un bfer

actualizado en una

ubicacin diferente.
BFIM (Before Image): Imagen antes de la actualizacin.
AFIM (After Image): Imagen despus de la actualizacin.
Registro Antes de la Escritura, Robar/No-Robar y Forzar no Forzar
En este caso, el mecanismo de recuperacin debe garantizar la grabacin
de la BFIM de los datos en la entrada apropiada del registro del sistema y
que esa entrada se vuelque en el disco antes que la BFIM sea sobrescrita
con la AFIM de la base de datos del disco.
Puntos de Control en el Registro del Sistema y Puntos de Control
Difusos
Otro tipo de entrada en el registro es el denominado punto de control
(checkpoint). En este punto el sistema escribe en la base de datos, en disco,
todos los bferes del DBMS que se han modificado.
No tienen que rehacer sus operaciones, es decir, ESCRIBIR en caso de
una cada del sistema.
El gestor de recuperaciones de un DBMS debe decidir en qu intervalos
tomar un punto de control.
La toma de un punto de control consiste en las siguientes acciones:
1. Suspender temporalmente la ejecucin de las transacciones.
2. Forzar la escritura de disco de todos los bferes de memoria
que se hayan modificado.
3. Escribir un registro (checkpoint) en el registro del sistema y
forzar la escritura del registro en el disco.
4. Reanudar la ejecucin de las transacciones.
Diarios para Recuperacin

Se utilizan tambin los trminos log y journal.

Mantiene un registro de todas las operaciones que


afectan a tems de la base de datos.

Esta informacin permite recuperar.

Se almacena en disco.

Operaciones posibles a reflejar:

[start, T]
[write, T, X, valor_viejo, valor_nuevo] (Opcional)
[read, T, X]
[commit, T]
[abort, T]
undo, redo

Tcnicas de Recuperacin Basadas en la Actualizacin Diferida


Graba todas las actualizaciones de la BD en el diario, pero
aplaza la ejecucin de todas las operaciones de escritura (write) de una
transaccin hasta que sta se encuentre parcialmente cometida.

Solamente requiere el nuevo valor del dato.

Si la transaccin aborta (no llega a committed),


simplemente hay que ignorar las anotaciones en el diario.

Para recuperaciones usa el procedimiento: redo (Ti),


que asigna los nuevos valores a todos los datos que actualiza Ti.
Despus de ocurrir un fallo, se consulta el diario para
determinar que transacciones deben repetirse y cuales anularse.
Ti debe anularse si el diario contiene el registro start pero no el
commit.
Ti debe repetirse si el diario contiene el registro start y el commit.
La operacin redo debe ser idempotencia, es decir,
ejecutarla varias veces debe producir el mismo resultado que ejecutarla una
sola vez.
Los Redo comienzan a hacerse en el ltimo checkpoint no sabemos si la
informacin est en disco o en memoria.
Recuperacin Mediante la Actualizacin Diferida en un Entorno
Monousuario
El algoritmo RDU se utiliza un procedimiento rehacer, proporcionado con
posterioridad.
Para rehacer determinadas operaciones escribir_elemento.

Actualizacin Diferida con Ejecucin Concurrente en un Entorno


Multiusuario

Recuperaciones Basadas en Actualizaciones Inmediatas


Permite que las actualizaciones se graben en la BD
mientras la transaccin est todava en estado activo (actualizaciones no
cometidas).
Antes de ejecutar un output (X), deben grabarse en
memoria estable los registros del diario correspondientes a X.
Los registros del diario deben contener tanto el valor
antiguo como el nuevo.

de recuperacin:

El esquema de recuperacin utiliza dos procedimientos

undo (Ti): Restaura los datos que Ti actualiza a los valores que tenan
antes.
redo (Ti): Asigna los nuevos valores a todos los datos que actualiza Ti.
Despus de ocurrir un fallo, el procedimiento de
recuperacin consulta el diario para determinar qu transacciones deben
repetirse y cules deshacerse:
1. Ti debe deshacerse si el diario contiene el registro starts pero

no el commit.
2. Ti debe repetirse si el diario contiene el registro starts y el
commit.
Las operaciones undo y redo deben ser idempotencias
para garantizar la consistencia de la BD aun cuando se produzcan fallos
durante el proceso de recuperacin.
Recuperacin Hasta un Punto de Validacin
1. Examina el diario hacia atrs hasta localizar un registro
<checkpoint>.
2. Considera slo los registros existentes entre este punto y el final del
diario.
3. Ejecuta undo (Tj) para las transacciones que no tengan registro <Tj
commits>, partiendo del final del fichero.
4. Ejecuta redo (Ti) para las transacciones que tengan su registro <Ti
commits>, partiendo desde el punto de verificacin hasta el final del
diario.
Procedimientos de Recuperacin
Recuperacin Normal
Tiene lugar despus de una parada normal de la
mquina, en la que se escribe un punto de verificacin como ltimo registro
del diario.
Este procedimiento se ejecuta cuando el ltimo registro
del diario es un punto de verificacin o recuperacin del sistema.
Este tipo de recuperacin tambin tiene lugar cuando
aborta una transaccin, debido a la razn que sea.
Recuperacin en Caliente

Despus de un error del sistema.

Se ejecuta cuando el ltimo registro del diario no es un


punto de verificacin y el operador no indica prdida de memoria secundaria.
El procedimiento de recuperacin es el indicado en el
apartado referente a los puntos de verificacin en el diario.
Recuperacin en Fro

daada.

Despus de un incidente con la memoria masiva

coherente.

Se ejecuta si se pierden datos o la BD ya no es

Se utiliza:

1. Copia de seguridad (backup) ms reciente de la BD (Debe


existir).
Diario de las actividades posteriores.
Se aplican las imgenes posteriores al respaldo.

Puede encadenar una recuperacin en caliente.

peridicamente:

Se deben realizar copias de seguridad de la BD

Toda la BD debe copiarse en memoria secundaria.


El proceso de transacciones debe pararse durante el procedimiento de
copia (Costoso).
Algoritmo de Recuperacin ARIES
a) El registro del sistema en el momento de la cada.
b) Las tablas de transacciones y de pginas sucias en el momento de
punto de control.
c) Las tablas de transacciones y de pginas sucias despus de la fase

de anlisis.

Respaldos de Bases de Datos


Siempre es necesario tener un respaldo de nuestras bases de datos, pero
que pasa cuando nuestras bases de datos estn tan pesadas que el
phpMyAdmin se queda colgado. Para eso nos sirve mysqldump un comando
que nos trae MySQL para hacer respaldos de nuestras bases de datos su
sintaxis es la siguiente:
mysqldump [OPTIONS] database [tables]
O mysqldump [OPTIONS] databases [OPTIONS] DB1 [DB2 DB3...]
O mysqldump [OPTIONS] all-databases [OPTIONS]
Algunos de sus parmetros ms utilizados son los siguientes:
-A, all-databases Dump all the databases. This will be same as
databaseswith all databases selected.
add-drop-database Add a DROP DATABASE before each create.
add-drop-table Add a drop table before each create.

add-locks Add locks around insert statements.


allow-keywords Allow creation of column names that are keywords.
create-options Include all MySQL specific create options.
e, extended-insert Allows utilization of the new, much faster INSERT
syntax.
p, password[=name] Password to use when connecting to server. If
password is not given its solicited on the tty.
u, user=name User for login if not current user.
Bien, ahora colocamos un ejemplo de su uso:
#Respaldando una nica base de datos
mysqldump -uroot -p all add-locks -e mibase > bkmibase.sql;
#Respaldar todas mis bases de datos
mysqldump -uroot -p all all-databases add-locks -e > bkmisbases.sql;
#Nos conectamos a mysql
mysql -uroot -p
USE mibase;
source /path/TO/mibase.sql;
Como comentario para importar tablas tipo innodb se recomienda agregar:
SET FOREIGN_KEY_CHECKS=0;
Al inicio del archivo y al final con el fin de no obtener errores.
SET FOREIGN_KEY_CHECKS=1;
Soporte para Control de Transacciones y Recuperacin de Fallas

Se conoce como transaccin toda operacin que se haga sobre la base


de datos. Las transacciones deben por lo tanto ser controladas de manera
que no alteren la integridad de la base de datos. La recuperacin de fallas
tiene que ver con la capacidad de un sistema DBMS de recuperar la
informacin que se haya perdido durante una falla en el software o en el
hardware.
5.1.4. Comandos para Recuperacin
Hacer una Copia de Seguridad
El comando a utilizar es mysqldump que tiene la siguiente sintaxis:
mysqldump -u [user] -p [dbname] > [backup.sql]
Puesto que se pretende obtener un foto fija de la base de datos, es
conveniente evitar que un acceso inoportuno pueda dejar el fichero volcado
es un estado inconsistente. Esto se puede conseguir con varias opciones
aunque la recomendada es --single-transaction.
Recuperar la Base de Datos desde un Fichero
Se utiliza el mtodo habitual para ejecutar sentencias SQL desde un
fichero. Para el ejemplo sera:
# mysql -u admin -p drupal < drupal_backup.sql
5.1.4.1 Ventajas y Desventajas de cada Mtodo
Ventajas

informacin.

Facilidad

Gran velocidad en muy poco tiempo.

Independencia del tratamiento de informacin.

de

manejo

de

grandes

volumen

de

Seguridad de la informacin (acceso a usuarios


autorizados), proteccin de informacin, de modificaciones, inclusiones,
consulta.

No hay duplicidad de informacin, comprobacin de


informacin en el momento de introducir la misma.

Integridad referencial el terminar los registros.

Desventajas

muy elevados.

El costo de actualizacin del hardware y software son

costoso.

Costo (salario) del administrador de la base de datos es

futuro.

El mal diseo de esta puede originar problemas a

Un mal adiestramiento a los usuarios puede originar


problemas a futuro.
Si no se encuentra un manual del sistema no se podrn
hacer relaciones con facilidad.

Generan campos vacos en exceso.

El mal diseo de seguridad genera problemas.


5.1.4.2 Aplicacin de cada Mtodo

Copia Simple
Puede ser aplicado en situaciones en las que no requiera de varias
instancias o datos duplicados, como una Red de Oficina.
Copia Doble
Cuando requiera de un soporte estable y prctico a la hora de fallos en el
sistema.
Ejemplo:
Supngase que se deterior fsicamente parte del disco, afectando la
aplicacin. Por lo cual es necesario recuperarla. Se toma el primer juego de

respaldo, se intenta hacer la copia del respaldo al disco y aparece error de


lectura en el respaldo. Se usa entonces el segundo juego y ocurre lo mismo.
Al analizar lo ocurrido se detecta que adems de haberse deteriorado el
disco, est daada la unidad encargada de grabar los respaldos y al tratar de
leer los mismos los daa.
Resultado:
La aplicacin en disco no funciona y los dos juegos de respaldo quedaron
inutilizados. De aqu se concluye la necesidad de hacer otra copia del
respaldo, antes de intentar la recuperacin.
Copia Generacional
Cuando este contenga mayores instancias y requiera de un gran
rendimiento de los datos, como los Bancos.
5.2 Migracin de la Base de Datos
La migracin de bases de datos es generalmente una tarea compleja que
no slo supone transferir datos entre tipos de almacenaje y formatos de un
servidor de base de datos a otro; sino que tambin supone reescribir
sentencias SQL o incluso procedimientos (SPL) de lgica de negocio.
En comparacin con los esquemas estndares de migracin a mano,
ofrecemos una potente gama de herramientas desarrolladas de probada
eficacia en complejos mdulos de bases de datos relacionales. Estas
herramientas y nuestros especialistas pueden asegurar que las transiciones
de las bases de datos se realicen perfectamente, independientemente de la
naturaleza del sistema.
Desde la experiencia, estamos familiarizados con la complejidad, el coste
que supone una larga migracin de bases de datos y los problemas que
aparecen durante el proceso cuando se emplean mtodos inapropiados; ya
que siempre comprobamos con los clientes potenciales que el uso de
nuestras herramientas y mtodos pueda ofrecer una ventaja significativa.
Herramientas de Migracin
En comparacin con la consultora estndar de migraciones, la cual puede
ofrecer poco ms que soporte a la base de datos, nosotros tenemos gran
experiencia en escribir grandes aplicaciones para empresas en sintaxis de la

base de datos nativa y cross. Adems, enseamos a los equipos de las


empresas una metodologa y les proporcionamos una potente gama de
herramientas para reducir costes y optimizar el proceso de migracin.
Estas herramientas incluyen:
Herramienta de copia multi-bases de datos con
conversin automtica desde los tipos de datos (incluyendo tipos de datos
geomtricos)

Comprobacin del esquema multi-base de datos

Gramtica SQL XML

Gramtica DDL XML

Gramtica DML XML

Gramtica SPL XML

Gramtica Triggers XML

geomtricos

Soporte

para

la

conversin

de

tipos de

datos

Copia Multi-Base de Datos


La herramienta de copia puede replicar todos los datos desde una base
de datos a una destinacin, independientemente del motor, las tablas
creadas, los ndices, las restricciones y el mapeo de tipos de datos cuando
los motores difieren. Con poco esfuerzo, y despus del tiempo que supone
copiar los datos, se puede ver y explorar los datos en la nueva base de
datos. Por supuesto, no se realiza una migracin en estos casos.

datos objetivo

Genera estructuras de tablas acorde con los tipos de

Desactiva
durante el proceso de copia

Instala

automticamente

automticamente

triggers

la

secuencia

secuencias

asociada

despus de copiar una tabla

rowid

Soporta la generacin de bases de datos cruzadas

Soporta la conversin de tipos de datos geomtricos


permitiendo una fcil migracin de motores espaciales

keys

Soporta la construccin de ndices post-copia y foreign

Soporta la compilacin de triggers post-copia y SPL

Comprobacin del Esquema Multi-Bases de Datos


Una vez se empieza una migracin, se puede generar un esquema XML
desde la base de datos original. Esto permite traducir el modelo de base de
datos a cualquier motor.
Sin embargo, qu pasa si el sistema contina operando e incluso sufre
cambios estructurales durante el proceso de migracin? La comprobacin
del esquema compara las bases de datos de tipos diferentes y muestra las
diferencia entre estructuras de tablas, claves primarias, foreign keys, ndices
y restricciones. Tambin, se puede hacer una comparacin con el modelo de
esquema maestro en XML. En ambos casos, se aplicar una propuesta de
cambios para asegurar que se muestra la misma estructura fsica.
Soporte al Desarrollo, Test, Pre-Produccin y Produccin
Las herramientas de migracin estn construidas alrededor de un
diccionario de base de datos. El diccionario permite a los programadores
almacenar su cdigo (sentencias DML, queries SQL, cdigo SPL, datos de
tablas iniciales, etc.), el cual constituye la base de datos de las aplicaciones.
Una vez almacenado en el diccionario, un grupo de comandos web o
comandos shell permite la compilacin, el chequeo o la salida de nuevas
actualizaciones para una base de datos o un grupo.
Sintaxis Xml-Xsql
El motor de traduccin de triggers DDL, DML, SPL proporciona una
estructura con una sintaxis comn XML, en la cual los desarrolladores

pueden escribir aplicaciones en una sintaxis independiente de la propia del


motor de base de datos.
XML-XSQL Syntax Available
DDL
El proceso de copia de una base de datos puede crear automticamente
un modelo XML que genera el Data Definition Language (DDL) de la base de
datos. Se pueden ver todas las tablas y objetos definidos en una definicin
natural XML que permitir la traduccin on-line a la base de datos deseada.
DDL - XML Transformation Sample
DML
Una gramtica XML permite escribir sentencias SQL independientes de la
base de datos.
Procedimientos (Spl)
La lgica de negocio escrita en procedimientos (SPL), funciones o triggers
debe ser reescrita manualmente en XML. Nosotros ofrecemos este servicio o
enseamos como hacerlo. A partir de entonces, se podr traducir
automticamente la lgica al motor que se desee.
Este paso tiene una mayor ventaja sobre la codificacin manual
convencional, ya que el motor de traduccin Axional XSQL validar y
generar el cdigo apropiado sin errores humanos.
El manager de procedimientos (SPL) se encargar del status de
compilacin en las bases de datos deseadas (desarrollo, test y produccin).
Triggers
Si tiene triggers, quizs es conocedor de la complejidad y las diferencias
que supone escribir triggers independientes de la base de datos. Como en el
caso de los procedimientos (SPL), se puede utilizar gramtica XML y el
motor de de traduccin generar los triggers apropiados para la base de
datos deseada.

Tipos de Datos Geomtricos


Cuando la base de datos tiene tipos de datos geomtricos, constituye un
caso especial. Ofrecemos transportabilidad entre Oracle Spatial, DB2 Spatial
Extender, Informix Spatial DataBlade y Postgres PostGIS. La gramtica DML
ofrece una amplia gama de funciones para escribir queries independientes
de SQL y el motor de copia DB transferir los datos de forma segura.
5.3 Monitoreo y Auditora de la Base de Datos
Mediante la auditora se intenta monitorizar y registrar acciones en la base
de datos con el fin de:

Investigar actividades maliciosas (borrado de tablas,..)

Detectar privilegios incorrectamente otorgados a usuarios (que


permiten realizar acciones inapropiadas, las cuales son
detectadas).
Recoger datos sobre actividades concretas (tablas que se
actualizan, usuarios concurrentes,)
Detectar problemas con la implementacin de polticas de
seguridad (puntos dbiles que generan registros).
5.3.1 Monitoreo
La expresin monitoreo es bastante difundida en el lenguaje cotidiano y la
encontramos a menudo en las noticias de prensa en relacin con fenmenos
de inters colectivo tales como, por ejemplo, la medicin de la calidad del
aire en las ciudades, el medioambiente, el trfico urbano, las enfermedades,
etc. Podemos fcilmente constatar que en las sociedades contemporneas
se est afirmando la tendencia a someter a monitoreo fenmenos complejos
que ataen a la vida de los ciudadanos.
En Bogot, para citar un caso, existe un proyecto, denominado Bogot
Cmo Vamos, definido como un ejercicio ciudadano de seguimiento
peridico y sistemtico a los cambios en la calidad de vida de la ciudad. Esta
observacin tiene como nfasis el cumplimiento de la Administracin Distrital
al Plan de Desarrollo y se realiza en trminos de mayor acceso a bienes y
servicios de mejor calidad, teniendo en cuenta tanto indicadores tcnicos

como la percepcin ciudadana.


El Proyecto, producto de la Alianza Interinstitucional entre la Casa Editorial
El Tiempo, la Fundacin Corona y la Cmara de Comercio de Bogot, se
gest durante la campaa electoral de 1997, ante la ausencia de un ejercicio
ciudadano de rendicin de cuentas que verificara el cumplimiento de las
promesas electorales del candidato, ya elegido como alcalde, y su impacto
en la calidad de vida de la ciudad. El proyecto analiza indicadores relativos
a pobreza y equidad, finanzas pblicas, educacin, salud, servicios pblicos,
responsabilidad ciudadana, entre otros.
En el campo que nos ocupa en este curso, en cambio, el monitoreo o
seguimiento cumple la funcin de recolectar, registrar y procesar
informaciones tiles para describir sistemticamente el estado de avance de
un proyecto con el doble fin de documentar su desempeo y adquirir
conocimientos indispensables para orientar su gestin y trayectoria. Se trata
de una funcin cuya centralidad nadie pone en duda y que se est
asentando como prctica en la mayora de las administraciones pblicas,
sobre todo a partir de la afirmacin del enfoque de la gestin basada en
resultados.
De acuerdo con un reciente manual del PNUD3, se puede definir el
seguimiento como un proceso continuo por el que las partes interesadas
obtienen regularmente una retroalimentacin sobre los avances que se han
hecho para alcanzar las metas y objetivos. A diferencia de muchas
definiciones que tratan el seguimiento simplemente como la revisin de los
avances en la implementacin de acciones y actividades, la definicin que
usa este Manual se centra en la revisin de avances en relacin al logro de
los objetivos.
En otras palabras, el seguimiento en este Manual no slo se preocupa con
la cuestin de si estamos emprendiendo las acciones que dijimos que
haramos, sino que tambin pregunta si estamos avanzando para lograr los
resultados que dijimos que queramos alcanzar. La diferencia entre estos dos
enfoques es extremadamente importante. En el enfoque ms limitado, el
seguimiento se centra en supervisar los proyectos y el uso de los recursos
de la agencia. En el enfoque ms amplio, el seguimiento tambin implica
supervisar las estrategias y acciones emprendidas por otros, ya sean
asociados o no, y decidir las nuevas estrategias y acciones que se deben
llevar a cabo para asegurar el avance hacia los resultados ms importantes.

5.3.1.1 Monitoreo General de un Sistema Manejador de Base de Datos


Ventajas del monitoreo de un sistema manejador de base de datos:
Incrementa la Disponibilidad de una Base de Datos: Si se
produce un desastre en el modo de alta seguridad con conmutacin
automtica por error, la conmutacin por error pone en lnea
rpidamente la copia en espera de la base de datos, sin prdida de
datos. En los dems modos operativos, el administrador de bases de
datos tiene la alternativa del servicio forzado (con una posible prdida
de datos) para la copia en espera de la base de datos. Para obtener
ms informacin, vea Conmutacin de roles, ms adelante en este
tema.
Aumenta la Proteccin de los Datos: La creacin de reflejo de la
base de datos proporciona una redundancia completa o casi completa
de los datos, en funcin de si el modo de funcionamiento es el de alta
seguridad o el de alto rendimiento. Para obtener ms informacin, vea
Modos de funcionamiento, ms adelante en este tema.
Un asociado de creacin de reflejo de la base de datos que se ejecute en
SQL Server 2008 Enterprise o en versiones posteriores intentar resolver
automticamente cierto tipo de errores que impiden la lectura de una pgina
de datos. El socio que no puede leer una pgina, solicita una copia nueva al
otro socio. Si la solicitud se realiza correctamente, la copia sustituir a la
pgina que no se puede leer, de forma que se resuelve el error en la mayora
de los casos. Para obtener ms informacin, vea Reparacin de pgina
automtica (grupos de disponibilidad/creacin de reflejo de base de datos).
Mejora la Disponibilidad de la Base de Datos de
Produccin Durante las Actualizaciones: Para minimizar el tiempo de
inactividad para una base de datos reflejada, puede actualizar
secuencialmente las instancias de SQL Server que hospedan los asociados
de creacin de reflejo de la base de datos. Esto incurrir en el tiempo de
inactividad de solo una conmutacin por error nica. Esta forma de
actualizacin se denomina actualizacin gradual. Para obtener ms
informacin, vea Instalar un Service Pack en un sistema con un tiempo de
inactividad mnimo para bases de datos reflejadas.
5.3.2 Monitoreo de Espacio Libre en Discos

Como DBA una de las responsabilidades es supervisar el espacio en


disco. Siempre hay que asegurarse de que se tiene suficiente para sus
bases de datos, copias de seguridad de bases de datos y cualquier otro tipo
de archivos que va a almacenar en el servidor. Si no controla su espacio en
disco y se asegura de que tienes espacio suficiente, con el tiempo uno de
sus procesos crticos de bases de datos o componentes va a fracasar
porque no se puede asignar el espacio en disco que necesita.
Dentro de SQL Server hay un procedimiento no documentado que nos
puede ayudar a cumplir este cometido. El procedimiento es
XP_FIXEDDRIVES, no lleva parmetros ni nada y nos regresan todos los
discos a los que tiene acceso SQL Server y su espacio disponible en
Megabytes.
Es muy sencillo utilizarlo, solo basta con ejecutar el comando
xp_fixeddrives de vez en cuando desde el Analizador de consultas para
revisar la cantidad de espacio libre, aunque este mtodo consume
demasiado tiempo para los administradores de bases de datos. Un mtodo
mejor sera automatizar la ejecucin de este comando peridicamente para
revisar la cantidad de espacio libre.
Algunas tareas de DBA donde la informacin de espacio libre pueden ser
tiles:
La primera que se alerte al DBA cuando el espacio libre
cae por debajo de un umbral especfico en cualquier unidad de SQL Server.
La segunda sera la de realizar un seguimiento de la
historia el espacio libre para la gestin de la capacidad de espacio en disco.
La forma de construir un proceso para alertar a la DEA, cuando cualquiera
de las unidades de disco de SQL Server cae por debajo de un umbral
predeterminado. Para obtener la informacin xp_fixeddrives en una tabla
temporal que se utiliza el siguiente T-SQL.
create table #FreeSpace(
Drive char(1),
MB_Free int)

insert into #FreeSpace exec xp_fixeddrives


A continuacin, por cada unidad se recupera la informacin de espacio
libre a partir de esta tabla temporal y se compara con un umbral que se ha
fijado para cada unidad. Si la cantidad de espacio libre cae por debajo del
valor umbral determinado para la unidad, enviar alerta al DBA mediante
xp_sendmail. Aqu est una muestra de un cdigo que hace precisamente
eso.
declare @MB_Free int
create table #FreeSpace(
Drive char(1),
MB_Free int)
insert into #FreeSpace exec xp_fixeddrives
select @MB_Free = MB_Free from #FreeSpace where Drive = 'C'
-- Free Space on C drive Less than Threshold
if @MB_Free < 1024
exec master.dbo.xp_sendmail
@recipients ='greg.larsen@netzero.net',
@subject ='SERVER X - Fresh Space Issue on C Drive',
@message = 'Free space on C Drive has dropped below 1 gig'
Esta alerta de espacio libre bajo permite tiempo al DBA para resolver el
problema de espacio libre antes de que sea crtico, y provoque procesos
fallidos. Tenga en cuenta que el cdigo anterior tiene un umbral diferente de
espacio libre para cada unidad.
Otro uso de xp_fixeddrives podra ser la de controlar el uso de espacio en
disco a travs del tiempo. Para recopilar la informacin de espacio libre a
intervalos regulares, por ejemplo, semanal y lo almacena en una tabla de

base de datos.
Mediante la recopilacin de informacin de espacio libre en el tiempo y
almacenarlo en una tabla del servidor SQL permanente que ser capaz de
producir un cuadro de tendencias que muestra el espacio en disco extra de
consumo. Al comparar la cantidad de espacio libre entre dos puntos sobre el
grfico que ser capaz de determinar el espacio de disco consumido entre
esos intervalos.
El monitoreo del espacio disponible en disco y las tasas de crecimiento
son un par de cosas que un DBA debe realizar. Sin vigilancia se corre el
riesgo de quedarse sin espacio y causando graves problemas para su
aplicacin.
5.3.1.3 Monitoreo de Logs
Log
Registro oficial de eventos durante un periodo de tiempo en particular.
Para los profesionales en seguridad informtica un log es usado para
registrar datos o informacin sobre quin, que, cuando, donde y por qu de
un evento que ocurre para un dispositivo en particular o aplicacin.
La mayora de los logs son almacenados o desplegados en el formato
estndar ASCII. De esta forma logs generados por un dispositivo en
particular puede ser ledo y desplegado en otro diferente.
Propsito de los Logs
Todos los sistemas pueden verse comprometidos por un intruso, de
manera local o remota.
La seguridad no slo radica en la prevencin, sino tambin en la
identificacin. Entre menos tiempo haya pasado desde la identificacin de
intrusin, el dao ser menor; para lograr esto es importante hacer un
constante monitoreo del sistema.
De cualquier forma que se realice una proteccin de Unix debe incluir el
monitoreo y revisin de LOGS de una forma comprensiva, precisa y
cuidadosa.

Los logs tienen numerosos propsitos:

Ayudar a resolver problemas de todo tipo

Proveer de avisos tempranos de abusos del sistema.

de forensia.

Despus de una cada del sistema, proporcionan datos

Como evidencia legal

Monitoreo en Bitcoras
Generalmente no deseamos permitir a los usuarios ver los archivos de
bitcoras de un servidor, y especialmente no queremos que sean capaces de
modificarlos o borrarlos. Normalmente la mayora de los archivos de
bitcoras sern posedos por el usuario y grupo root, y no tendrn permisos
asignados para otros, as que en la mayora de los casos el nico usuario
capaz de modificar los archivos de bitcoras ser el usuario root.
Debido a la cantidad de informacin que se genera en la bitcoras,
siempre es bueno adoptar algn sistema automtico de monitoreo, que
levante las alarmas necesarias para cuando algn evento extrao suceda.
El sistema operativo Debian utiliza LogCheck para realizar el anlisis y
monitoreo de bitcoras, RedHat emplea LogWatch, etc.
5.3.1.4 Monitoreo de Memoria Compartida
Pga de Oracle (rea Global de Programa)
Un PGA es una regin de memoria que contiene datos e informacin de
control para un proceso de servidor. Es la memoria no compartida creada por
la base de datos Oracle cuando un proceso de servidor se ha iniciado. El
acceso a la PGA es exclusivo para el proceso del servidor. Hay un PGA para
cada proceso de servidor. Procesos en segundo plano tambin se asignan
sus propios PGA. La memoria total utilizada por todos los PGAs individuales
se conoce como el ejemplo total de memoria PGA, y la recogida de PGAs
individuales se refiere como el ejemplo total de la PGA, o simplemente
instancia de la PGA. Puede utilizar los parmetros de inicializacin de base
de datos para definir el tamao de la instancia de la PGA, no PGA

individuales.
El PGA puede ser crtico para el rendimiento, especialmente si la
aplicacin est haciendo un gran nmero de clases. Operaciones de
ordenacin se produce si utiliza ORDER BY y GROUP BY comandos en las
sentencias SQL.
SGA de Oracle (Sistema de rea Global)
Es un conjunto de reas de memoria compartida que se dedican a un
Orculo "instancia" (un ejemplo es los programas de bases de datos y la
memoria RAM).
Sirve para facilitar la transferencia de informacin entre usuarios y
tambin almacena la informacin estructural de la BD ms frecuentemente
requerida.
En los sistemas de bases de datos desarrollados por la Corporacin
Oracle , el rea global del sistema (SGA) forma parte de la memoria RAM
compartida por todos los procesos que pertenecen a una sola base de datos
Oracle ejemplo. El SGA contiene toda la informacin necesaria para la
operacin de la instancia.
La SGA se divide en varias partes:
1. Buffers de Base de Datos, Database Buffer Cache
Es el cach que almacena los bloques de datos ledos de los segmentos
de datos de la BD, tales como tablas, ndices y clsteres. Los bloques
modificados se llamas bloques sucios. El tamao de buffer cach se fija por
el parmetro DB_BLOCK_BUFFERS del fichero init.ora.

Plan de ejecucin de la sentencia SQL.

Texto de la sentencia.

Lista de objetos referenciados.

Comprobar si la sentencia se encuentra en el rea compartida.

Comprobar si los objetos referenciados son los mismos.

Comprobar
referenciados.

si

el

usuario

tiene

acceso

los

objetos

Como el tamao del buffer suele ser pequeo para almacenar todos los
bloques de datos leidos, su gestin se hace mediante el algoritmo LRU.
2. Buffer Redo Log
Los registros Redo describen los cambios realizados en la BD y son
escritos en los ficheros redo log para que puedan ser utilizados en las
operaciones de recuperacin hacia adelante, roll-forward, durante las
recuperaciones de la BD. Pero antes de ser escritos en los ficheros redo log
son escritos en un cach de la SGA llamado redo log buffer. El servidor
escribe peridicamente los registros redo log en los ficheros redo log.
El tamao del buffer redo log se fija por el parmetro LOG_BUFFER.
3. rea de SQL Compartido, Shared SQL Pool
En esta zona se encuentran las sentencias SQL que han sido analizadas.
El anlisis sintctico de las sentencias SQL lleva su tiempo y Oracle
mantiene las estructuras asociadas a cada sentencia SQL analizada durante
el tiempo que pueda para ver si puede reutilizarlas. Antes de analizar una
sentencia SQL, Oracle mira a ver si encuentra otra sentencia exactamente
igual en la zona de SQL compartido. Si es as, no la analiza y pasa
directamente a ejecutar la que mantiene en memoria. De esta manera se
premia la uniformidad en la programacin de las aplicaciones. La igualdad se
entiende que es lexicogrfica, espacios en blanco y variables incluidas. El
contenido de la zona de SQL compartido es:
Los pasos de procesamiento de cada peticin de anlisis de una
sentencia SQL son:
Si no, la sentencia es nueva, se analiza y los datos de anlisis se
almacenan en la zona de SQL compartida.
Tambin se almacena en la zona de SQL compartido el cach del
diccionario. La informacin sobre los objetos de la BD se encuentra
almacenada en las tablas del diccionario. Cuando esta informacin se
necesita, se leen las tablas del diccionario y su informacin se guarda en el

cach del diccionario de la SGA.


Este cach tambin se administra mediante el algoritmo LRU. El tamao
del cach est gestionado internamente por el servidor, pero es parte del
shared pool, cuyo tamao viene determinado por el parmetro
SHARED_POOL_SIZE.
5.3.1.5 Monitoreo de Base de Datos
Es el proceso que permite medir, asegurar, demostrar, monitorear y
registrar los accesos a la informacin almacenada en las bases de datos
incluyendo la capacidad de determinar:

Quin accede a los datos

Cundo se accedi a los datos

Desde qu tipo de dispositivo/aplicacin

Desde que ubicacin en la Red

Cul fue la sentencia SQL ejecutada

Cul fue el efecto del acceso a la base de datos

Es uno de los procesos fundamentales para apoyar la responsabilidad


delegada a IT por la organizacin frente a las regulaciones y su entorno de
negocios o actividad.
Objetivos Generales de la Auditora de Base de Datos
Disponer de mecanismos que permitan tener trazas de auditora
completas y automticas relacionadas con el acceso a las bases de datos
incluyendo la capacidad de generar alertas con el objetivo de:
Mitigar los riesgos asociados con el manejo inadecuado de los
datos

Apoyar el cumplimiento regulatorio

Satisfacer los requerimientos de los auditores

Evitar acciones criminales

Evitar multas por incumplimiento

La importancia de la auditora del entorno de bases de datos radica en


que es el punto de partida para poder realizar la auditora de las aplicaciones
que utiliza esta tecnologa.
Importancia de la Auditora de Base de Datos
Toda la informacin financiera de la organizacin reside en
bases de datos y deben existir controles relacionados con el
acceso a las mismas
Se debe poder demostrar la integridad de la informacin
almacenada en las bases de datos
Las organizaciones deben mitigar los riesgos asociados a la
prdida de datos y a la fuga de informacin
La informacin confidencial de los clientes, son responsabilidad
de las organizaciones
Los datos convertidos en informacin a travs de bases de
datos y procesos de negocios representan el negocio
Las organizaciones deben tomar medidas mucho ms all de
asegurar sus datos
Deben monitorearse perfectamente a fin de conocer quin o qu les hizo
exactamente qu, cundo y cmo.
Datos a Evaluar por Medio de la Auditora de la Base de Datos:

Definicin de estructuras fsicas y lgicas de las bases de datos

Control de carga y mantenimiento de las bases de datos

Integridad de los datos y proteccin de accesos

Estndares para anlisis y programacin en el uso de bases de

datos

Procedimientos de respaldo y de recuperacin de datos

Aspectos Claves
No se debe Comprometer el Desempeo de las Bases de
Datos
o Soportar diferentes esquemas de auditora.
o Se debe tomar en cuenta el tamao de las bases de datos
a auditar y los posibles SLA establecidos.

Segregacin de Funciones
o El sistema de auditora de base de datos no puede ser
administrado por los DBA del rea de IT.

Proveer Valor a la Operacin del Negocio


o Informacin para auditora y seguridad.
o Informacin para apoyar la toma de decisiones de la
organizacin.
o Informacin
organizacin.

para

mejorar

el

desempeo

de

la

Auditora Completa y Extensiva


o Cubrir gran cantidad de manejadores de bases de datos.
o Estandarizar los reportes y reglas de auditora.
5.3.1.6 Monitoreo de Modos de Operacin

Las operaciones forman parte de las actividades diarias relacionadas con


el hardware y software utilizado en las organizaciones. Esta funcin es
particularmente importante cuando se ejecutan tares de cmputos
centralizados y destacan las siguientes:

1. Administracin de Recursos: La administracin es responsable


de asegurar que los recursos necesarios estn disponibles para
realizar las actividades.
2. Normas y Procedimientos: La administracin es responsable por
establecer las normas y los procedimientos necesarios para todas las
operaciones en conformidad con las estrategias y polticas generales
del negocio.
3. Monitoreo de los Procesos de Operacin: La administracin es
responsable de monitorear y medir la efectividad y eficiencia de los
procesos de operacin. La administracin es responsable de
monitorear y medir la efectividad y eficiencia de los procesos de
operacin, de modo que los procesos sean mejorados a travs del
tiempo.
4. Operaciones de Plataforma de Hardware
5. Soporte Tcnico
6. Cronogramas de Ejecucin de Trabajos
7. Control de Entrada/Salida de Datos
8. Aseguramiento de Calidad
9. Control de Cambios
10. Administracin de la Configuracin
11. Funcin de Bibliotecario
12. Procedimientos de Administracin de Problemas
13. Procedimientos para Monitorear el Uso Eficaz y Eficiente de
los Recursos
14. Administracin de la Seguridad Fsica y del Ambiente
15. Administracin de la Seguridad de Informacin

5.3.1.7 Monitoreo de Espacios Espejeados


La administracin de espejeado protege la integridad de los datos
mediante el almacenamiento de copias de los datos en varios discos. El tipo
e grupo de discos determina los niveles de creacin de reflejo con el que se
crean los archivos en un grupo de discos.
Cuando se crea un grupo de discos, se especifica un tipo de grupo de
discos ASM basado en los siguientes 3 niveles de redundancia.

Normal de 2 vas de reflejo

Alta de 3 vas de reflejo

Externa a no utilizar la creacin de reflejos ASM


5.3.2 Auditora

Es el proceso que permite medir, asegurar, demostrar, monitorear y


registrar los accesos a la informacin almacenada en las bases de datos
incluyendo la capacidad de determinar:

Quin accede a los datos

Cundo se accedi a los datos

Desde qu tipo de dispositivo/aplicacin

Desde que ubicacin en la Red

Cul fue la sentencia SQL ejecutada

Cul fue el efecto del acceso a la base de datos

La auditora se ha convertido en una herramienta importante en los


ltimos 10 aos, para el anlisis de las violaciones de datos.
La auditora es el control y registro de las acciones de la base de datos de
usuarios seleccionados, tanto de los usuarios de bases de datos y no
usuarios de la base de datos.

Normalmente se utiliza la auditora para realizar las siguientes actividades:


Activar la Rendicin de Cuentas de las Acciones: Estas
incluyen acciones tomadas de un determinado esquema, tabla o fila,
o que afecten a un contenido especfico.
Disuadir a los usuarios (o los otros, como intrusos) de acciones
inapropiadas basadas en la rendicin de cuentas.

Investigar actividades sospechosas.


5.3.2.1 Habilitacin y Deshabilitar el Modo de Auditora

La activacin de la auditora en Oracle Database viene definida por el


valor del parmetro: audit_trail. Para comprobar si la auditora de la base de
datos est activada ejecutaremos el siguiente comando SQL:
select name, value
from v$parameter
where name like 'audit_trail'
Posibles valores del parmetro AUDIT_TRAIL:
Para activar la auditora:
ALTER SYSTEM SET audit_trail = "DB" SCOPE=SPFILE;
Para desactivar la auditora ejecutaremos el siguiente comando:
ALTER SYSTEM SET audit_trail = "NONE" SCOPE=SPFILE;
DBA_AUDIT_TRAIL: Muestra la auditora estndar (de la tabla
AUD$) relativa al usuario actual. Es una lista de todas las entradas
en la tabla SYS.AUD$ colectada por el comando audit.
DBA_AUDIT_OBJECT: Lista las opciones de entrada de
auditoras para auditar objetos de la base de datos.

DBA_AUDIT_EXISTS: Es una lista de entradas de auditora

generadas por la opcin EXISTS en el comando AUDIT.


DBA_AUDIT_SESSION: Muestra las entradas de auditora
generadas por conexiones o desconexiones de sesiones.
DBA_AUDIT_STATEMENT: Es una lista de entradas de
auditoras, con la informacin recolectada de las opciones de
sentencias en el comando audit.
Las principales vistas para obtener resultados de la auditora, son las
siguientes:
Funcionamiento del Comando AUDIT
Permite iniciar los tipos de auditora que a continuacin se detallan. Este
comando puede funcionar aunque no est activada la auditora de la base de
datos, pero no dejara constancia, para que funcione correctamente es
necesario que la auditora est activada.
Sintaxis:
AUDIT
{sql_statement_clause \ schema_object_clause | NETWORK}
[BY {SESSION \ ACCES}]
[WHENEVER [NOT] SUCCESFUL];
Funcionamiento del Comando NOAUDIT
Se utiliza para detener la actividad de auditora que se haba activado
previamente con la instruccin AUDIT.
Sintaxis:
NOAUDIT
{sql_statement_clause | schema_object_clause | NETWORK}
[WHENEVER [NOT] SUCCESFUL];

5.3.2.2 Consultas de las Tablas Vistas con Informacin de la Auditora


El diccionario de la BD contiene una tabla llamada SYS.AUD$ que puede
contener informacin sobre las operaciones realizadas por los usuarios.
Para ms fcil manejo de esta tabla, existen una serie de vistas que se
crean ejecutando el script de SQL CATAUDIT.SQL que son de mucha utilidad
a la hora de visualizar la informacin recogida. Esas vistas se borran con el
script CATNOAUD.SQL
Dependiendo de los objetos auditados se recoge distinto tipo de
informacin. En cualquier caso, siempre se recoge sobre el usuario, sesin,
terminal, objeto accedido, operacin realizada y finalizacin de la operacin.
5.4 Herramientas de Software y Hardware para Monitoreo y
Administracin Automtica
Monitorizar es una tarea imprescindible del administrador. Obviamente no
podemos monitorizar en todo momento y debemos hacerlo con cierta
regularidad y de la manera ms automatizada posible. Existen multitud de
programas que permiten monitorizar, no solo nuestro servidor de base de
datos, si no mltiples servicios en redes de toda clase.
Herramientas:
1. Consolas Administrativas Ilimitadas.
2. Consultas Personalizadas para agregar dentro de la Interfaz en
forma Ilimitada.
3. Base de datos Abierta para integraciones personalizadas de
otros dispositivos (equipos de comunicacin, servidores etc.

Control de Activos Tangibles y no Tangibles.

Capacidad de cruzar informacin automtica recolectada con


la informacin insertada en forma manual.
Creacin y personalizacin en forma ilimitada por consultas
Editables que nos permitir adaptar necesidades reales que
requiera la CMDB.

4. Bitcora de Uso de software por Da y Mes de los aplicativos


brindado los minutos y horas de su utilizacin por PC.
La investigacin nos llev a adquirir o reforzar un poco ms los
conocimientos de los temas que fueron de gran utilidad. Ahora nos queda
claro el porqu de la importancia de la seguridad de la base de datos, ya que
en la base de datos acceden varios usuarios y hacen diferentes operaciones
en ella por eso se necesita de ayuda del monitoreo general de la base de
datos para corregir las fallas.
No olvidando tambin que la auditora es de gran apoyo ya que es el
proceso que permite asegurar, monitorear y hacer registros de los accesos a
la informacin almacenada en la base de datos.

Você também pode gostar