replicación sql server 2008 - copia
Post on 09-Aug-2015
82 Views
Preview:
TRANSCRIPT
Replicación SQL Server 2008 Fernando Monroy Tenorio
Una replicación se origina cuando en una base de datos distribuida queremos mantener los
mismos datos en varios nodos. Para esto debemos garantizar que cuando en alguno de los nodos
se cambió, añade, o elimina un dato los demás nodos actualicen su información sobre el cambio.
De lo contrario no existiría coherencia o integridad entre cada uno de los servidores de bases de
datos.
Como indica el manual de referencia de Microsofot La replicación es un conjunto de tecnologías
destinadas a la copia y distribución de datos y objetos de base de datos desde una base de datos a
otra, para luego sincronizar ambas bases de datos y mantener su coherencia. La replicación permite
distribuir datos entre diferentes ubicaciones y entre usuarios remotos o móviles mediante redes
locales y de área extensa, conexiones de acceso telefónico, conexiones inalámbricas e Internet.
Microsoft SQL Server proporciona los siguientes tipos de replicación para usarlos en las aplicaciones
distribuidas:
Replicación transaccional. Replicación de mezcla. Replicación de instantáneas.
El tipo de replicación que se elige para una aplicación depende de muchos factores, como el
entorno físico de la replicación, el tipo y la cantidad de datos que se desean replicar y si los datos se
actualizan en el suscriptor. El entorno físico incluye el número y la ubicación de los equipos que
participan en la replicación, y si estos equipos son clientes (estaciones de trabajo, equipos portátiles
o dispositivos de mano) o servidores.
Replicación instantánea
La replicación de instantáneas distribuye los datos exactamente como aparecen en un momento
específico en el tiempo y no supervisa las actualizaciones de los datos. Cuando se produce la
sincronización, se genera la instantánea completa y se envía a los suscriptores.
El uso independiente de la replicación de instantáneas es más apropiado cuando se cumple una o
más de las siguientes condiciones:
Los datos no cambian con frecuencia.
Es aceptable disponer de copias de datos desfasados respecto al publicador durante un
período de tiempo.
se duplican pequeñas cantidades de datos.
Hay un gran volumen de cambios en un corto período de tiempo.
Replicación Transaccional
Normalmente, la replicación transaccional se inicia con una instantánea de los datos y los objetos
de la base de datos de publicaciones. En cuanto se obtiene la instantánea inicial, los posteriores
cambios de datos y modificaciones del esquema realizados en el publicador habitualmente se
entregan en el suscriptor cuando se producen (casi en tiempo real). Los cambios de datos se aplican
al suscriptor en el mismo orden y dentro de los mismos límites de la transacción que cuando se
produjeron en el publicador. Por tanto, en una publicación, se garantiza la coherencia transaccional.
La replicación transaccional se utiliza normalmente en entornos entre servidores y es la adecuada en
los siguientes casos:
Se desea que se propaguen cambios incrementales a los suscriptores en el momento en que
ocurren.
La aplicación requiere una latencia baja entre el momento en que se realizan los cambios en
el publicador y el momento en que llegan los cambios al suscriptor.
La aplicación necesita acceso a los estados intermedios de los datos. Por ejemplo, si una fila
cambia cinco veces, la replicación transaccional permite que una aplicación responda a cada
cambio (por ejemplo, la activación de un desencadenador) y no solo al cambio de datos neto
en la fila.
El publicador tiene un volumen elevado de actividad de inserción, actualización y eliminación.
El publicador o el suscriptor es una base de datos que no es de SQL Server, como Oracle.
Replicación de Mezcla
La replicación de mezcla, como la replicación transaccional, normalmente se inicia con una
instantánea de los objetos y datos de una base de datos de publicaciones. Los cambios de datos y
las modificaciones de esquema posteriores que se lleven a cabo en el publicador y en los
suscriptores se controlan mediante desencadenadores. El suscriptor se sincroniza con el publicador
cuando están conectados a la red e intercambian todas las filas que han cambiado entre el
publicador y el suscriptor desde la última vez que se produjo la sincronización.
La replicación de mezcla se suele utilizar en entornos de servidor a cliente. La replicación de mezcla
es adecuada en las siguientes situaciones:
Varios suscriptores actualizan los mismos datos en diferentes ocasiones y propagan 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.
Cada suscriptor requiere una partición de datos diferente.
Se pueden producir conflictos y, cuando ocurren, debe poder detectarlos y resolverlos.
La aplicación requiere el cambio de datos neto en lugar de acceso a los estados intermedios
de los datos. Por ejemplo, si una fila cambia cinco veces en el suscriptor antes de que éste se
sincronice con el publicador, la fila cambiará solo una vez en el publicador para reflejar el
cambio de datos neto (es decir, el quinto valor).
Elementos o componentes de una replicación en sql server
a) Publicación.- Es el recurso que se compartirá o que es común para los nodos de
nuestra base de datos en esta caso una tabla.
b) Publicador.- Es el servidor de base de datos que se encargara de publicar el recurso
(publicación) en nuestro caso la tabla.
c) Subscriptor.- El servidor encargado de realizar o escribir las modificaciones del
servidor publicador.
d) Agente sql que es el encargado de propagar los cambios en la red.
Escenario
Se requieren dos equipos conectados en red y con SQL Server instalados los llamaremos
NODO 1 y NODO2 en los cuales se deben crear dos bases de datos llamadas
respectivamente NODO1 y NODO2 dentro tendrán ambas una única tabla llamada datos
con los campos de Nombre, Apellidos, Dirección y Teléfono. Los tipos de datos y
longitudes son a criterio solo hay que tener en consideración que en ambas bases de datos
las tablas deben tener la misma estructura.
Configuración del servidor publicador y de la publicación
Esta configuración se debe aplicar únicamente al servidor de base de datos NODO1:
Dar clic derecho en la opción del servidor de base de datos de replicación y en la opción de
publicador dar clic derecho y configurar distribuidor
En la siguiente opción se debe de elegir la primera la cual indica que el servidor o la
instancia local donde se está trabajando será el servidor publicador. La otra opción que no
debe seleccionarse es para incluir un servidor o instancia diferente como distribuidor.
A continuación indicaremos que el agente de SQL Server se configure para arrancar
automáticamente (si no lo teníamos ya configurado de esta forma). La relación entre el
agente de SQL Server y la replicación es muy íntima ya que el agente es el responsable de
la ejecución de los agentes de replicación (meros ejecutables con parámetros) mediante el
uso de jobs de SQL Server. Es muy importante que este en esta opción.
Posteriormente e configura la instantánea. Una instantánea contiene todos los datos que
vamos a replicar que están presentes en un instante en el tiempo. Una vez que se ha
generado una instantánea se utilizará para inicializar los suscriptores y poder continuar
la replicación de datos desde ese punto en el tiempo. En la parte de Snapshot folder es muy
importante colocar una carpeta compartida es decir un recurso de red donde se pueda
acceder de manera remota con todos los permisos de preferencia para todos los usuarios. Se
podría colocar por ejemplo la ruta \\instantaneas se debe de crear la carpeta en la ubicación
de preferencia en C y darle a la carpeta de instantáneas todos los privilegio para acceder a
ella.
Elegiremos la ubicación para los ficheros de datos y del log de transacciones de nuestra
base de datos de distribución e indicaremos que deseamos que nuestra instancia sea un
publicador autorizado:
Una vez configurada la distribución procederemos a crear nuestra publicación. Para ello
desplegaremos el nodo “Replication” del Object Explorer de la instancia e indicaremos con
el menú contextual del nodo “Local Publications” que queremos crear una nueva:
Elegiremos la base de datos que contiene los artículos (tablas, vistas, procedimientos, etc.)
que vamos a replicar. Para nuestro caso la base de datos es NODO1 y el artículo es la tabla
de datos.
Indicaremos que vamos a utilizar replicación transaccional. En la replicación transaccional
se garantiza el orden de las transacciones así como la consistencia de dichas
transacciones.
A continuación seleccionaremos los artículos a replicar. En nuestro caso recuerda la tabla
de datos. En la imagen aparece otra base debido a que el autor de donde se copió la
información toma esa tabla como ejemplo, solo cámbiala a la de datos.
Es interesante que revisemos si las propiedades de replicación del artículo por defecto se
ajustan a nuestras necesidades. Para ello utilizaremos el botón “Article Properties” para
desplegar la ventana de propiedades. Para esta práctica se recomienda dejar estos
parámetros como se encuentran y no modificarlos.
Una vez configuradas las propiedades, continuaremos con los filtros de datos. En este caso
se recomienda que se dejen sin filtros solo da clic en next
A continuación configuraremos el agente de instantáneas (snapshot) para que nos genere
una instantánea al finalizar el asistente. De esta forma podremos inicializar un suscriptor
tan pronto como la instantánea finalice. Para esto solo deja la opción tal y como se muestra
en la siguiente imagen:
A continuación indicaremos las cuentas de seguridad que utilizarán los agentes. Se
recomienda dejarlo tal y como se muestra a continuación:
Finalmente, crearemos la publicación que hemos configurado.
Con eso termina la configuración del nodo 1. Posteriormente se relizara la configuración
del NODO2 el cual será para este caso únicamente un subscriptor para eso se da clic en la
siguiente opción sobre la base de datos NODO2 del servidor que fungirá como segundo
nodo.
Para comenzar seleccionaremos el publicador, nuestra instancia donde configuramos la
publicación, y la base de datos publicada: Se debe dar clic en la opción de buscar
servidores publicadores y se les pedirá que se conecten al servidor publicador en este caso
al nodo 1 para eso ya deben tener previamente configurada la conexión remota:
v
Ya conectados al servidos publicador en este caso el nodo1 deben seleccionar la
publicación que es la tabla de datos, en la imagen se muestra otra tabla. Elijan la del
ejercicio que estamos configurando
A continuación elegimos la modalidad de la suscripción, push o pull. Las
suscripcionespush son aquellas en las que el agente de distribución, responsable de
entregar las transacciones del distribuidor al suscriptor, se ejecuta en el distribuidor. Las
suscripciones pull son aquellas en las que el agente de distribución se ejecuta en
elsuscriptor. Para el caso de este ejemplo se elige push.
Elegiremos la instancia y la base de datos donde se replicarán nuestros datos. Que en
nuestro caso es NODO2
De nuevo utilizaremos la seguridad del proceso del agente para simplificar la conectividad..
Dejar por default esta opción.
En la siguiente opción se selecciona la configuración del agente de manera que corra
continuamente. tal y como se muestra.
Finalmente indicaremos cuando deseamos que se inicialice la suscripción a partir del
snapshot. En nuestro caso es de manera inmediata.
Se da clic en la opción de crear subscripción
Ahora para verificar puedes hacer algún cambio en el publicador y ver como se refleja en el
subscriptor la otra forma de verificar es ver la conexión. En el publicador y distribuidor:
Debe aparecer correctamente generado en el publicador:
Y en el subscriptor debe aparecer:
Otro ejemplo en la liga: http://www.youtube.com/watch?v=WZGdTmY3V
top related