Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
tal vez valga la pena el costo relativamente pequeo de una unidad de disco, para
evitar lo que de otra manera sera 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 de los 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
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
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.
Si hay un fallo como la cada del disco, el sistema restaura una copia se
2.
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
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
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.
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.
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.
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.
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:
Aspectos Claves
Segregacin de Funciones
5.
Soporte Tcnico
6.
7.
8.
Aseguramiento de Calidad
9.
Control de Cambios
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:
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.
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.