Sei sulla pagina 1di 22

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.

1
Replicación.
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.
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.
Utilice la replicación para 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.
La replicación transaccional se usa normalmente en escenarios servidor a
servidor que requieren un alto rendimiento, como por ejemplo, la mejora de la
escalabilidad y la disponibilidad, el almacenamiento de datos y la creación de
informes, la integración de datos procedentes de varios sitios, la integración de
datos heterogéneos, y la descarga del procesamiento por lotes. La replicación
de mezcla se ha diseñado principalmente para las aplicaciones móviles o de
servidores distribuidos que pueden encontrarse con conflictos de datos. Los
escenarios más frecuentes son: el intercambio de datos con usuarios móviles,
las aplicaciones de punto de venta (POS) a consumidores, y la integración de
datos de varios sitios. La replicación de instantáneas se usa para proporcionar
el conjunto de datos inicial para la replicación transaccional y de mezcla;
también se puede usar cuando está indicada una actualización completa de los
datos. Con estos tres tipos de replicación, SQL Server proporciona un sistema
eficaz y flexible para la sincronización de datos en toda la organización. La
replicación en SQLCE 3.5 y SQLCE 4.0 se admite tanto en Windows Server
2012 como en Windows 8.
Actualmente existen en la red multitud de aplicaciones y de sistemas que
tienen por debajo una base de datos que sigue el modelo cliente-servidor.
Muchas veces esos sistemas deben de tener garantizada la accesibilidad por lo
que para evitar problemas es necesario utilizar este tipo de técnicas de
replicación de base de datos de forma que un fallo en uno de los servidores de
base de datos no impida a los usuarios seguir utilizando la aplicación.
Mediante la replicación de base de datos, usuarios de todo el mundo pueden
estar accediendo a lo que para ellos son los mismos datos, aunque en realidad,
físicamente esos datos pueden estar de forma transparente para el usuario, en
diferentes nodos o localidades.

2
 Tipos de replicación de base de datos.
o Replicación instantánea. Los datos de un servidor son
simplemente copiados a otro servidor o a otra base de datos
dentro del mismo servidor. Al copiarse todo no necesitas un
control de cambios. Se suele utilizar cuando los datos cambian
con muy poca frecuencia.
o Replicación transaccional. Primero se envía una copia completa
de la base de datos y luego se van enviando de forma periódica
(o a veces continua) las actualizaciones de los datos que
cambian. Se utiliza cuando necesitas que todos los nodos con
todas las instancias de la base de datos tengan los mismos datos
a los pocos segundos de realizarse un cambio.
o Replicación de mezcla. Los datos de dos o más bases de datos
se combinan en una sola base de datos. En primer lugar, se envía
una copia completa de la base de datos. Luego el Sistema de
Gestión de Base de Datos va comprobando los cambios que van
apareciendo en los distintos nodos y a una hora programada o a
petición los datos se sincronizan. Es sobre todo útil cuando cada
nodo suele utilizar solo los datos que se actualizan allí pero que
por circunstancias necesita tener también los datos de los otros
sitios.

Modelo de replicación.
El modelo de Replicación que usa SQL es el de “Publicador – Suscriptor”. Este
modelo consiste en Publicadores, Suscriptores y Distribuidores; las
publicaciones y los artículos, y las suscripciones por tirón o empuje. Además
incorpora agentes de administración como Agente de Instantánea, Agente
Lector de Registro, Agente de Distribución, y Agente de Mezcla. Todos los
agentes pueden funcionar debajo del agente del servidor del SQL y se pueden
administrar completamente por el Administrador del Servidor de SQL.

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

4
Los suscriptores además de obtener sus suscripciones, en dependencia del
tipo y opciones de replicación elegidas, puede devolver datos modificados al
publicador. Además, puede tener sus propias publicaciones.

Escenarios típicos de la replicación.


En una solución de replicación pudiera ser necesario utilizar varias
publicaciones en una combinación de metodologías y opciones. En la
replicación los datos o transacciones fluyen del publicador al suscriptor
pasando por el distribuidor.
Por lo tanto en su configuración mínima una topología de replicación se
compone de al menos dos o tres servidores SQL Server que desempeñan los
tres roles mencionados.
En la mayoría de las configuraciones, el peso fundamental de la replicación
recae, sobre el servidor de distribución. Por tanto éste puede ser un criterio
para determinar su ubicación, teniendo en cuenta las configuraciones
(posibilidades físicas) de los servidores, así como otras responsabilidades que
pueden estar desempeñando (servidor de dominio, servidor de páginas web
entre otras).
Existe la posibilidad de contar con un servidor que se suscriba a una
publicación y a la vez la publique para el resto de los suscriptores, esto puede
ser muy útil cuando se cuente con una conexión muy costosa con el publicador
principal. Por ejemplo el publicador principal en Madrid y los suscriptores en
Ciudad Habana, Varadero, Cayo Coco, Cayo Largo, etc. En casos como este,
se puede elegir un suscriptor, digamos el servidor de Ciudad Habana el cual se
suscribe al publicador en Madrid y a la vez actúa como servidor de publicación
para los servidores de Varadero, Cayo Coco, Cayo Largo y demás.
Evidentemente en una configuración tal pueden nuevamente combinarse la
ubicación de los dos distribuidores y aumentar el número de variantes que
pueden presentarse pero las consideraciones para determinar la ubicación del
servidor que fungirá como distribuidor son las ya mencionadas.

5
Artículo
Un artículo es la unidad básica de la replicación de SQL Server. Un artículo
puede consistir en tablas, procedimientos almacenados y vistas. Es probable
escalar el artículo, horizontal y verticalmente, usando una opción de filtro.
También vamos a poder crear múltiples artículos en el mismo objeto con
algunas restricciones y limitaciones.
Utilizando el asistente de Nueva publicación se puede navegar por el artículo.
Este nos permite ver las propiedades de un artículo y poder proporcionar
opciones para establecer propiedades para los artículos. En algunos casos, las
propiedades se pueden establecer durante el tiempo de creación de la
publicación y es una propiedad de solo lectura.
Después de la creación de una publicación de replicación de SQL Server,
como, por ejemplo, si alguna propiedad requiere un cambio, va a requerir, a su
vez, que se genere una nueva instantánea de replicación. Si la publicación
tiene una o más suscripciones, entonces el cambio va a requerir que todas las
suscripciones se reinicien. Para poder obtener más información, consulte Cómo
agregar/soltar artículos a/desde una publicación existente en el artículo de SQL
Server.

Beneficios de la replicación de base de datos.


 Aumento de la fiabilidad: mediante la replicación de base de datos a
través de múltiples servidores, te aseguras que los datos van a estar
disponibles incluso en el caso de que una de las máquinas tenga un fallo
grave de hardware. El sistema distribuido de gestión de bases de datos
debe ser capaz de enrutar a los usuarios afectados a otro de los nodos
disponibles.
 Mejora en el rendimiento: al estar los datos distribuidos en diferentes
servidores, los múltiples accesos no saturan los servidores. Esto es
importante sobre todo en el caso de aplicaciones que pueden tener
miles o cientos de miles de peticiones simultáneas. El rendimiento de las
aplicaciones aumenta notablemente.
 Mejora en la seguridad de los datos: en un sistema transaccional
tradicional, todas las actualizaciones de una base de datos se guardan
en un mismo disco. La seguridad de tus datos queda entonces en
manos de la estrategia de copias de seguridad que tengas
implementada en ese servidor. Con la replicación de base de datos
aumentas la seguridad de los datos ya que las actualizaciones están
siendo escritas en varios servidores. Es decir, varios discos, varias
fuentes de alimentación, CPU’s, etc. son utilizadas para asegurar que

6
tus datos estarán a salvo en algunos servidores, aunque pueda ocurrir
un desastre en otros.

Cómo realizar la replicación de base de datos.


En esta sección, crea cuentas de Windows para ejecutar agentes de
replicación. Va a crear distintas cuentas de Windows en el servidor local para
los siguientes agentes:

Agente Location Nombre de cuenta


Agente de
Publicador <nombreDeEquipo>\repl_snapshot
instantáneas
Agente de registro del
Publicador <nombreDeEquipo>\repl_logreader
LOG
Publicador y
Agente de distribución <nombreDeEquipo>\repl_distribution
suscriptor
Publicador y
Agente de mezcla <nombreDeEquipo>\repl_merge
suscriptor

Creación de cuentas locales de Windows para agentes de replicación en


el publicador.
 En el publicador, vaya al Panel de control y abra Administración de
equipos en Herramientas administrativas.
 En Herramientas del sistema, expanda Usuarios y grupos locales.
 Haga clic con el botón derecho en Usuarios y, después, seleccione
Usuario nuevo.
 Escriba repl_snapshot en el cuadro Nombre de usuario, proporcione
la contraseña y demás información relevante y, después, seleccione
Crear para crear la cuenta repl_snapshot:

7
 Repita el paso anterior para crear las cuentas repl_logreader,
repl_distribution y repl_merge:

 Seleccione cerrar.
Creación de cuentas locales de Windows para agentes de replicación en
el suscriptor.
 En el suscriptor, vaya al Panel de control y abra Administración de
equipos en Herramientas administrativas .
 En Herramientas del sistema, expanda Usuarios y grupos locales.
 Haga clic con el botón derecho en Usuarios y, después, seleccione
Usuario nuevo.
 Escriba repl_distribution en el cuadro Nombre de usuario,
proporcione la contraseña y demás información relevante y, después,
seleccione Crear para crear la cuenta repl_distribution.
 Repita el paso anterior para crear la cuenta repl_merge.
 Seleccione Cerrar.
Preparación de la carpeta de instantáneas.

8
En esta sección va a configurar la carpeta de instantáneas que se utiliza para
crear y almacenar la instantánea de publicación.
Crear un recurso compartido para la carpeta de instantáneas y asignar
permisos
1. En el Explorador de archivos, vaya a la carpeta de datos SQL Server. La
ubicación predeterminada es C:\Archivos de programa\Microsoft SQL
Server\MSSQL.X\MSSQL\Data.
2. Cree una carpeta con el nombre repldata.
3. Haga clic con el botón derecho en esta carpeta y seleccione
Propiedades.
a. En la pestaña Compartir del cuadro de diálogo Propiedades de repldata,
seleccione Uso compartido avanzado.
b. En el cuadro de diálogo Uso compartido avanzado, seleccione Compartir
esta carpeta y, después, seleccione Permisos.

4. En el cuadro de diálogo Permisos de repldata, seleccione Agregar. En


el cuadro de texto Seleccionar usuarios, equipos, cuentas de

9
servicio o grupos, escriba el nombre de la cuenta del Agente de
instantáneas creado anteriormente, como
<Nombre_De_Equipo_Publicador> \repl_snapshot. Seleccione
Comprobar nombres y, después, Aceptar.

5. Repita el paso 6 para agregar las otras dos cuentas que se crearon
previamente: <Nombre_De_Equipo_Publicador> \repl_merge y
<Nombre_De_Equipo_Publicador> \repl_distribution.
6. Después de agregar las tres cuentas, asigne los permisos siguientes:
 repl_distribution: Lectura
 repl_merge: Lectura
 repl_snapshot: Control total

10
7. Después de configurar correctamente los permisos de los recursos
compartidos, seleccione Aceptar para cerrar el cuadro de diálogo
Permisos de repldata. Seleccione Aceptar para cerrar el cuadro de
diálogo Uso compartido avanzado.
8. En el cuadro de diálogo Propiedades de repldata, seleccione la
pestaña Seguridad y seleccione Editar:

9. En el cuadro de diálogo Permisos de repldata, seleccione Agregar. En


el cuadro de texto Seleccionar usuarios, equipos, cuentas de
servicio o grupos, escriba el nombre de la cuenta del Agente de
instantáneas creado anteriormente, como
<Nombre_De_Equipo_Publicador> \repl_snapshot. Seleccione
Comprobar nombres y, después, Aceptar.

11
10. Repita el paso anterior para agregar permisos para el Agente de
distribución, por ejemplo <Nombre_De_Equipo_Publicador>
\repl_distribution y, para el Agente de mezcla,
<Nombre_De_Equipo_Publicador> \repl_merge.
11. Compruebe que se admiten los siguientes permisos:
 repl_distribution: Lectura
 repl_merge: Lectura
 repl_snapshot: Control total

12. Vuelva a seleccionar la pestaña Compartir y anote la Ruta de acceso a


la red para el recurso compartido. Necesitará esta ruta de acceso más
adelante cuando configure la carpeta de instantáneas.

12
13. Seleccione Aceptar para cerrar el cuadro de diálogo Propiedades de
repldata.
Configuración de la distribución en el publicador
1. Conéctese al publicador en SQL Server Management Studio y, después,
expanda el nodo de servidor.
2. Haga clic con el botón derecho en la carpeta Replicación y luego
seleccione Configurar distribución:

13
3. En la página Distribuidor, seleccione < 'NombreServidor' > actuará
como su propio distribuidor; SQL Server creará una base de datos
y un registro de distribución. Luego, seleccione Siguiente.

14
4. Si el Agente SQL Server no se está ejecutando, en la páginaSQL Server
Inicio del Agente, seleccione SíSQL Server y configure el servicio
del Agente para que se inicie automáticamente. Seleccione Next
(Siguiente).
5. Escriba la ruta de acceso \\<Nombre_De_Equipo_Publicador> \repldata
en el cuadro de texto Carpeta de instantáneas y, después, seleccione
Siguiente. Esta ruta de acceso debe coincidir con lo que vimos
anteriormente en Ruta de acceso a la red de la carpeta de propiedades
de repldata después de configurar las propiedades del recurso
compartido.

6. Acepte los valores predeterminados en las páginas restantes del


asistente.

15
7. Seleccione Finalizar para habilitar la distribución.

Establecer los permisos para la base de datos.


1. En SQL Server Management Studio, expanda Seguridad, haga clic con
el botón derecho en Inicios de sesióny, después, seleccione Nuevo
inicio de sesión:

16
2. En la página General, seleccione Buscar. Escriba
<Nombre_De_Equipo_Publicador> \repl_snapshot en el cuadro
Escriba el nombre de objeto a seleccionar, seleccione Comprobar
nombres y, después, seleccione Aceptar.

17
3. En la página Asignación de usuarios, en la lista Usuarios asignados
a este inicio de sesión, seleccione las bases de datos de distribución
y de AdventureWorks2012.
En la lista Pertenencia al rol de la base de datos, seleccione el rol
db_owner para el inicio de sesión en ambas bases de datos.

18
4. Seleccione Aceptar para crear el inicio de sesión.
5. Repita los pasos del 1 al 4 para crear un inicio de sesión para el resto de
cuentas locales (repl_distribution, repl_logreader y repl_merge). Estos
inicios de sesión también se deben asignar a usuarios que son
miembros del rol fijo de base de datos db_owner.

19
20
Conclusión.
En definitiva la replicación de base de datos se utiliza para propagar los datos
en entornos de base de datos distribuidas de forma que se mejora la
confiabilidad y el rendimiento de las aplicaciones que la utilizan. Tienes
diferentes tipos de replicación de base de datos que puedes utilizar. El escoger
uno u otro dependerá de la naturaleza y utilización de los mismos.
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.

21
Referencias bibliográficas.
 Elmasri, R y Navathe, S. B. Fundamentals of database systems.
Addison-Wesley, Third Edition, 2000.
 García, C. Escenario de red para la supervisión de fallas en centrales
telefónicas. Informe Final de Tesis de Maestría en Computación
Aplicada, Universidad Central de "Marta Abreu" de Las Villa, Santa
Clara, 1999.
 Microsoft Corporation, Libros en pantalla de SQL Server, 2017.

22

Potrebbero piacerti anche