jueves, 21 de noviembre de 2013

MONITOREO

 El monitorear es necesario para asegurarse que las aplicaciones se desempeñen eficazmente, El monitoreo ayuda a evitar problemas antes de que surjan, también ayuda a saber del buen estado de cada uno de los componentes e identificar posibles problemas y degradaciones de rendimiento. Los contadores del monitor incluye: el tamaño de archivos de datos, Porcentaje Usado de los archivos de registro, Transacciones Activas, Registro de crecimientos, espacio libre de archivos de registro.
 MySQL-Proxy es una herramienta para monitorear y optimizar consultas y búsquedas. Sirve para: 1.- Hacer un Log de todas las consultas que recibe el Servidor 2.- Denegar consultas peligrosas que puedan dañar nuestra base de datos 3.- Generar Alias de comandos comunes por ejemplo SLE se podría convertir en SELECT 4.- Balancear la carga entre varios servidores de MySQL en un esquema de Master/Slave 5.- Dar prioridad a ciertas consultas para acelerar la respuesta del servidor
 Administra y garantiza el acceso pleno y óptimo a todos los datos expuestos por el servidor Microsoft SQL, tanto para el motor de base de datos, como para cada una de las base de datos desplegadas en el sistema. El monitoreo del servidor SQL tiene la capacidad de conectarse a la fuente de la base de datos y monitorear diversos valores de columnas en tablas, recolectar datos, así como notificar a través de mensajes de alerta, si las propiedades de los sistemas de bases de datos van más allá de un umbral determinado.
Algunos de los componentes monitoreados en MS SQL son las siguientes: -Uso de memoria. -Gestión de estadística de Buffer. -Estadística de Conexión. -Detalles de Cache. -Estadística del bloqueo de tablas. -Estadísticas de SQL. -Detalles Latch. -Método de acceso a detalles.
7. Estas herramientas son el Profiler y el performance monitor. Las mismas no solo nos permiten ver los procesos que se ejecutan en nuestro servidor, también nos ayudan a ver como está el rendimiento del mismo, como son el uso de los discos, la memoria y cpu que está utilizando nuestro motor de base de datos.
El Profiler nos permite crear trace para darle seguimiento a las ejecuciones y consultas que se realizan en un determinado servidor de base de datos. Podemos accesar a el por Start > Program Files > Microsoft SQL Server > Profiler.
Podemos filtrar nuestros traces especificándole el nombre de la aplicación que deseamos darle seguimiento, como un determinado proceso, base de datos o que se puede excluir de nuestro seguimiento.
La otra herramienta con que cuenta SQL Server 2000 es el performance monitor con el que podemos visualizar como se están comportando nuestros discos duros, como la base de datos está utilizando la memoria y el procesador de nuestro servidor, picos muy altos en los discos no es positivo para nuestro servidor, los cuales deberían mantenerse por debajo de un 20% y solo la memoria y el CPU puede tener ligeros picos esporádicamente.


miércoles, 20 de noviembre de 2013

Adituria de Datos

DATOS
El uso de las computadoras y de las redes de datos como medio para almacenar,
transferir y procesar información, se ha incrementado desmesuradamente en los últimos
años, al grado de convertirse en un elemento esencial para el funcionamiento de cualquier
organización.

En consecuencia, la información en todas sus formas y estados se ha convertido en un
activo de altísimo valor, de tal forma que, la empresa no puede ser indiferente y por lo
tanto, se hace necesario proteger, asegurar y administrar la información para garantizar
su integridad, confidencialidad y disponibilidad, de conformidad con lo establecido por la
ley.
Es necesario contar con la seguridad de la Información que a la final es la preservación
de la confidencialidad (asegurando que sólo quienes estén autorizados pueden acceder a
la información), integridad (asegurando que la información y sus métodos de proceso son
exactos y completos) y disponibilidad (asegurando que los usuarios autorizados tienen
acceso a la información y a sus activos asociados cuando lo requieran).
 Política de seguridad
 Aspectos organizativos para la seguridad
 Clasificación y control de activos
 Seguridad ligada al personal
 Seguridad física y del entorno
 Gestión de comunicaciones y operaciones
 Control de accesos
 Desarrollo y mantenimiento de sistemas
 Gestión de incidentes de seguridad de la información
 Gestión de continuidad de negocio
 Conformidad
BASES DE DATOS
Para la verificación de la seguridad, consistencia y reglas de integridad en cualquier motor
de bases de datos es necesario verificar el ambiente de control establecido en la
instalación de este; en este contexto se deben tener presente las diferentes
características que pueden establecerse en este proceso, además en el manejo de los
motores se puede manejar un grado de Seguridad, en el cual se maneja la exactitud,
consistencia y confiabilidad de la información; con la privacidad y confidencialidad de los
datos;
Claves Primarias
Dominio de los atributos
Reglas de Integridad
Reglas de integridad del negocio
Vistas
Perfiles de usuario y Acceso
DATAWAREHOUSE
Un Data Warehouse es un conjunto de datos integrados orientados a una materia, que
varían con el tiempo y que no son transitorios, los cuales soportan el proceso de toma de
decisiones de la administración. Está orientada al manejo de grandes volúmenes de
datos, provenientes de diversas fuentes, de muy diversos tipos. Estos datos cubren largos
períodos de tiempo, lo que trae consigo que se tengan diferentes esquemas de los datos
fuentes. La concentración de esta información está orientada a su análisis para apoyar la
toma de decisiones oportunas y fundamentadas.
Datos Antiguos:
Datos Operacionales
Extractores de Datos
Metadatos:
MINERÍA DE DATOS
La minería de datos (DM, Data Mining) consiste en la extracción no trivial de información
que reside de manera implícita en los datos. Dicha información era previamente
desconocida y podrá resultar útil para algún proceso. En otras palabras, la minería de
datos prepara, sondea y explora los datos para sacar la información oculta en ellos.
La minería de datos (DM, Data Mining) consiste en la extracción no trivial de información
que reside de manera implícita en los datos. Dicha información era previamente
desconocida y podrá resultar útil para algún proceso. En otras palabras, la minería de
datos prepara, sondea y explora los datos para sacar la información oculta en ellos.
Básicamente, el datamining surge para intentar ayudar a comprender el contenido de un
repositorio de datos. Con este fin, hace uso de prácticas estadísticas y, en algunos casos,
de algoritmos de búsqueda próximos a la Inteligencia Artificial y a las redes neuronales.
De forma general, los datos son la materia prima bruta. En el momento que el usuario les
atribuye algún significado especial pasan a convertirse en información. Cuando los
especialistas elaboran o encuentran un modelo, haciendo que la interpretación que surge
entre la información y ese modelo represente un valor agregado, entonces nos referimos
al conocimiento.

ORACLE
Oracle es un sistema de gestión de base de datos relacional.
Se considera a Oracle como uno de los sistemas de bases de datos más completos,  destacando:
  •  Soporte de transacciones.
  •  Estabilidad.
  •  Escalabilidad.
  •  Soporte multiplataforma.
SQL
El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas peraciones sobre los datos o sobre la estructura de los mismos por cualquier motor de datos. El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado.
Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las
Existen dos tipos de comandos SQL:
  •  DLL que permiten crear y definir nuevas bases de datos, campos e índices.
  •  DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos
 IBM

DB2 UDB es un sistema para administración de bases de datos relacionales (RDBMS) 
multiplataforma, especialmente diseñada para ambientes distribuidos, permitiendo que los 
usuarios locales compartan información con los recursos centrales.

martes, 19 de noviembre de 2013

ACTIVIDAD #26



INTRODUCCIÓN

Para configurar una replicación por mezcla o combinación con SQL Server 2008, Windows Server 2008 64-bits y SQL Server CE 3.5, debemos tomar nota de algunas consideraciones especiales.
Este articulo es la primera parte, que trata de la configuración del SQL Server 2008. En la segunda parte, a ser publicada en los siguientes días, se dará el paso a paso para publicar la sincronización con IIS 7.0 de Windows Server 2008.

PRIMERA PARTE

A continuación, y paso a paso, configuraremos una replicación por combinación o mezcla (merge replication) con SQL Server 2008 y SQL Server CE 3.5 a bordo de un dispositivo.
Para ello lanzamos el SQL Server Management Studio. Supondremos que la base de datos que queremos publicar ya está diseñada e implementada, en nuestro caso la base de datos se llama devicesonline, y la tabla que deseamos publicar se llama training_input.

1. Iniciar el asistente. Hacemos clic con botón derecho sobre el nodo replicación (Replication), para abrir el menú contextual. Luego seleccionamos Nueva publicación:

image

2. Comienza el asistente de publicación:

image

3. Establecer el distribuidor. El primer paso del asistente es pedir la PC que funcione como distribuidor. Como opción por defecto se sugiere el equipo local, pero se da la posibilidad de seleccionar otro equipo que ya haya sido configurado como servidor distribuidor. Nosotros seleccionamos la opción por defecto, el equipo local:

image

4. Configurar el inicio del agente SQL Server. Este servicio es el encargado de administrar ciertos aspectos de funcionamiento complementario del gestor de base de datos. Entre otros, se encarga de tomar las instantáneas de replicación y automatizar las tareas relacionadas. En nuestro caso, deseamos que se configure el arranque automático del servicio Agente de SQL Server (recomendado):

image

5. Carpeta de instantáneas. Esta carpeta contendrá los archivos para sincronización en un formato compatible con el mecanismo de transmisión y recepción de las tablas por replicación. Por defecto, esta carpeta se llama Repldata (replication data), y se ubica de manera predeterminada en la carpeta del programa SQL Server, localizada dentro de \Archivos de Programa. En nuestro caso, está ubicada en \Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\ReplData.
 
image

Por ahora dejemos con la configuración por defecto.

6. Compartir la carpeta de instantáneas. Sin embargo, para que funcione correctamente con capacidad de suscripción iniciable desde el servidor o desde el móvil, es imprescindible:
  • definir dicha carpeta como compartida
  • dar permisos de lectura, escritura, modificación al usuario predeterminado de internet en el equipo, IUSR_nombre_de_equipo en IIS 6.x, e ISR solamente en IIS 7.x
En nuestro ejemplo, navegamos hasta la carpeta por defecto y luego hacemos clic en Uso compartido avanzado, para especificar los usuarios con acceso de lectura/escritura a dicha carpeta:
image

7. En la ventana de uso compartido avanzado hacemos clic en Permisos:

image

8. Luego agregamos al usuario IUSR (si es Windows Server 2008 / Vista) o bien IUSR_nombre_equipo (si es Windows Server 2003 /XP o anterior). Especificamos permisos de control total a dicho usuario porque deberá crear estructura de carpetas dentro de Repldata.

image




9. Luego de haberla compartido de esta forma, retornamos a la pantalla del asistente de SQL Server, y borramos la ubicación de la carpeta \Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\ReplData y escribimos la dirección UNC (universal naming convention) de la misma, en nuestro caso de la forma \\equipo\repldata. Se nos advertirá en el mensaje de abajo que el asistente no verificará los permisos porque en esta etapa del asistente no se conocen aún los nombres de las cuentas para ingresar a la misma:

image

10. Nombre de la base de datos a publicar. Seleccionamos la nuestra, devicesonline, y hacemos clic en Siguiente.

image


11. Tipo de replicación. Como hasta este momento el asistente no sabe que los suscriptores serán dispositivos móviles, ofrece las 4 posibles replicaciones. Seleccionamos Merge Replication, ya que SQL Server Compact Edition sólo puede subscribirse a replicaciones de combinación o mezcla. Luego hacemos clic en Siguiente..

image

12. Versiones de los suscriptores. Se debe marcar todas las versiones de los RDBMS que se suscribirán a esta publicación. En nuestro caso, sólo necesitamos sincronizar con dispositivos móviles, por lo que se marca solamente dicha opción y se hace clic en siguiente:

image

13. Objetos que se publicarán. A pesar de que el asistente permite seleccionar Tablas, Procedimientos almacenados y funciones definidas por el usuario, el cliente de suscripción SQL Server CE sólo permite sincronizar los objetos del tipo Tabla. Hacemos clic en el nodo tablas y seleccionamos las tablas que deseamos sincronizar con los móviles, en nuestro caso, training_input1, asegurándonos que no marcamos el resto:

image

14. Alerta por ROWGUID. Al hacer clic en Siguiente para pasar a la próxima pantalla, el asistente nos da un alerta, informándonos que alterará el esquema de la base de datos agregando columnas de identificadores únicos a las tablas. Se muestra un breve sumario en la pantalla del asistente, indicándonos que se producirían estos potenciales problemas por la adición de la nueva columna:
  • Las instrucciones INSERT-SQL que no tengan una lista de columnas explícitas van a fallar.
  • Se incrementará el tamaño de las tablas.
  • Se incrementará el tiempo requerido para generar la instantánea final.
SQL Server agrega una columna del tipo ROWGUIDCOL, con un índice único (es decir, se adiciona una clave candidata a las tablas que se publiquen). Leído esto, que no es más que informativo, hacemos clic en siguiente.
image

15. Filtrado de las filas de la tabla. En el caso que lo deseemos, hagamos clic en Agregar y seleccionemos Agregar Filtro
image

Donde podremos definir el filtrado de las publicaciones:

image

Una consideración importante es si deseamos particionar el filtrado para que cada fila del resultado vaya a todos los suscriptores (una sola partición), o bien vaya sólo a un subscriptor (múltiples particiones). En este ultimo caso de particiones múltiples, se debe utilizar un filtro parametrizado con una función como HOSTNAME o SUSER_NAME, por ejemplo
SELECT columna1,columna2.. FROM tablaPublicada WHERE columnaFiltro = HOSTNAME()
En un próximo artículo daremos más precisiones sobre el filtrado de partición múltiple. Por ahora, como no deseamos filtrar nada, todos los suscriptores recibirán el mismo conjunto de datos, hacemos clic en Siguiente.

16. Agente de Instantáneas. En esta pantalla se especifica cuando se deberá correr el Agente de Instantáneas para inicializar la publicación. Se marcan dos ajustes predeterminados: [ ] iniciar el agente de instantáneas inmediatamente luego de terminar el asistente, y [ ] Agendar el Agente de instantáneas para que corra automáticamente cada 14 dias, a las 5.00AM, comenzando el mismo día donde se está ejecutando el asistente (fecha actual). Dejamos estos ajustes sin tocar, y hacemos clic en siguiente:
image

17. Ajustes de seguridad del agente de instantáneas: En esta pantalla se debe especificar los ajustes de seguridad del Agente de Instantáneas, a saber: cuenta para correr ese servicio, y cuenta para conectar al Publicador. Hacemos clic en Ajustes de seguridad:
image

Luego especificamos las cuentas para controlar el proceso en la siguiente pantalla:

image
Para conectar al publicador especificamos alguna cuenta que ya esté creada como login de la instancia del SQL Server. Si no existe , podremos crearla a tal efecto, para especificarla debajo del apartado “Conectar al Publicador”.
Para pruebas. podemos ajustar la cuenta para correr el agente de instantáneas a la cuenta predeterminada, y para conectar la publicador podremos usar la del administrador de sistema, sa.
Una vez hecho esto, damos Aceptar (OK) y proseguimos con la próxima pantalla del asistente haciendo clic en Siguiente.
18. Acción final del asistente. En la ultima pantalla se nos pregunta si deseamos que el asistente cree la publicación, o bien genere un script-SQL que especifique los pasos para crear la publicación, o ambas cosas. Nosotros hemos marcado Crear la publicación, y no el Script, ya que deseamos crearlo inmediatamente.
image

19. Nombre de la publicación y sumario final: En la ultima pantalla del asistente, se completa el mismo especificando un nombre para la publicación. En este caso, damos a ésta el nombre TRAININGSETS: , luego revisamos el sumario con todas los ajustes que hemos hecho en los pasos anteriores. Si existe algún ajuste que deseamos modificar, debemos pulsar el botón Atrás (Back), regresar a la pantalla correspondiente , y efectuar las modificaciones deseadas, luego avanzar hasta el final nuevamente. Si estamos de acuerdo con los ajustes hecho, pulsamos finalizar.

image

20. Creación de la publicación y posibles problemas. En este paso ya se corre el procedimiento para crear la publicación:
image

Sin embargo, puede haber este problema, dependiendo del ajuste de seguridad si tenemos SQL Server 2008:

image

Si no experimentamos este problema, podemos dar por terminada la primera parte de la publicación
Sino, continuemos para solucionarlo:
20.1 Es posible que el distribuidor no se puede configurar correctamente porque para hacerlo se debe tener acceso al procedimiento almacenado llamado sp_set_sqlagent_properties del componente Agent XP. Esto sucede porque este componente está configurado para no formar parte de la configuración de seguridad de este servidor. El mensaje de advertencia (estrictamente hablando no es un error) es el siguiente:

image
20.2 Para evitar este problema, hay que reconfigurar el agente XP y el xp_cmdshell con el siguiente script:
sp_configure 'show advanced options',1
reconfigure with override
go
sp_configure 'xp_cmdshell',1
reconfigure with override
go
sp_configure 'Agent XPs',1
reconfigure with override
go

Esto lo debemos correr desde la base de datos master, en la ventana del SQL Server Management Studio:
image


20.3 Una vez hecho esto, iniciamos el servicio de Agente SQL Server. Este servicio corre con la cuenta nueva de Windows Server 2008, NT SERVICES/SQLSERVERAGENT., la cual debe tener permisos de lectura y escritura sobre la carpeta marcada para compartir.
Tenemos dos maneras de iniciar el servicio: (A) desde la línea de comandos, y (B) desde la interfaz administrativa
A. Iniciar el servicio desde la línea de comandos. Ejecutar el shell de comandos cmd.exe, y allí tipiar lo siguiente:
image

B. iniciarlo desde el mismo SQL Server Management Studio, que ya tenemos abierto:

image

Se nos presentará un cuadro de diálogo pidiendo confirmación de iniciar el servicio SQLSERVERAGENT en el equipo, hagamos clic en aceptar y el servicio ya estará corriendo, lo podemos confirmar viendo el nodo correspondiente, con el icono de “play” en verde:

image

20.4 Windows Vista y Server 2008 utilizan un nuevo mecanismo de elevación de privilegios. Las cuentas administrativas nunca corren con los máximos privilegios sino que, sólo cuando es necesario, elevan temporalmente sus permisos al nivel que le corresponde a dicha cuenta. Como la carpeta de instantáneas por defecto, definida en el paso 5 de este tutorial, se encuentra dentro de la carpeta \Archivos de Programa, es posible que existan problemas para su acceso. Por lo tanto, creemos una que se denomine igual (no es necesario que se llame repldata, lo hacemos aquí por motivos didácticos) en el directorio raíz del equipo, por ejemplo C:\repldata. Luego procedamos a dar acceso de control total a la cuenta del agente SQL Server, NT SERVICES/SQLSERVERAGENT.

image image

20.5 Con el agente SQL ya en ejecución y la carpeta definida fuera de \Archivos de Programa, volvemos al SQL Server Management Studio, localizamos nuestra publicación recién creada, buscamos en el árbol de objetos la replicación, y vamos a la ficha Propiedades de nuestra publicación:

image

Luego seleccionamos la ficha de Instantáneas (Snapshot) y marcamos [x] Colocar los archivos en la siguiente carpeta, y desmarcamos la opcion [ ] Colocar los archivos en la carpeta por defecto. Luego aceptamos haciendo clic en OK.

image

20.6 A continuación lanzamos el visor de estado del agente de instantánea, quien es el que hace el trabajo de armar la instantánea en la carpeta repldata:

image

El visor de estado del Agente de Instantáneas se inicia, comenzando el proceso de armar el contenido de la carpeta repldata donde se alojan las instantáneas.
Al comenzar deberemos algo de esto:

image
Y al finalizar tendremos:

image
Cerramos dicha ventana.

20.7 Para ver que la instantánea está correctamente inicializada, volvemos al árbol de objetos del SQL Server Management Studio, sobre el nombre de la publicación, hacemos clic con botón derecho nuevamente, y seleccionamos “Iniciar monitor de replicación” (debemos asegurarnos que el Agente de SQL Server está corriendo, según lo especificado en el punto 20.3).

image

Y debemos ver esta pantalla,

image


Replicacion con oracle database


Oracle Streams Propaga y administra datos, transacciones y eventos en una fuente de datos ya sea dentro de una base de datos, o de una base de datos a otra.

Bien a continuacion les dejo un paso a paso un tanto "extenso" para montar el Oracle Streams:

Requisitos:
Oracle version 10.2.0.1 en ambos casos
Windows XP / Windows 2003

Nombres del SID y TNS name:
DB1, db1 (Origen)
DB2, db2 (Destino)

Debemos configurar ambos parametros en cada base de datos (db1, db2):

1. Habilitamos el modo ARCHIVELOG en ambas bases de datos:

DB Origen: DB1
SQL> conn sys/sys as sysdba
Connected.
SQL> shutdown immediate
SQL> startup mount;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
SQL> ALTER DATABASE ARCHIVE LOG START

2. Creamos un usuario administrador para el Stream

DB Origen: DB1
SQL> conn sys/sys as sysdba
Connected.
SQL> create user strmadmin identified by strmadmin;

User created.

SQL> grant connect, resource, dba to strmadmin;

Grant succeeded.

SQL> begin dbms_streams_auth.grant_admin_privilege
2 (grantee => 'strmadmin',
3 grant_privileges => true);
4 end;
5 /

PL/SQL procedure successfully completed.

SQL> grant select_catalog_role, select any dictionary to strmadmin;

Grant succeeded.

2.1 Ahora realizamos las mismas operaciones en la base de datos destino: DB2

SQL> conn sys/sys as sysdba
Connected.
SQL> create user strmadmin identified by strmadmin;

User created.

SQL> grant connect, resource, dba to strmadmin;

Grant succeeded.

SQL> begin dbms_streams_auth.grant_admin_privilege
2 (grantee => 'strmadmin',
3 grant_privileges => true);
4 end;
5 /

PL/SQL procedure successfully completed.

SQL> grant select_catalog_role, select any dictionary to strmadmin;

Grant succeeded.

3. Ahora deberemos configurar el fichero INIT.ORA con los siguientes parametros:

DB Origen: DB1
SQL> conn sys/sys as sysdba
Connected.
SQL> alter system set global_names=true;

System altered.

SQL> alter system set streams_pool_size = 100 m;

System altered.

DB destino: DB2
SQL> conn sys/sys as sysdba
Connected.
SQL> alter system set global_names=true;

System altered.

SQL> alter system set streams_pool_size = 100 m;

System altered.

4. Ahora crearemos el enlace en cada base de datos apuntando a la otra:

DB Origen: DB1
SQL> conn strmadmin/strmadmin@db1
Connected.
SQL> create database link db2
2 connect to strmadmin
3 identified by strmadmin
4 using 'DB2';

Database link created.

DB Destino: DB2
SQL> conn strmadmin/strmadmin@db2
Connected.
SQL> create database link db1
2 connect to strmadmin
3 identified by strmadmin
4 using 'DB1';

Database link created.

5. Configuramos el origen y el destino de las consultas:

DB origen: DB1
SQL> conn strmadmin/strmadmin@db1
Connected.
SQL> EXEC DBMS_STREAMS_ADM.SET_UP_QUEUE();

PL/SQL procedure successfully completed.

DB Destino: DB2
SQL> conn strmadmin/strmadmin@db2
Connected.
SQL> EXEC DBMS_STREAMS_ADM.SET_UP_QUEUE();

PL/SQL procedure successfully completed.

6. Configuramos el esquema para los streams:

Esquema: SCOTT
Table: pibe

NOTA: El esquema scott viene bloqueado en las versiones 10g asi que deberemos desbloquearlos:

DB Origen: DB1
SQL> conn sys/sys as sysdba
Connected.
SQL> alter user scott account unlock identified by tiger;

User altered.

SQL> conn scott/tiger@db1
Connected.
SQL> create table pibe ( no number primary key,name varchar2(20),ddate date);

Table created.

DB Destino: DB2
SQL> conn sys/sys as sysdba
Connected.
SQL> alter user scott account unlock identified by tiger;

User altered.

SQL> conn scott/tiger@db2
Connected.
SQL> create table pibe ( no number primary key,name varchar2(20),ddate date);

Table created.

7. Creamos un acceso suplementario en la base de datos origen:

DB Origen: DB1
SQL> conn scott/tiger@db1
Connected.
SQL> alter table pibe
2 add supplemental log data (primary key,unique) columns;

Table altered.

8. Configuramos el proceso de captura en la base de datos origen:

DB Origen: DB1
SQL> conn strmadmin/strmadmin@db1
Connected.
SQL> begin dbms_streams_adm.add_table_rules
2 ( table_name => 'scott.pibe',
3 streams_type => 'capture',
4 streams_name => 'capture_stream',
5 queue_name=> 'strmadmin.streams_queue',
6 include_dml => true,
7 include_ddl => true,
8 inclusion_rule => true);
9 end;
10 /

PL/SQL procedure successfully completed.

9. Configuramos el proceso de propagacion:

DB Origen: DB1
SQL> conn strmadmin/strmadmin@db1
Connected.
SQL> begin dbms_streams_adm.add_table_propagation_rules
2 ( table_name => 'scott.pibe',
3 streams_name => 'DB1_TO_DB2',
4 source_queue_name => 'strmadmin.streams_queue',
5 destination_queue_name => 'strmadmin.streams_queue@DB2',
6 include_dml => true,
7 include_ddl => true,
8 source_database => 'DB1',
9 inclusion_rule => true);
10 end;
11 /

PL/SQL procedure successfully completed.

10. Configuramos el SCN:

DB Origen: DB1
SQL> CONN STRMADMIN/STRMADMIN@DB1
Connected.
SQL> declare
2 source_scn number;
3 begin
4 source_scn := dbms_flashback.get_system_change_number();
5 dbms_apply_adm.set_table_instantiation_scn@DB2
6 ( source_object_name => 'scott.pibe',
7 source_database_name => 'DB1',
8 instantiation_scn => source_scn);
9 end;
10 /

PL/SQL procedure successfully completed.

11. Configuramos el proceso de aplicacion en la base de datos destino:

DB Destino: DB2
SQL> conn strmadmin/strmadmin@db2
Connected.
SQL> begin dbms_streams_adm.add_table_rules
2 ( table_name => 'scott.pibe',
3 streams_type => 'apply',
4 streams_name => 'apply_stream',
5 queue_name => 'strmadmin.streams_queue',
6 include_dml => true,
7 include_ddl => true,
8 source_database => 'DB1',
9 inclusion_rule => true);
10 end;
11 /

PL/SQL procedure successfully completed.

12. Iniciamos la captura y el proceso de aplicacion de datos:

DB Origen: DB1
SQL> conn strmadmin/strmadmin@db1
Connected.
SQL> begin dbms_capture_adm.start_capture
2 ( capture_name => 'capture_stream');
3 end;
4 /

PL/SQL procedure successfully completed.

Db Destino: DB2
SQL> conn strmadmin/strmadmin@db2
Connected.
SQL> begin dbms_apply_adm.set_parameter
2 ( apply_name => 'apply_stream',
3 parameter => 'disable_on_error',
4 value => 'n');
5 end;
6 /

PL/SQL procedure successfully completed.

SQL> begin
2 dbms_apply_adm.start_apply
3 ( apply_name => 'apply_stream');
4 end;
5 /

PL/SQL procedure successfully completed.

NOTA: El entorno de replicacion ya esta listo!, lo que debemos hacer a continuacion es probarlo...

SQL> conn scott/tiger@db1
Connected.
SQL> --DDL operation
SQL> alter table pibe add (flag char(1));

Table altered.

SQL> --DML operation
SQL> begin
2 insert into pibe values (1,'first_entry',sysdate,1);
3 commit;
4 end;
5 /

PL/SQL procedure successfully completed.

SQL> conn scott/tiger@db2
Connected.
SQL> --TEST DDL operation
SQL> desc pibe
Name Null? Type
----------------------------------------- -------- ----------------------------

NO NOT NULL NUMBER
NAME VARCHAR2(20)
DDATE DATE
FLAG CHAR(1)

SQL> --TEST DML operation
SQL> select * from pibe;

NO NAME DDATE F
---------- -------------------- --------- -
1 first_entry 28-AGO-10 1

Como pueden ver, hemos actualizado la tabla en la DB1 y el stream se ha replicado a la DB2.




miércoles, 13 de noviembre de 2013

 ACTIVIDAD ESPEJEO

 

  • Configurar Mirroring en SQL Server


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:
modos de funcionamiento | Fuente: guillesql.es
modos de funcionamiento | Fuente: guillesql.es
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 NORECOVERY en 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
Abrir asistente
En la ventana principal se debe iniciar el asistente
Ventana Principal
Ventana Principal
Se inicia el asistente
Inicio del 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
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
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
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
Cuentas de servicio
Para Finalizar:
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
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
Iniciar mirroring
Antes de comenzar el mirroring, lo configuré como asíncrono y luego inicié el mirroring

Mirroring Funcionando

Mirroring Funcionando
 
 
 
  • VIDEO DE COMO REALIZAR UN ESPEJO
 
 
 

jueves, 7 de noviembre de 2013

QUE ES UNA REPLICACION
Replicación de bases de datos Es el proceso de copiar y mantener objetos de las base de datos, como por ejemplo relaciones, en múltiples bases de datos que forman un sistema de bases de datos distribuido.
BENEFICIOS
 Beneficios de la replicación Disponibilidad Fiabilidad Rendimiento Reducción de la carga Procesamiento desconectado Soporta muchos usuarios Soporta aplicaciones avanzadas.

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 q se utiliza la replicación para distribuir datos en ubicaciones remotas

EJEMPLO DE  REPLICACION

martes, 5 de noviembre de 2013

Espejeo (mirroring).

Este método permite hacer una réplica exacta de una base de datos de un servidor a otro. 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). De hecho, en la cadena de conexián de las aplicaciones de .NET, podemos especificar cuando conectamos con la aplicación el servidor de sql al que nos conectamos y un failover partner, o sea un servidor mirror para que en caso de failover, la aplicacián pueda reconectar automáticamente al otro servidor.


La desventaja del mirror, respecto el log shipping y la replicación, es que sálo podemos tener una máquina secundaria o mirror y que esta no es accesible y no podemos tenerla en modo lectura.
La creacián de un espejo reflejo de la base de datos de SQL Server permite mantener una copia, o reflejo, de una base de datos de SQL Server en un servidor en espera. El reflejo garantiza que en todo momento existen dos copias distintas de los datos, lo que proporciona una alta disponibilidad y una completa redundancia de datos.
El proveedor de datos de .NET para SQL Server ofrece compatibilidad implícita con la creación de reflejo de la base de datos; así el desarrollador no tiene que realizar ninguna acción ni escribir ningún código una vez que se ha configurado para una base de datos de SQL Server. Además, el objeto SqlConnection admite un modo de conexión explícita que permita proporcionar el nombre de un servidor asociado de conmutación por error en la propiedad ConnectionString.
La siguiente secuencia simplificada de eventos tiene lugar para un objeto SqlConnection que identifica una base de datos configurada para el reflejo:
  1. La aplicación cliente se conecta correctamente a la base de datos principal y el servidor devuelve el nombre del servidor asociado, el cual se almacena en caché en el cliente.
  2. Si el servidor que contiene la base de datos principal da error o se interrumpe la conectividad, se pierde el estado de la conexión y de la transacción. La aplicación cliente intenta restablecer la conexión a la base de datos principal pero no lo consigue.
  3. La aplicación cliente intenta entonces de forma transparente establecer una conexión a la base de datos de reflejo del servidor asociado. Si lo consigue, la conexión se redirecciona a la base de datos de reflejo, que se convierte entonces en la nueva base de datos principal.
Beneficios del espejeo de Datos en un DBMS.

La creación 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 conmutación automática por error, la conmutación por error pone en línea rápidamente la copia en espera de la base de datos, sin pérdida de datos. En los demás modos operativos, el administrador de bases de datos tiene la alternativa del servicio forzado (con una posible pérdida de datos) para la copia en espera de la base de datos. Para obtener más información, vea Conmutación de roles, más adelante en este tema.
  • Aumenta la protección de los datos. La creación de reflejo de la base de datos proporciona una redundancia completa o casi completa de los datos, en función de si el modo de funcionamiento es el de alta seguridad o el de alto rendimiento. Para obtener más información, vea Modos de funcionamiento, más adelante en este tema. Un asociado de creación de reflejo de la base de datos que se ejecute en SQL Server 2008 Enterprise o en versiones posteriores intentará resolver automáticamente cierto tipo de errores que impiden la lectura de una página de datos. El socio que no puede leer una página, solicita una copia nueva al otro socio. Si la solicitud se realiza correctamente, la copia sustituirá a la página que no se puede leer, de forma que se resuelve el error en la mayoría de los casos. Para obtener más información, vea Reparación de página automática (grupos de disponibilidad/creación de reflejo de base de datos).
  • Mejora la disponibilidad de la base de datos de producción 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 creación de reflejo de la base de datos. Esto incurrirá en el tiempo de inactividad de solo una conmutación por error única. Esta forma de actualización se denomina actualización gradual. Para obtener más información, vea Instalar un Service Pack en un sistema con un tiempo de inactividad mínimo para bases de datos reflejadas.

Activación de espejeo en un DBMS

MySQL

Lo primero que debemos hacer es checar si ambos servidores se encuentran en red

Caso Windows

Caso Linux

Cambie el comando ipconfig por ifconfig

Software

Verifque que el MySQL instalado en el maestro y en el esclavo son iguales. En este casp MySQL Server 5.6

Configuración del Maestro

  1. Localizar el archivo My.ini -Windows- (My.cnf -Linux)
  2. Buscar y comentar las siguientes lineas si es que se encuentran:
    #skip-networking
    #bind-address = 127.0.0.1
  3. Agregar después de la línea [mysqld] lo siguiente:
    log-bin =mysql-bin.log
    binlog-do-db=dolar
    server-id=1
    Nota: El server-id en el servidor siempre será 1, y los esclavos serán 2, 3… n según sea el caso en binlog-do-db se pone el nombre de la base de datos que replicara después de signo =
  4. Desde el panel de control entramos en Herramientas administrativas, Servicios y reanudamos MySQL. Este paso se omite en Linux
  5. Ahora en el shell de mysql genere una cuenta para el esclavo con el privilegio REPLICATION SLAVE:
    GRANT REPLICATION SLAVE ON *.* TO 'esclavo1'@'%' IDENTIFIED BY 'bingo';
    FLUSH PRIVILEGES;
    Nota: esclavo1 es el usuario identificado por el passwword bingo.Los posteriores replicadores deberán ser esclavo2, ..., esclavo-n.
  6. Seleccione la base de datos a replicar y realice lo siguiente:
    USE dolar;
    FLUSH TABLES WITH READ LOCK;
    SHOW MASTER STATUS;
    El resultado será algo similar a la figura
    La columna File muestra el nombre del log, mientras que Position muestra el desplazamiento. En este ejemplo, el valor del log binario es BARBANEGRA-bin.000004 y el desplazamiento es 1057. Guarde los valores. Los necesitará más tarde cuando inicialice el servidor. Estos representan las coordenadas de la replicación en que el esclavo debe comenzar a procesar nuevas actualizaciones del maestro.
  7. Salir de MySQL usando el comando exit o quit.
  8. Ahora desde la terminal o en el cmd haremos un Backup de la Base de Datos que se encuentra en el Maestro para tener el mismo esquema y datos en los esclavos:
    mysqldump -u root -p -dolar > dolar.sql
  9. Por últino desbloqueamos la base de datos
    mysql -u root -p
    UNLOCK TABLES;
    quit;

http://www.prograweb.com.mx/admonBD/0403EspejeoActivacion.html