47
REPLICACION DE DATOS 1 ‘Universidad san Pedro Facultad Ing. Informática y de Sistemas Escuela de Ingeniería Replicación De Datos Profesor: Rivera Montero Freddy Autores:-Lupuche Benites Maria Yuleysi del Pilar - Chata Calle, Sergio Sullana, Mayo

Replicación con sql server

Embed Size (px)

Citation preview

Page 1: Replicación con sql server

REPLICACION DE DATOS

1

‘Universidad san Pedro

Facultad Ing. Informática y de Sistemas

Escuela de Ingeniería

Replicación De Datos

Profesor: Rivera Montero Freddy

Autores:-Lupuche Benites Maria

Yuleysi del Pilar

- Chata Calle, Sergio

Sullana, Mayo

Page 2: Replicación con sql server

REPLICACION DE DATOS

2

INDICE

1. Introducción

2. Resumen

3. Componentes del modelo de replicación

4. Tipos de replicación

4.1. Replicación de instantáneas

4.2. Replicación transaccional

4.3. Replicación de mezcla

5. Factores para elegir el método de replicación a utilizar

6. Fases generales para implementar y supervisar la replicación

7. Consideraciones finales

8. Configuración de red

9. Configuración en SQL Server

9.1. Desde la Herramienta de red del servidor de SQL Server

9.2. Mediante una instrucción de red en Windows XP

Page 3: Replicación con sql server

REPLICACION DE DATOS

3

9.3. Configurar el puerto de escucha de una instancia de SQL Server

10. Configuraciones necesarias para realizar la replica

11. Conclusiones

Page 4: Replicación con sql server

REPLICACION DE DATOS

4

INTRODUCCIÓN

La replicación de datos permite que ciertos datos de la base de datos sean

almacenados en más de un sitio, y su principal utilidad es que permite

aumentar la disponibilidad de los datos y mejora el funcionamiento de las

consultas globales a la base de datos.

La replicación en SQL Server consiste, en el transporte de datos entre dos o

más instancias de servidores. Para ello SQL Server brinda un conjunto de

soluciones que permite copiar, distribuir y posiblemente modificar datos de toda

la organización. Se incluyen, además, varios métodos y opciones para el

diseño, implementación, supervisión y administración de la replicación, que le

ofrecen la funcionalidad y flexibilidad necesarias para distribuir datos y

mantener su coherencia.

En la replicación se utiliza una metáfora de la industria de la publicación para

representar los componentes y procesos de una topología de replicación. De

esta forma el modelo se compone, básicamente, de los siguientes elementos:

publicador, distribuidor, suscriptores, publicaciones, artículos y suscripciones.

Page 5: Replicación con sql server

REPLICACION DE DATOS

5

RESUMEN

La replicación de datos consiste en el transporte de datos entre dos o más

servidores, permitiendo que ciertos datos de la base de datos estén

almacenados en más de un sitio, y así aumentar la disponibilidad de los datos y

mejorar el rendimiento de las consultas globales. El modelo de replicación está

formado por: publicador, distribuidor, suscriptor, publicación, artículo y

suscripción; y varios agentes responsabilizados de copiar los datos entre el

publicador y el suscriptor. A los tipos básicos de replicación (de instantáneas,

transaccional y de mezcla), se le incorporan opciones para ajustarse aún más a

los requerimientos del usuario.

Page 6: Replicación con sql server

REPLICACION DE DATOS

6

COMPONENTES DEL MODELO DE REPLICACIÓN

Para representar los componentes y procesos de una topología de replicación

se utilizan metáforas de la industria de la publicación. El modelo se compone

de los siguientes objetos: el publicador, el distribuidor, el suscriptor, la

publicación, el artículo y la suscripción; así como de varios agentes, que son

los procesos responsabilizados de copiar los datos entre el publicador y el

suscriptor. Estos agentes son: agente de instantáneas, agente de distribución,

agente del lector del registro, agente del lector de cola y agente de mezcla.

La replicación de datos es un asunto exclusivamente entre servidores de datos,

en nuestro caso hablamos de servidores SQL Server. Los servidores SQL

Server pueden desempeñar uno o varios de los siguientes roles: publicador,

distribuidor o suscriptor.

El publicador es un servidor que pone los datos a disposición de otros

servidores para poder replicarlos. El distribuidor es un servidor que aloja la

base de datos de distribución y almacena los datos históricos, transacciones y

metadatos. Los suscriptores reciben los datos replicados.

Una publicación es un conjunto de artículos (este concepto: "artículo de una

publicación", es diferente del concepto "artículo o registro de una base de

datos", como explicaremos más adelante) de una base de datos. Esta

agrupación de varios artículos facilita especificar un conjunto de datos

relacionados lógicamente y los objetos de bases de datos que desea replicar

conjuntamente. Un artículo de una publicación puede ser una tabla de datos la

cual puede contar con todas las filas o algunas (filtrado horizontal) y

simultáneamente contar de todas las columnas o algunas (filtrado vertical), un

procedimiento almacenado, una definición de vista, la ejecución de un

procedimiento almacenado, una vista, una vista indizada o una función definida

por el usuario.

Una suscripción es una petición de copia de datos o de objetos de base de

datos para replicar. Una suscripción define qué publicación se recibirá, dónde y

cuándo. Las suscripciones pueden ser de inserción o de extracción; y una

publicación puede admitir una combinación de suscripciones de inserción y

extracción. El publicador (en las suscripciones de inserción) o el suscriptor (en

las suscripciones de extracción) solicitan la sincronización o distribución de

datos de una suscripción.

El publicador puede disponer de una o más publicaciones, de las cuales los

suscriptores se suscriben a las publicaciones que necesitan, nunca a artículos

individuales de una publicación. El publicador, además, detecta qué datos han

Page 7: Replicación con sql server

REPLICACION DE DATOS

7

cambiado durante la replicación transaccional y mantiene información acerca

de todas las publicaciones del sitio.

La función del distribuidor varía según la metodología de replicación

implementada. En ocasiones se configura como distribuidor el mismo

publicador y se le denomina distribuidor local. En el resto de los casos el

distribuidor será remoto, pudiendo coincidir en algún caso con un suscriptor.

Los suscriptores además de obtener sus suscripciones, en dependencia del

tipo y opciones de replicación elegidas, pueden devolver datos modificados al

publicador. Además puede tener sus propias publicaciones.

TIPOS DE REPLICACIÓN

Los tipos básicos de replicación son:

Replicación de instantáneas

Replicación transaccional

Replicación de mezcla

Para ajustarse aún más a los requerimientos de los usuarios se incorporan

opciones como son la actualización inmediata en el suscriptor, la actualización

en cola y la transformación de datos replicados.

Replicación de instantáneas

En la replicación de instantáneas los datos se copian tal y como aparecen

exactamente en un momento determinado. Por consiguiente, no requiere un

control continuo de los cambios. Las publicaciones de instantáneas se suelen

replicar con menos frecuencia que otros tipos de publicaciones. Puede llevar

más tiempo propagar las modificaciones de datos a los suscriptores. Se

recomienda utilizar: cuando la mayoría de los datos no cambian con frecuencia;

se replican pequeñas cantidades de datos; los sitios con frecuencia están

desconectados y es aceptable un periodo de latencia largo (la cantidad de

tiempo que transcurre entre la actualización de los datos en un sitio y en otro).

En ocasiones se hace necesario utilizarla cuando están involucrados algunos

tipos de datos (text, ntext, e imagen) cuyas modificaciones no se registran en el

registro de transacciones y por tanto no se pueden replicar utilizando la

metodología de replicación transaccional.

Los servidores OLAP son candidatos a la replicación de instantáneas. Las

consultas ad-hoc que aplican los administradores de sistemas de información

Page 8: Replicación con sql server

REPLICACION DE DATOS

8

son generalmente de solo lectura y los datos con antigüedad de horas o días

no afectan sus consultas. Por ejemplo un departamento desea hacer una

investigación sobre demografía de los artículos vendidos hace dos meses. La

información de la semana pasada no afectará sus consultas; además el

departamento no está planeando hacer cambio en los datos, solo necesita el

almacén de datos. Hay que destacar además que cuando están involucrados

algunos tipos de datos (text, ntext, e imagen) cuyas modificaciones no se

registran en el registro de transacciones y por lo tanto es necesario transportar

estos datos del publicador al suscriptor para lo cual es necesario utilizar la

replicación de instantáneas, al menos como una solución parcial.

Con la opción de actualización inmediata en el suscriptor se permite a los

suscriptores actualizar datos solamente si el publicador los va a aceptar

inmediatamente. Si el publicador los acepta, se propagan a otros suscriptores.

El suscriptor debe estar conectado de forma estable y continua al publicador

para poder realizar cambios en el suscriptor. Esta opción es útil en escenarios

en los que tienen lugar unas cuantas modificaciones ocasionales en los

servidores suscriptor.

Replicación transaccional

En este caso se propaga una instantánea inicial de datos a los suscriptores, y

después, cuando se efectúan las modificaciones en el publicador, las

transacciones individuales se propagan a los suscriptores. SQL Server 2000

almacena las transacciones que afectan a los objetos replicados y propaga

esos cambios a los suscriptores de forma continua o a intervalos programados.

Al finalizar la propagación de los cambios, todos los suscriptores tendrán los

mismos valores que el publicador. Suele utilizarse cuando: se desea que las

modificaciones de datos se propaguen a los suscriptores, normalmente pocos

segundos después de producirse; se necesita que las transacciones sean

atómicas, que se apliquen todas o ninguna al suscriptor; los suscriptores se

conectan en su mayoría al publicador; su aplicación no puede permitir un

periodo de latencia largo para los suscriptores que reciban cambios.

Es útil en escenarios en los que los suscriptores pueden tratar a sus datos

como de sólo lectura, pero necesitan cambios a los datos con una cantidad

mínima de latencia. Ejemplo: un sistema para el procesamiento y distribución

de pedidos. En este tipo de escenario, podría tener varios publicadores

recibiendo pedidos de mercancías. Estos pedidos se replican entonces a un

almacén central donde se despachan los pedidos. El almacén puede tratar los

datos como de sólo lectura y requiere nueva información en forma periódica.

Con el uso de la opción de actualización inmediata en el suscriptor se pierde

aún más la autonomía de sitio, pero se reduce el tiempo en el cual los sitios

Page 9: Replicación con sql server

REPLICACION DE DATOS

9

actualizan sus copias de los datos. Para hacer modificaciones en la base de

datos del suscriptor éstas se realizan (o intentan) también en la base de datos

publicador en una confirmación de dos fases (2PC) por lo que si su

modificación se confirma indica que es válida y luego en cuestión de minutos, o

según la planificación hecha, estos cambios son duplicados a las demás bases

de datos suscriptoras.

Replicación de mezcla

Permite que varios sitios funcionen en línea o desconectados de manera

autónoma, y mezclar más adelante las modificaciones de datos realizadas en

un resultado único y uniforme. La instantánea inicial se aplica a los

suscriptores; a continuación SQL Server 2000 hace un seguimiento de los

cambios realizados en los datos publicados en el publicador y en los

suscriptores. Los datos se sincronizan entre los servidores a una hora

programada o a petición. Las actualizaciones se realizan de manera

independiente, sin protocolo de confirmación, en más de un servidor, así el

publicador o más de un suscriptor pueden haber actualizado los mismos datos.

Por lo tanto, pueden producirse conflictos al mezclar las modificaciones de

datos.

Cuando se produce un conflicto, el Agente de mezcla invoca una resolución

para determinar qué datos se aceptarán y se propagarán a otros sitios. Es útil

cuando: varios suscriptores necesitan actualizar datos en diferentes ocasiones

y propagar los cambios al publicador y a otros suscriptores; los suscriptores

necesitan recibir datos, realizar cambios sin conexión y sincronizar más

adelante los cambios con el publicador y otros suscriptores; el requisito de

periodo de latencia de la aplicación es largo o corto; la autonomía del sitio es

un factor crucial.

Es útil en ambientes en los que cada sitio hace cambios solamente en sus

datos pero que necesitan tener la información de los otros sitios. Por ejemplo

podría crearse una base de datos que registre la historia delictiva de individuos.

En cada municipio de Villa Clara, se puede tener una copia de la base de datos

de toda la provincia y no se requiere estar conectado permanentemente a la

base de datos de la instancia provincial.

Page 10: Replicación con sql server

REPLICACION DE DATOS

10

FACTORES PARA ELEGIR EL MÉTODO DE REPLICACIÓN A

UTILIZAR

En la elección de un método adecuado para la distribución de los datos en una

organización influyen varios factores. Los cuales podemos agruparlos en dos

grupos: factores relacionados con los requerimientos de la aplicación y factores

relacionados con el entorno de red.

Dentro de los factores relacionados con los requerimientos de la aplicación, los

fundamentales son:

o Autonomía

o Consistencia transaccional

o Latencia

La autonomía de un sitio da la medida de cuanto puede operar el sitio

desconectado de la base de datos publicadora. La consistencia transaccional

de un sitio viene dado por la necesidad de ejecutar o no inmediatamente todas

las transacciones que se han ejecutado en el servidor, o si es suficiente con

respetar el orden de las mismas. La latencia de un sitio se refiere al momento

en que se deben de sincronizar las copias de los datos. ¿Necesitan los datos

estar el 100% en sincronía? O si es admisible determinada latencia ¿de qué

tamaño es aceptable el rezago?

Entre los factores relacionados con el entorno de red están la velocidad de

transmisión de datos de la red, deben considerarse preguntas como ¿Cómo

luce la red? ¿Es rápida? Debe analizarse además la confiabilidad de la red y

responder preguntas como ¿Cuán confiable es la red? Por otra parte en el caso

que los servidores SQL no permanezcan todos los días encendidos, como

pudiera suceder en algunas organizaciones, deben considerarse los horarios

de disponibilidad de cada servidor.

La consideración de estos factores sirve de guía en la configuración del

ambiente de replicación. Además debe considerar las siguientes preguntas:

¿Qué datos se van a publicar? ¿Reciben todos los suscriptores todos los datos

o sólo subconjuntos de ellos? ¿Se deben particionar los datos por sitio? ¿Se

debe permitir que los suscriptores envíen actualizaciones de los datos? Y en

caso de permitirlas ¿Cómo deben implementarse? ¿Quiénes pueden tener

acceso a los datos? ¿Se encuentran estos usuarios en línea? ¿Se encuentran

conectados mediante enlaces caros?

Page 11: Replicación con sql server

REPLICACION DE DATOS

11

FASES GENERALES PARA IMPLEMENTAR Y SUPERVISAR LA

REPLICACIÓN

A pesar de que existen varias formas de implementar y supervisar la

replicación, y el proceso de replicación es diferente según el tipo y las opciones

elegidas, en general, la replicación se compone de las siguientes fases:

configuración de la replicación

generación y aplicación de la instantánea inicial

modificación de los datos replicados

sincronización y propagación de los datos.

CONSIDERACIONES FINALES

La replicación es muy útil para mejorar la disponibilidad de datos, lo cual

pudiera llevarse al caso extremo, conocido como bases de datos distribuidas

replicadas totalmente, en el cual consiste en la replicación de la base de datos

completa en cada sitio en el sistema distribuido y garantiza notablemente la

disponibilidad de datos, pues el sistema puede continuar operando cuando

exista en servicio al menos uno de los servidores SQL Server. La desventaja es

un alto costo para mantener la consistencia de las copias en cada sitio.

En este documento solo pretendemos aclarar algunos de los aspectos básicos

que cualquiera que se conecte contra una instancia remota de SQL SERVER

debe tener en cuenta.

CONFIGURACIÓN DE RED

En primer lugar debemos conocer la configuración de red que afecta a nuestro

equipo SERVIDOR (el que tiene SQL Server). Si nuestro servidor sale a

Internet por medio de un Router, deberemos hacer NAT para redireccionar las

conexiones entrantes por el puerto 1433 (puerto por defecto de SQL Server) a

nuestro equipo SERVIDOR.

También hay que asegurarse que cualquier firewall habilitado permite las

conexiones contra SQL Server. No hace falta decir que deberemos conocer la

IP Pública por la que sale el Router, para luego conectarnos a ella.

Page 12: Replicación con sql server

REPLICACION DE DATOS

12

CONFIGURACIÓN EN SQL SERVER

Antes de intentar conectarnos debemos comprobar los siguientes aspectos de

configuración:

1. Tener arrancado el servicio de SQL Server (mediante el administrador de

servicios de SQL Server).

2. Conocer la IP contra la que nos conectamos: Para conectarnos contra una

instancia predeterminada de SQL Server bastaría con poner la IP publica de la

máquina donde se ejecuta, pero si se trata de instancias con nombre es

necesario especificar IP\NombreInstancia. En este caso no nos vale con poner

NombreMaquina\Instancia dado que no se va a conseguir resolver el nombre

de la maquina por Internet.

3. Protocolos habilitados en el Servidor: Comprobar con la herramienta de red

del servidor que se encuentran habilitados los protocolos TCP/IP.

Si no hemos tenido en cuenta alguno de los puntos anteriores, podríamos

obtener el siguiente mensaje de Error:

"No existe el Servidor SQL Server o se ha denegado el acceso al mismo"

Pero como siempre, existen situaciones especiales que pueden hacer que nos

surjan errores pese a tener bien configurado lo anterior.

Lo primero que hay que tener en cuenta es que si en una misma máquina

existen varias instancias de SQL Server, solo la predeterminada corre por el

puerto 1433, y todas las demás escuchan en un puerto que les asigna el

Servicio de Resolución de SQL, por lo que sería necesario reconfigurar el NAT

de nuestro Router para permitir las conexiones a SQL Server por el puerto

correspondiente. Pero además habrá que tener en cuenta algo MUY

IMPORTANTE, y es que el Servicio de Resolución de SQL corre en el Puerto

UDP 1434, por lo que también deberemos hacer NAT a este puerto en

concreto. Sino NO conseguiremos conectarnos.

La asignación de este puerto (la de la instancia) se puede configurar para que

se haga de forma estática o de forma dinámica. Como ya hemos dicho, la

instancia predeterminada de SQL Server escucha solicitudes de clientes de

SQL Server en el puerto 1433 (estático). Sin embargo, si una instancia de SQL

Server se configura para escuchar en un puerto estático y si ya utiliza el puerto

estático especificado otro programa que se ejecuta en el equipo cuando se

Page 13: Replicación con sql server

REPLICACION DE DATOS

13

inicia SQL Server, SQL Server no escuchará en el puerto estático especificado.

Si utilizamos conexiones a nivel de red local, en principio toda esta asignación

de puertos nos daría igual, salvo por algún firewall que nos este capando la

conectividad, pero es cuando utilizamos conexión vía Internet, cuando

debemos controlar estos aspectos si queremos mantener un cierto grado de

seguridad en nuestro Servidor. Para "solucionar" esto, podríamos hacer que

una instancia determinada escuche en varios puertos estáticos.

Pero antes de ver como configurar una instancia de SQL Server para que

escuche por varios puertos estáticos, es más que conveniente saber cómo

podemos conocer en que puerto corre una instancia determinada.

Conocer en que puerto corre una instancia determinada

Tenemos varias opciones, y todas ellas son interesantes porque puede darse el

caso de que en alguna ocasión no dispongamos de determinadas herramientas

y necesitemos conocer estos datos de algún otro modo.

Desde la Herramienta de red del servidor de SQL Server.

Iniciamos la Herramienta de red del servidor desde Inicio, Programas, Microsoft

SQL Server, Herramienta de red del servidor o también desde Inicio, Ejecutar y

en el cuadro Abrir escribimos svrnetcn.exe y hacemos clic en Aceptar.

Hacemos clic en la ficha General, seleccionamos de la lista nuestra instancia

de SQL Server.

En el cuadro de lista Protocolos habilitados, hacemos clic en TCP/IP y a

continuación clic en Propiedades.

Mediante una instrucción de red en Windows XP.

Si abrimos ms-dos y ejecutamos la instrucción netstat -abn en el servidor,

también podremos comprobar en qué puerto está corriendo una instancia

determinada de SQL Server.

La opción -b que es la que muestra el ejecutable y el puerto de escucha, solo

está disponible en Windows XP.

Adicionalmente si no nos encontramos en el servidor, podemos lanzar contra él

desde nuestra máquina, la instrucción osql -S nombre_instancia -U sa. Esta

instrucción nos abre una conexión contra la instancia indicada a modo de

analizador de consultas. No es necesario que efectuemos ninguna consulta,

porque lo único que nos interesa es que hemos abierto una conexión desde

Page 14: Replicación con sql server

REPLICACION DE DATOS

14

nuestra maquina hacia el Servidor, por lo que si ahora hacemos un netstat -abn

en nuestra máquina, y consultamos el resultado del comando, buscando la

entrada que hace referencia al ejecutable [osql.exe] podremos ver las Ip de

origen y destino así como los puertos por los que se establece la conexión.

Configurar el puerto de escucha de una instancia de SQL Server

Ahora sí, para configurar el puerto de forma estática, accedemos mediante la

Herramienta de red del servidor a las propiedades de TCP/IP de nuestra

instancia y pulsamos propiedades, el puerto que aparece como predeterminado

es el puerto estático que se está utilizando, si queremos asignar varios, solo

debemos ir añadiéndolos uno detrás de otro, seguidos por comas, por ejemplo:

1433,5000

Nota 1: Si el protocolo TCP/IP está deshabilitado, lo habilitamos ahora. Para

ello, clic en TCP/IP en el cuadro de lista Protocolos deshabilitados y a

continuación, clic en Habilitar.

Nota 2: El puerto estático que especifiquemos no debe ser igual que el puerto

dinámico en el que actualmente este escuchando otra instancia de SQL Server.

Por ejemplo, si una instancia de SQL Server escucha en el puerto TCP/IP

dinámico 1400, escribiremos por ejemplo 1500 para el nuevo puerto estático.

Si lo que queremos es que la asignación de puerto se haga de forma dinámica,

deberemos poner el cero como puerto predeterminado.

Siempre que modifiquemos alguno de estos puertos, a continuación deberemos

reiniciar la instancia de SQL Server.

Page 15: Replicación con sql server

REPLICACION DE DATOS

15

CONFIGURACIONES NECESARIAS PARA REALIZAR LA

REPLICA

CREANDO PUBLICACION EN EL SERVIDOR

Como primer paso se ingresar a SQL Managment Studio desde el Servidor.

Se debe loguear con el usuario y contraseña establecidos durante la

instalación.

Page 16: Replicación con sql server

REPLICACION DE DATOS

16

Si no hay dificultades con la cuenta, se establece la conexión al Servidor

Ya con la conexión establecida correctamente, se procede a crear una base de

datos.

Page 17: Replicación con sql server

REPLICACION DE DATOS

17

Creando la Base de Datos:

Para el ejemplo actual, se utiliza la Base de Datos: proyecto

Page 18: Replicación con sql server

REPLICACION DE DATOS

18

Con la base de datos creada correctamente se procede a crear una tabla

sencilla.

Page 19: Replicación con sql server

REPLICACION DE DATOS

19

Nombrando la tabla.

Tabla creada correctamente dentro de la base de datos.

Se procede a llenar la tabla con datos. Para ello, se da clic derecho sobre la

tabla, y se debe seleccionar la opción Editar las primeras 200 filas.

Page 20: Replicación con sql server

REPLICACION DE DATOS

20

Agregando registros a la tabla:

Page 21: Replicación con sql server

REPLICACION DE DATOS

21

PUBLICACION DEL SERVIDOR

Ya contando con la base de datos y la tabla correspondiente, se puede realizar

la publicación de la base de datos.

Se da clic sobre la carpeta Replicación, luego clic sobre Publicaciones Locales.

A continuación se da clic derecho sobre la opción Nueva Publicación.

Page 22: Replicación con sql server

REPLICACION DE DATOS

22

Se inicia el asistente para la publicación de la base de datos.

Se debe buscar la base de datos a publicar.

Page 23: Replicación con sql server

REPLICACION DE DATOS

23

Después de ello se debe elegir el tipo de publicación a utilizar, para este caso,

Publicación de Mezcla (en la cual la réplica no solo será una copia fiel del

servidor, sino además cuando este caiga o este fuera de la conexión, la

maquina suplirá al servidor en todos las actualizaciones que los usuarios

establezcan).

Se deben seleccionar las versiones de SQL que utilizaran los suscriptores del

servidor.

Page 24: Replicación con sql server

REPLICACION DE DATOS

24

Seleccionar las tablas a publicar.

Debido al tipo de publicación seleccionado (de mezcla), a cada tupla se le

agregará la columna UniqueIdentifier.

Page 25: Replicación con sql server

REPLICACION DE DATOS

25

Se selecciona la opción Crear una instantánea Inmediatamente.

En las configuraciones de seguridad, se debe introducir el usuario y contraseña

de SQL.

Page 26: Replicación con sql server

REPLICACION DE DATOS

26

Si todo ha sido correctamente configurado, debería de confirmar la publicación.

CREAR UNA BASE DE DATOS EN LA MAQUINA –REPLICA

Page 27: Replicación con sql server

REPLICACION DE DATOS

27

Se crea una base de datos en la maquina que se utilizara como Réplica, la cual

debe dejarse sin ninguna tabla, es decir, totalmente vacía, ya que es, en esta

Base de Datos en donde se replicaran todas las tablas de la Base de Datos del

Servidor.

SUSCRIPCION AL SERVIDOR

Teniendo la publicación creada, se debe dar paso a crear la suscripción local.

Clic derecho sobre Suscripciones Locales, y elegir la opción Nuevas

suscripciones.

Se ejecuta el asistente para las suscripciones.

Page 28: Replicación con sql server

REPLICACION DE DATOS

28

Se selecciona la publicación dentro del Servidor a la cual se le agregara la

suscripción.

Se debe elegir la opción Ejecutar cada agente en su suscriptor.

Buscar la maquina que será nuestro suscriptor local para la Replicación. Para

el ejemplo, la maquina suscriptora será DAFNE-PC\REPLICA

Page 29: Replicación con sql server

REPLICACION DE DATOS

29

Se debe conectar al suscriptor, mediante la autenticación de la cuenta de SQL

Server.

Se selecciona la Base de Datos vacía que se creó previamente en el suscriptor.

Page 30: Replicación con sql server

REPLICACION DE DATOS

30

Se llenan los campos para la seguridad del Agente de Mezcla, mediante la

autenticación de la cuenta SQL.

Page 31: Replicación con sql server

REPLICACION DE DATOS

31

La sincronización del agente entre el Servidor y la Replica debe programarse

de forma continua.

Se debe elegir al suscriptor, en este caso, como Servidor, pues al caer el

servidor central, la replica debe ser capaz de suplirlo en su totalidad

Page 32: Replicación con sql server

REPLICACION DE DATOS

32

La suscripción si ha sido exitosa, debería mostrar lo siguiente.

Page 33: Replicación con sql server

REPLICACION DE DATOS

33

REPLICACION DE LA BASE DE DATOS DEL SERVIDOR A LA REPLICA.

Con la publicación y la suscripción se debe poder visualizar las tablas

replicadas de la base de datos que se encuentra en el Servidor, para el

ejemplo, se debe visualizar la tabla personal y sus tuplas, dentro de la base

REPLICACION en la réplica.

LLENAR BASE DE DATOS:

Teniendo la base de datos creada, se procede a llenarla con datos. Se da clic

derecho sobre la base de datos, para el ejemplo la tabla proyecto, clic en la

opción Editar las primeras 200 filas.

Page 34: Replicación con sql server

REPLICACION DE DATOS

34

Y se empieza a llenar los datos de la tabla.

Para poder observar los datos, se debe hacer clic sobre la opción Seleccionar

las primeras 100 filas.

Page 35: Replicación con sql server

REPLICACION DE DATOS

35

En efecto se puede observar los datos.

Se dispone a ver los datos en la base de datos REPLICACION, de la maquina

réplica.

Page 36: Replicación con sql server

REPLICACION DE DATOS

36

Desde la máquina réplica, se agregaran nuevos datos, los cuales tienen que

verse reflejados en el servidor. Para lo cual se deben esperar 60 segundos, en

lo que las actualizaciones se hacen efectivas entre ambos servidores.

Ahora se pueden comprobar los datos en la maquina servidor.

Page 37: Replicación con sql server

REPLICACION DE DATOS

37

Como se puede observar los códigos entre las tuplas agregadas desde el

servidor y de la réplica no llevan un orden correlativo, pero esta característica

es propia entre la replicación de SQL.

El mismo procedimiento se debe de seguir para el caso de cuando se quiere

eliminar datos de la base de datos, e igualmente se deben reflejar los cambios

entre ambos servidores.

Los cuales también han sido eliminados de la maquina replica.

Page 38: Replicación con sql server

REPLICACION DE DATOS

38

APLICACIÓN EN LA MAQUINA CLIENTE.

Desde el lado del cliente, se crea una pequeña aplicación en VB.Net, la cual se

utilizara para visualizar los cambios de la tabla personal dentro de la base de

datos replicada

Como se observa en la siguiente captura (Aplicación en ejecución), hasta el

momento se cuentan con cuatro registros dentro de la tabla personal, que son

los que se detallaron en las capturas anteriores.

Page 39: Replicación con sql server

REPLICACION DE DATOS

39

DISTRIBUCION DE LA RED

Réplica Servidor

Cliente

Se procede a agregar datos desde la aplicación del cliente, los cuales deben

verse reflejados tanto en el servidor como en la réplica.

Page 40: Replicación con sql server

REPLICACION DE DATOS

40

Datos reflejados en el Servidor:

Datos reflejados en la réplica:

Page 41: Replicación con sql server

REPLICACION DE DATOS

41

Como se puede observar en el formulario, ya se cuenta con 5 registros en la

tabla.

COMPROBAR CONEXIONES SERVIDOR-REPLICA-CLIENTE

Para poder constatar que la réplica de mezcla efectivamente puede suplir al

servidor, se procede a desconectar al servidor, y dejar únicamente el cliente

conectado a la réplica.

Page 42: Replicación con sql server

REPLICACION DE DATOS

42

- Desconectando el servidor

Como se puede observar la aplicación muestra un mensaje de error en la

conexión al servidor, y automáticamente conecta a la réplica.

En la realidad cotidiana, este proceso es totalmente transparente al cliente,

pero por razones de estudio se han dejado estos mensajes de error, para poder

monitorear cada paso de la conexión.

- Conectado a la replica

Page 43: Replicación con sql server

REPLICACION DE DATOS

43

Ahora se procede a desconectar tanto al servidor como a la replica

Se puede observar, que como falta el servidor, la aplicación nuevamente

intenta conectarse a la réplica.

Page 44: Replicación con sql server

REPLICACION DE DATOS

44

Y debido a que también se desconecto la réplica, nuevamente muestra un error

fatal en la conexión.

Y debido a que la aplicación cliente no tiene conexión a la base de datos,

muestra únicamente el formulario vacío.

Para demostrar que la réplica de mezcla, efectivamente suple al servidor

cuando éste falta, se procede a que la aplicación cliente, agregue datos a la

réplica (Se obviaran los pasos en los que el cliente no se conecta al servidor,

pues están detallados en capturas anteriores).

Page 45: Replicación con sql server

REPLICACION DE DATOS

45

- Agregando datos a la Réplica.

Se puede observar que ya se cuenta con un nuevo registro en la base de

datos:

Page 46: Replicación con sql server

REPLICACION DE DATOS

46

Y en efecto, los datos se ven reflejados en la réplica.

Ahora se procede a reconectar el servidor a la red, y la réplica debe ser capaz

de enviarle automáticamente después de 60 segundos, los datos agregados

por el cliente.

Page 47: Replicación con sql server

REPLICACION DE DATOS

47

CONCLUSIONES

Con todo este proyecto queda demostrado el uso de las réplicas en los

servidores, para el caso particular la Réplica de Mezcla.

La Réplica de Mezcla, además de hacer el back-up de la Base de Datos del

Servidor (comúnmente por razones de seguridad), es capaz de brindar el

mismo servicio que ofrece el Servidor a los clientes, cuando éste por cualquier

motivo se encuentre de baja en las conexiones.

La réplica además de suplirlo en la conexión de una forma completamente

invisible para el Cliente, es a la vez, totalmente capaz de enviarle todas las

modificaciones que la base de datos haya sufrido en su ausencia, cuando éste

entra de nuevo a su papel de servidor central