martes, 7 de mayo de 2013

Actividad de espejeo


Realizar ejercicio de activación de espejeo de datos en un SGBD
¿Qué es Espejeo?

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).


 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.

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. 


Pasos para realizarl el Espejeo.
Database Mirroring aparece en la versión 2005 y  es la evolución de Log Shipping. Tal como su nombre lo indica,  sirve para tener una base de datos “espejada” en otro servidor.  Puede trabajar de 3 Formas:


 De foma más simple, la principal diferencia entre la configuración síncrona o asíncrona es:
De modo síncrono, el servidor principal espera a que las transacciones hagan commit en el servidor espejo para poder continuar.
De modo asíncrono, el servidor principal trabaja sin esperar al secundario.
Algunas diferencias entre LogShipping y Mirroring (Hay muchas más, pero aquí están las que más me llaman la atención):
Database Mirroring es capaz de configurar una conexión segura entre ambos puntos.
Database Mirroring provee la capacidad de hacer failover automático.
Log Shipping no hace ninguna de las dos anteriores.
Para configurar Database Mirroring se puede hacer a través del asistente o se puede hacer a través de instrucciones en t-sql. En este caso, utilizaremos el asistente para ahorrar tiempo.
Antes de partir la configuración nos debemos asegurar que la base de datos esté en modo de recuperación Full y debemos crear un respaldo de la base de datos del servidor primario y restaurarla con la opción WITH NORECOVERYen el servidor que será espejo.
Esta configuración requiere algunas configuraciones en el firewall de ambos equipos. En el servidor principal y en el espejo se debe abrir el puerto TCP 5022. Ahora, si se decide usar otro puerto, hay que estar seguro que el puerto está disponible y se puede abrir para las conexiones.
Una vez que se tiene la configuración previa lista, se hace el asistente que permitirá configurar el mirroring




Abrir asistente
En la ventana principal se debe iniciar el asistente



Ventana Principal
Se inicia el asistente




Inicio del asistente
Se puede o no configurar un testigo. El testigo servirá para poder tener un failover automático. En este artículo no configuraré un testigo.



Configuracion del testigo
Configuración del equipo principal. Se puede cambiar el puerto (pero recuerden que ya habíamos abierto el puerto 5022). Además, se puede seleccionar si se quiere cifrar o no la conexión.



Configuracion del primario
Para la configuración del secundario es necesario conectarse antes (recordar abrir el puerto 1422 en el secundario). La ventana de configuración es exactamente igual al primario.



Configuracion del Secundario
El servicio debe estar configurado con una cuenta de dominio. Se debe indicar la cuenta del servicio del servidor primario y del espejo.




Cuentas de servicio
Para Finalizar:


Finalizar
Al momento de finalizar, se inicia el proceso de configuración del mirroring. Si aparece este mensaje, es porque está todo bien



Progreso de Configuracion
Al terminar el asistente, aparecerá una ventana así en la cual nos preguntará si queremos iniciar Mirroring al tiro o no. En mi caso, no  configuré el testigo, por lo que no activaré el mirroring para hacer una configuración antes de partir.



Iniciar mirroring
Antes de comenzar el mirroring, lo configuré como asíncrono y luego inicié el mirroring



Mirroring Funcionando

Si por algún motivo, te aparece el error 1478 cuando echas a andar el mirroring, es porque debes respaldar el transaction log del servidor primario y luego tienes que hacer un restore with norecovery en el servidor espejo. Luego de eso, ya puedes echar a andar el mirroring.



Equipo:
Chavez Atienzo Edgar Omar
Gutiérrez García Cecilia Valeria

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;







miércoles, 20 de marzo de 2013

Operación y mantenibilidad


Crear bitácoras para el sistema ficticio de la tercera unidad ( clinica veterinaria) , utilizando las herramientas propias del DBMS.











Investigar que otras soluciones en la nube existen para manejo de bases de datos y publicar en el blog.

Nube híbrida
La nube híbrida combina nubes públicas y privadas y permite a las organizaciones aprovechar los beneficios de ambas. El ambiente computacional más flexible y rentable de hoy en día incorpora una federación de nubes públicas y privadas, con las aplicaciones adecuadas ejecutándose en la nube pública; la mayoría de las aplicaciones de misión crítica y las que manejan información confidencial se ejecutan en una nube privada, y algunas aplicaciones se cruzan y usan servicios de nubes públicas y privadas.
Las cargas de trabajo se cruzan entre nubes privadas y públicas de dos maneras básicas: cuando los datos se transfieren entre una aplicación en nube pública y bases de datos o aplicaciones en nubes privadas, y cuando los servidores y el almacenamiento en nubes públicas sirven como complementos según demanda de recursos de nubes privadas para manejar la demanda máxima. Las organizaciones deben considerar y encarar con cuidad la complejidad adicional de administrar estos intercambios entre nubes.


Microsoft SQL Server
Es una plataforma de bases de datos económica para soluciones de alojamiento la cual proporciona características de valor agregado que los proveedores de alojamiento pueden utilizar para elevar los ingresos al ofrecer nuevos servicios y capacidades a sus clientes.


Windows Azure
 Es una plataforma de nube abierta y flexible que permite compilar, implementar y administrar aplicaciones rápidamente, en una red global de centros de datos administrados por Microsoft. Puede compilar aplicaciones en cualquier lenguaje, herramienta o marco. Y puede integrar sus aplicaciones de nube públicas con el entorno de TI existente.
Windows Azure proporciona una plataforma en la nube flexible que puede satisfacer los requisitos de cualquier aplicación. Permite hospedar y ampliar el código de aplicación dentro de roles de proceso de un modo totalmente confiable. Los datos se pueden almacenar en bases de datos SQL relacionales, almacenes de tablas NoSQL y almacenes de blobs no estructurados, y existe la opción de usar la funcionalidad de Hadoop e Business Intelligence para la minería de datos.


domingo, 17 de marzo de 2013

Actividad #19


Crear espacios de trabajo para tres usuarios de niveles distintos, con restricciones de almacenamiento acordes a cada perfil de usuario. 
Usuario administrador :( todos los privilegios).
Usuario: médico veterinario: ( con privilegios para  borrar, agregar y modificar datos pero no para modificar estructuras de las tablas).
Usuario Asistente: solo tiene privilegios de consulta.




















Actividad #18


Implementar el esquema de base de datos de la clínica veterinaria ( incluir todas las tablas  y  datos de 5 pacientes con 2  registros de   visita a la clínica cada  uno) .














Actividad #17


Planear y definir la estructura lógica de la base de datos de acuerdo a los recursos disponibles –memoria y disco. ( utilice el  problema de la Veterinaria)  incluya toda la secuencia, ( esquema conceptual, esquema lógico y esquema físico), calcular el numero de bytes por registro ( de acuerdo al tipo de datos) y cuantos bytes aproximados se require para alamacenar los datos de  100 pacientes con un promedio de  6 consultas al año) deben contener todos los campos  incluidos en la hoja clinica en el diseño.