lunes, 29 de abril de 2013

Replicación


1.    Que es Replica (replication) de una base de datos .

El proceso de replicación de una base de datos consiste en replicar las consultas de actualización (tanto DML como DDL) en una base de datos maestra (master) sobre una o varias bases de datos esclavas (slave), de manera que tengamos una copia de las mismas a lo largo del tiempo.
Las réplicas locales consisten en un “duplicado” de las bases de datos del servidor en el disco duro de su computadora, es decir, en el servidor local.

Estas bases de datos contienen además de los documentos, un identificador que permitirá posteriormente actualizar sus contenidos, tanto en el servidor como en las bases de datos locales.


2.    Beneficios de la réplica de Datos en un DBMS.
 
·         Disponibilidad.-El modo en que la replicación incrementa la disponibilidad de los datos para los usuarios y aplicaciones.

·         Fiabilidad.- Al haber múltiples copias de los datos disponibles en el sistema, se dispone de un mecanismo excelente de recuperación cuando existan fallos en nodos.

·         Rendimiento.- Se mejora para las transacciones de consulta cuando se introduce la replicación en un sistema que estuviera aquejado de sobrecarga de recursos centralizados.

·         Reducción de la carga.- Modo en que se utiliza la replicación para distribuir datos en ubicaciones remotas

·         Copia de seguridad:En condiciones normales, una base de datos replicada de forma correcta es válida como copia de seguridad.Además se puede realizar copias de seguridad usando un servidor esclavo para así no interferir al servidor maestro.

·         Mejorar la escalabilidad:Podríamos configurar nuestras aplicaciones para balancear las consultas de lectura (SELECT) entre los servidores replicados.

·         Alta disponibilidad:En aplicaciones y entornos en donde sólo se requieren lecturas, podríamos 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.

·         Las replicas locales constituyen una ayuda especialmente útil cuando se desea trabajar en una computadora que en ocasiones no estará conectada a la red donde se encuentra el servidor en el que reside el curso.


3.    Ejemplo de una replicación de base de datos .
 
 

 
Fuentes:


 

sábado, 27 de abril de 2013

Espejeo


1. ¿Qué es  Espejeo (mirroring)?

Es una configuración donde dos o tres servidores de dase de datos, ejecutándose 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 cuál de los 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 configuración 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 Compañeros (Partners).


2 .Beneficios del espejeo de Datos en un DBMS.

 -La gran ventaja de este método es que permite el failover automático sin intervención humana (siempre que se instale un tercer servidor witness) es decir el proceso de restaurar un sistema al existir un error.
-Al crear un mirror se tiene una base de datos de respaldo.


3. Como se hace una  Activación de espejeo en un DBMS.

En Sql:
1.- Click derecho sobre la base de datos
2.- Tareas
3.- Seleccionamos la opción Reflejar (Mirroring)
4.- Seleccione la instancia principal y la de mirroring.


Recomendaciones:
  • En la base de datos Mirroring debe estar en recuperación no recovery.
  •  El firewall debe permitir los puertos usados.
  • Ver que los protocolos TCP IP están habilitados con el SQL Server Configuration Manager. 

En Mysql:
mysqldump.exe --opt --password=123 --user=root mi_db  > c:\replica_db.sql


4. Ejemplos de  Creación de espacios de disco con espejo.





Fuentes:


viernes, 26 de abril de 2013

Seguridad


Cuáles son los problemas de seguridad que se pueden presentar en relación a las bases de datos  y como manejan las posibles soluciones  los administradores de las bases de datos.


La información de toda empresa es importante, aunque unos datos lo son más que otros, por tal motivo se debe considerar el control de acceso a los mismos, no todos los usuarios pueden visualizar alguna información, por tal motivo para que un sistema de base de datos sea confiable debe mantener un grado de seguridad que garantice la autenticación y protección de los datos. En un banco por ejemplo, el personal de nóminas sólo necesita ver la parte de la base de datos que tiene información acerca de los distintos empleados del banco y no a otro tipo de información.


Aspectos:
  • Aspectos legales, sociales y éticos
  • Políticas de la empresa, niveles de información pública y privada
  • Controles de tipo físico, acceso a las instalaciones
  • Identificación de usuarios: voz, retina del ojo, etc.
  • Controles de sistema operativos


Medidas de seguridad
Físicas: Controlar el acceso al equipo. Tarjetas de acceso, etc
Personal: Acceso sólo del personal autorizado. Evitar sobornos, etc.
SO: Seguridad a nivel de SO
SGBD: Uso herramientas de seguridad que proporcione el SGBD. Perfiles de usuario, vistas, restricciones de uso de vistas, etc.
Un  SMBD  cuenta  con  un  subsistema  de  seguridad  y  autorización  que  se encarga de garantizar la seguridad de porciones de la BD contra el acceso no autorizado.
Identificar y  autorizar  a los usuarios: uso de códigos de acceso y palabras claves, exámenes, impresiones  digitales,  reconocimiento  de  voz,  barrido de la retina, etc
Autorización: usar  derechos  de  acceso  dados  por el terminal,  por  la operación que puede realizar o por la hora del día.
Uso de técnicas de cifrado: para proteger datos en Base de Datos distribuidas o con acceso por red o internet.
Diferentes tipos de cuentas: En especial del ABD  con   permisos  para: creación de cuentas,   concesión  y  revocación   de  privilegios y  asignación  de   los niveles de seguridad.



Soluciones:
Autenticación: Se examinan las capacidades de log-on único a la red, autenticación y seguridad. Además, se proporciona información sobre el interfaz Security Support Provider Interface (SSPI) para obtener servicios de seguridad integrados del sistema operativo. Kerberos es el protocolo por defecto en Windows 2000 para autenticación en red.
Sistema de Archivos Encriptado: El Sistema de Archivos Encriptado (Encrypted File System EFS) proporciona la tecnología principal de encriptación de archivos para almacenar archivos del sistema de archivos NTFS de Windows NT encriptados en disco.
Seguridad IP: Windows IP Security, del Internet Engineering Task Force, proporciona a los administradores de redes un elemento estratégico de defensa para la protección de sus redes.
Servicios de seguridad en Windows 2000: Se examinan los procedimientos relacionados con la gestión de cuentas, autenticación de red a nivel corporativo, así como el Editor de Políticas de Seguridad.
Tarjetas Inteligentes: Se examinan los procesos de autenticación utilizando tarjetas inteligentes y los protocolos, servicios y especificaciones asociadas.
Tecnologías de Clave Pública: Se revisa la infraestructura de clave pública incluida en los sistemas operativos de Microsoft y se proporciona información sobre criptografía.


Fuentes:
http://html.rincondelvago.com/seguridad-en-bases-de-datos.html
http://es.slideshare.net/Drakonis11/integridad-y-seguridad-en-las-bases-de-datos-presentation




jueves, 18 de abril de 2013

Rendimiento de una base de datos

1. Técnicas de estimación para medir el rendimiento de la base de datos.

El motivo del gran rendimiento es que estas tablas que tienen cientos de millones de registros están diseñadas y entendidas para trabajar con MySql, si diseñamos considerando lo que puede y no puede hacer el motor de base de datos probablemente consigamos un buen rendimiento, cualquier sistema de administración de Bases de Datos es distinto con respecto a los otros, lo que funciona bien y es eficaz en Oracle ó PostgreSQL no debe ser lo que mayor rendimiento ofrezca en Mysql.
Por ello para trabajar con tablas muy grandes debemos tener en cuenta tres claves: Buffers, Índices y Consultas.

Buffer- Es una ubicación de la memoria reservada para el almacenamiento temporal de información digital.

Índices.- Son usados para encontrar rápidamente los registros que tengan un determinado valor en alguna de sus columnas .

Consultas.-Uno de los pasos más importantes a la hora de optimizar nuestras consultas de MySql es identificar cuáles son las que están causando problemas.


2. Tecnicas de estimacion del tiempo de respuesta respuesta.

El timpo que tarda el DB2 en procesar una peticion SQL se divide en :
1. Tiempo de ejecucuion de las instrucciones  correspondientes, es decir el tiempo de consumo del CPU.
2. Tiempo esperando algun suceso. Aqui puede haber multiples causas, peor las mas importantes son :
a) Tiempo de espera de las operaciones E/S, es decir espera por los accesos al disco.
b) Tiempo de espera por algun recurso que esta blokeado. Estos tiempos de espera los registra el DB2 Performance Monitor en el epigrafe de tiempos de clase.

En resumen se estima el tiempo de respuesta de lso programas en sus peticiones de datos, para lso cual se toman en cuenta tres componentes: CPU,E/S y bloqueos.


En esta imágen se muestran  distintos puntos de vista para definir  el tiempo de respuesta de una transaccion en linea.





Bibliografía:

lunes, 15 de abril de 2013

Manejo de índices

Investigar que es un archivo índice, tipos de índices


Índice de archivo.-El índice de una base de datos es una estructura de datos que mejora la velocidad de las operaciones, permitiendo un rápido acceso a los registros de una tabla en una base de datos. Al aumentar drástica mente la velocidad de acceso, se suelen usar sobre aquellos campos sobre los cuales se hacen frecuentes búsquedas.


Tipos de Índices
 
  • Un índice que sí es especial es el llamado PRIMARY KEY. Se trata de un índice  diseñado para consultas especialmente rápidas. Todos sus campos deben ser UNICOS y no admite NULL.
  • Un índice UNIQUE es aquel que no permite almacenar dos valores iguales.
  • Los índices FULL TEXT permiten realizar búsquedas de palabras. Puedes crear índices FULLTEXT sobre columnas tipo CHAR, VARCHAR o TEXT.

 
Index en mysql:
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
    [USING index_type]
    ON tbl_name (index_col_name,...)
index_col_name:
    col_name [(length)] [ASC | DESC]


Index en Oracle :
CREATE [UNIQUE|BITMAP] INDEX [esquema.]index_name
      ON [esquema.]table_name [tbl_alias]
         (col [ASC | DESC]) index_clause index_attribs



Index creados en la base de datos "Veterinaria":


 

 
 






http://www.slideshare.net/luismy_martinez/archivo-secuencialindexado



jueves, 11 de abril de 2013

Modos de operación de un sgbd


  1.  Investigar los conceptos  de roolback, commit, recovery de un sgbd.
Rollback.- Es una operación que devuelve a la base de datos a algún 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 después de que se han realizado operaciones erróneas. 
Commit (acción 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 transacción de base de datos.
Una sentencia COMMIT en SQL finaliza una transacción de base de datos dentro de un sistema gestor de base de datos relacional (RDBMS) y pone visibles todos los cambios a otros usuarios.
Recovery.- Los procesos de restauración (restore o recovery) de los que todo SGBD dispone pueden reconstruir la BD y darle el estado consistente y correcto anterior al incidente. Esto se acostumbra a hacer gracias a la obtención de copias periódicas de los datos (se denominan copias de seguridad o back-up) y mediante el mantenimiento continuo de un diario (log) donde el SGBD va anotando todas las escrituras que se hacen en la BD.


           2.    Investigar cómo se realizan dichas operaciones en mysql y oracle.

Rollback en mysql:
CREATE TABLE AS SELECT emp_name employee_id, apellidos FROM Empleados;
CREAR empname_ix índice único en emp_name (employee_id);
CREATE TABLE AS SELECT emp_sal employee_id, sueldo de los empleados;
CREAR empsal_ix índice único en emp_sal (employee_id);
CREATE TABLE AS SELECT emp_job employee_id, job_id DESDE empleados;
CREAR empjobid_ix índice único en emp_job (employee_id);

DECLARAR
   NÚMERO emp_id (6);
   emp_lastname VARCHAR2 (25);
   NÚMERO emp_salary (8,2);
   emp_jobid VARCHAR2 (10);
COMENZAR
   SELECT employee_id, apellidos, salario, job_id EN emp_id, emp_lastname,
     emp_salary, emp_jobid DESDE empleados DONDE employee_id = 120;
   INSERT INTO VALORES emp_name (emp_id, emp_lastname);
   INSERT INTO VALORES emp_sal (emp_id, emp_salary);
   INSERT INTO VALORES emp_job (emp_id, emp_jobid);
EXCEPCIÓN
   CUANDO ENTONCES DUP_VAL_ON_INDEX
      ROLLBACK;
      DBMS_OUTPUT.PUT_LINE ('Inserta han revertido');
END;


Rollback en Oracle:
begin
.----
----
savepoint inicio;
---
insert...
update ...
delete ...
...
rollback to savepoint inicio

Commit en mysql:
Crear cuentas (NÚMERO DE MESA account_id (6), NÚMERO balance (10,2));
INSERT INTO VALORES cuentas (7715, 6350,00);
INSERT INTO VALORES cuentas (7720, 5100,50);
DECLARAR
  la transferencia del número (8,2): = 250;
COMENZAR
  Actualizar las cuentas de saldo = saldo SET - transferir DONDE account_id = 7715;
  Cuentas UPDATE SET saldo = saldo + transferencia DONDE account_id = 7720;
  COMMIT 'Traslado Desde 7715 hasta 7720 "Comentario Escriba NOWAIT inmediata;
END;
/

Commit en Oracle:     

Libera los recursos bloqueados por cualquier actualización hecha con la transacción actual.
COMMIT [WORK] [COMMENT 'comment_text']
COMMIT [WORK] [FORCE 'force_text' [,int] ]

Si ejecutamos:
DELETE FROM T_PEDIDOS WHERE COD_PEDIDO=15;
COMMIT;

Borrar un registro y guarda los cambios.



Recovery en msql:

1. Primero abrimos una ventana de comandos de Windows (menuInicio =>Ejecutar=> cmd).
2.  Ya abierta dicha ventana nos situamos en la carpeta de los binarios de mySQL,
pues ahí se encuentra el ejecutable de mysqldump, la cual se encuentra en la
carpeta bin del directorio de instalación ("c:\Archivos de programa\MySQL\MySQL Server 5.1\bin").
3.  A continuación ejecutamos el programa mysqldump con las opciones que mas
nos convengan.
mysqldump --opt -a --single-transaction -h localhost -u root -pmiServer --databases
bdd_practica1 > c:\Users\G10\backup_bdd_practica1.sql

Recovery en Oracle:
SQL> startup mount;
SQL> recover automatic database;
SQL> alter database open;