Documentos de Académico
Documentos de Profesional
Documentos de Cultura
La Replicación
La Replicación
La replicacin es un conjunto de tecnologas destinadas a la copia y distribucin 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 replicacin permite distribuir datos entre diferentes ubicaciones y entre usuarios remotos o mviles mediante redes locales y de rea extensa, conexiones de acceso telefnico, conexiones inalmbricas e Internet. La replicacin transaccional se usa normalmente en escenarios servidor a servidor que requieren un alto rendimiento, como por ejemplo: La replicacin de mezcla se ha diseado principalmente para las aplicaciones mviles o de servidores distribuidos que pueden encontrarse con conflictos de datos. Los escenarios ms frecuentes son: El intercambio de datos con usuarios mviles, las aplicaciones de punto de venta (POS) a consumidores, y la integracin de datos de varios sitios. La replicacin de datos se usa para proporcionar el conjunto de datos inicial para la replicacin transaccional y de mezcla; tambin se puede usar cuando est indicada una actualizacin completa de los datos. Con estos tres tipos de replicacin, SQL Server proporciona un sistema eficaz y flexible para la sincronizacin de datos en toda la organizacin.
En la mayora de las cuadrculas del Monitor de replicacin, ahora puede hacer lo siguiente: seleccionar las columnas que quiere ver, ordenar por varias columnas, y filtrar las filas de la cuadrcula basndose en los valores de las columnas. El nombre de la ficha Trabajos comunes del nodo de publicador se ha cambiado a Agentes. La ficha Agentes ahora proporciona una ubicacin centralizada para ver informacin sobre todos los agentes y trabajos relacionados con las publicaciones del publicador seleccionado. Entre los agentes y los trabajos relacionados con las publicaciones se incluyen los siguientes:
El Agente de instantneas, utilizado por todas las publicaciones. El Agente de registro del LOG, utilizado por todas las publicaciones transaccionales. El Agente de lectura de cola, utilizado por publicaciones transaccionales que admiten suscripciones de actualizacin en cola. Tareas de mantenimiento, utilizadas por todas las publicaciones.
Pgina 1
La ficha Advertencias y agentes del nodo de publicacin se ha dividido en dos fichas independientes: Advertencias y Agentes. El hecho de dividir las fichas pone de relieve las diferencias entre administrar las advertencias de rendimiento y supervisar los agentes de replicacin. La ficha Agentes se actualiza automticamente, pero no ocurre lo mismo con la ficha Advertencias.
La replicacin de instantneas
De forma predeterminada, los tres tipos de replicacin utilizan una instantnea para inicializar suscriptores. El Agente de instantneas de SQL Server siempre genera los archivos de instantneas, pero el agente que entrega los archivos vara segn el tipo de replicacin que se utilice. La replicacin de instantneas y la replicacin transaccional utilizan el Agente de distribucin para entregar los archivos, mientras que la replicacin de mezcla utiliza el Agente de mezcla de SQL Server. El Agente de instantneas se ejecuta en el distribuidor. El Agente de distribucin y el Agente de mezcla se ejecutan en el distribuidor para las suscripciones de insercin o en los suscriptores para las suscripciones de extraccin. Las instantneas se pueden generar y aplicar inmediatamente tras la creacin de la suscripcin o de acuerdo con una programacin establecida en el momento de crear la publicacin. El Agente de instantneas prepara archivos de instantneas que contienen el esquema y los datos de las tablas y objetos de base de datos publicados, almacena los archivos en la carpeta de instantneas del publicador y registra la informacin de seguimiento en la base de datos de distribucin del distribuidor. Al configurar un distribuidor se especifica la carpeta de instantneas predeterminada, pero puede especificar una ubicacin alternativa para una publicacin en lugar de, o adems de, la predeterminada.
Pgina 2
Pgina 3
Replicacin transaccional
La replicacin transaccional se implementa con el Agente de instantneas, el Agente de registro del LOG y el Agente de distribucin de SQL Server. El Agente de instantneas prepara archivos de instantneas que contienen esquemas y datos de las tablas y objetos de base de datos publicados, almacena los archivos en la carpeta de instantneas y registra los trabajos de sincronizacin en la base de datos de distribucin del distribuidor. El Agente de registro del LOG supervisa el registro de transacciones de cada base de datos configurada para la replicacin transaccional y copia las transacciones marcadas para ser replicadas desde el registro de transacciones a la base de datos de distribucin, que acta como una cola de almacenamiento y reenvo confiable. El Agente de distribucin copia los archivos de instantneas iniciales de la carpeta de instantneas y las transacciones almacenadas en las tablas de la base de datos de distribucin a los suscriptores. Los cambios incrementales realizados en el publicador se transfieren a los suscriptores de acuerdo con la programacin del Agente de distribucin, que se puede ejecutar continuamente para que la latencia sea mnima o a intervalos programados. Puesto que los datos deben cambiarse en el publicador (cuando se utiliza la replicacin
Ingeniera Informtica y de Sistemas. Pgina 4
Replicacin de mezcla
El Agente de instantneas y el Agente de mezcla de SQL Server implementan la replicacin de mezcla. Si la publicacin no se filtra o utiliza filtros estticos, el Agente de instantneas crea una sola instantnea. Si la publicacin utiliza filtros con parmetros, el Agente de instantneas crea una instantnea para cada particin de datos. El Agente de mezcla aplica las instantneas iniciales a los suscriptores. Tambin mezcla los cambios incrementales de los datos que tienen lugar en el publicador o en los suscriptores despus de la creacin de la instantnea inicial y detecta y resuelve los conflictos segn las reglas que configure. En el siguiente diagrama se muestran los componentes que se utilizan en la replicacin de mezcla.
Pgina 5
El publicador (editor) de una revista produce una o ms publicaciones. Una publicacin contiene artculos. El publicador distribuye la revista directamente o a travs de un distribuidor. Los suscriptores reciben las publicaciones a las que se han suscrito.
Aunque la metfora de la revista es til para comprender la replicacin, es importante sealar que la replicacin de SQL Server incluye funciones que no estn representadas en esta metfora, en particular, la posibilidad de que un suscriptor realice actualizaciones y de que un publicador enve cambios incrementales a los artculos de una publicacin. Una topologa de replicacin define la relacin entre los servidores y las copias de los datos, y aclara la lgica que determina cmo fluyen los datos entre los servidores. Hay varios procesos de replicacin (denominados agentes) que son responsables de copiar y mover los datos entre el publicador y los suscriptores. En la siguiente ilustracin se muestra informacin general acerca de los componentes y procesos que participan en la replicacin.
Pgina 6
Publicador
El publicador es una instancia de base de datos que permite que los datos estn disponibles para otras ubicaciones a travs de la replicacin. El publicador puede tener una o ms publicaciones, cada una de las cuales representa un conjunto de objetos y datos relacionados lgicamente para replicar.
Distribuidor
El distribuidor es una instancia de base de datos que funciona como almacn para datos especficos de replicacin asociados con uno o ms publicadores. Cada publicador est asociado con una sola base de datos (conocida como la base de datos de distribucin) en el distribuidor. La base de datos de distribucin almacena los datos de estado de la replicacin, metadatos acerca de la publicacin y, en algunos casos, funciona como cola para los datos que se transfieren del publicador a los suscriptores. En muchos casos, una sola instancia de servidor de bases de datos funciona como publicador y como distribuidor Esto se conoce como un distribuidor local. Cuando el publicador y el distribuidor se configuran en instancias distintas del servidor de bases de datos, el distribuidor se denomina un distribuidor remoto.
Suscriptores
Un suscriptor es una instancia de base de datos que recibe datos replicados. Un suscriptor puede recibir datos de varios publicadores y publicaciones. En funcin del tipo de replicacin elegida, el suscriptor tambin puede devolver los datos modificados al publicador o volver a publicar los datos en otros suscriptores.
Artculo
Un artculo identifica un objeto de base de datos incluido en una publicacin. Una publicacin puede contener diferentes tipos de artculos, como tablas, vistas, procedimientos almacenados y otros objetos. Cuando las tablas se publican como artculos, se pueden usar filtros para restringir las columnas y filas de datos que se envan a los suscriptores.
Pgina 7
Suscripcin
Una suscripcin es una solicitud de una copia de una publicacin que se entrega a un suscriptor. La suscripcin define qu publicacin se recibir, dnde y cundo. Hay dos tipos de suscripciones: de insercin y de extraccin.
Agente de instantneas
Por lo general, el Agente de instantneas se utiliza con todos los tipos de replicacin. Prepara esquemas y archivos de datos iniciales de tablas publicadas y otros objetos, almacena los archivos de instantneas y registra la informacin acerca del estado de sincronizacin en la base de datos de distribucin. El Agente de instantneas se ejecuta en el distribuidor.
Agente de mezcla
El Agente de mezcla se utiliza con la replicacin de mezcla. Aplica la instantnea inicial al suscriptor, y transfiere y reconcilia los cambios incrementales de datos que se producen. Cada suscripcin de mezcla tiene su propio Agente de mezcla, que se conecta con el publicador y con el suscriptor, y los actualiza. El Agente de mezcla se ejecuta en el distribuidor, para las suscripciones de insercin, o en el suscriptor, para las suscripciones de extraccin. De forma predeterminada, el Agente de mezcla carga los cambios del suscriptor al publicador y, a continuacin, descarga los cambios del publicador al suscriptor.
Se mantiene una copia permanente de los pasos que se usan para implementar la topologa de replicacin.
Pgina 9
Se usa un nico script para configurar varios suscriptores. Se instruye rpidamente a los nuevos administradores de bases de datos permitindoles evaluar, entender, cambiar o solucionar problemas del cdigo.
Crear scripts de replicacin Desde el punto de vista de la replicacin, un script es una serie de una o varias instrucciones de Transact-SQL que cada una ejecuta un procedimiento almacenado de replicacin. Los scripts son archivos de texto, a menudo con la extensin .sql, que se pueden ejecutar utilizando la utilidad sqlcmd. Cuando se ejecuta un archivo de script, la utilidad ejecuta las instrucciones de SQL almacenadas en l. De igual forma, un script puede almacenarse como un objeto de consulta en un proyecto de SQL Server Management Studio. Los scripts de replicacin se pueden crear de las maneras siguientes:
Manualmente. Use las caractersticas de generacin de scripts que se proporcionan en los asistentes de replicacin o SQL Server Management Studio. Para obtener ms informacin, vea Cmo generar scripts de objetos de replicacin (SQL Server Management Studio). Utilice Objetos de administracin de replicacin (RMO) para generar mediante programacin el script y crear un objeto RMO.
Al crear manualmente los scripts de replicacin, tenga presente las consideraciones siguientes:
Los scripts Transact-SQL constan de uno o varios lotes. El comando GO seala el final de un lote. Si un script de Transact-SQL no contiene ningn comando GO, se ejecutar como un nico lote. Al ejecutar varios procedimientos almacenados de la replicacin en un nico lote, despus del primer procedimiento, la palabra clave EXECUTE debe preceder todos a los procedimientos subsiguientes en el lote. Todos los procedimientos almacenados en un lote deben compilarse antes de que se ejecute un lote. Sin embargo, una vez compilado el lote y creado un plan de ejecucin, un error de tiempo de ejecucin puede aparecer o no. Al crear scripts para configurar la replicacin, debera utilizar la autenticacin de Windows para evitar almacenar las credenciales de seguridad en el archivo de script. Si debe almacenar las credenciales en un archivo de script, debe protegerlo para evitar el acceso no autorizado.
Pgina 10
Configurar la publicacin y la distribucin Modificar las propiedades del distribuidor y del publicador Deshabilitar la publicacin y la distribucin Crear publicaciones y definir artculos Eliminar publicaciones y artculos Crear una suscripcin de extraccin Modificar una suscripcin de extraccin Eliminar una suscripcin de extraccin Crear una suscripcin de insercin Modificar una suscripcin de insercin Eliminar una suscripcin de insercin Sincronizar una suscripcin de extraccin
Pgina 14
El resto de este tema describe estos pasos con ms detalle. Para ayudar a mostrar el proceso de planeamiento, se ha incluido un ejemplo.
Si los datos replicados tienen que estar actualizados y quin debe actualizarlos. Las necesidades de distribucin de los datos con respecto a la coherencia, autonoma y latencia. El entorno de replicacin, incluidos los usuarios empresariales, la infraestructura tcnica, la red y la seguridad, y las caractersticas de los datos. Los tipos y las opciones de replicacin. Las topologas de replicacin y cmo se alinean con los tipos de replicacin.
Configurar la replicacin. Sincronizar suscripciones. Mantener una topologa de replicacin. Supervisar una topologa de replicacin. Solucionar problemas de la replicacin.
Tambin es comn ampliar la aplicacin combinando las funcionalidades de replicacin con otras funcionalidades que se proporcionan a travs de SQL Server. En la tabla
Ingeniera Informtica y de Sistemas. Pgina 15
Planear la seguridad
La seguridad es importante en cualquier aplicacin y su planeamiento se debera completar antes de escribir ningn cdigo. La seguridad de la aplicacin puede dividirse en tres partes principales: proteger la base de datos, proteger la replicacin y escribir cdigo seguro. Los siguientes temas proporcionan informacin sobre la seguridad:
Cdigo administrado Entorno de desarrollo orientado a objetos que aprovecha las ventajas de la programacin de .NET Framework y Common Language Runtime (CLR) de .NET. El cdigo administrado es el entorno de programacin recomendado para el desarrollo de .NET y para las aplicaciones de SQL Server. Las interfaces de replicacin administradas habilitan la programacin de la administracin de la replicacin de una manera orientada a objetos sin tener que conocer TransactSQL y tambin proporcionan algunas funcionalidades de devolucin de llamada al ejecutar agentes de replicacin que no estn disponibles en los scripts. El cdigo administrado es el mejor entorno para desarrollar componentes reutilizables y aplicaciones de interfaz de usuario.
Scripts Aplicaciones sencillas que ejecutan una serie de comandos como procedimientos almacenados del sistema de replicacin en scripts o comandos de Transact-SQL en archivos por lotes. Aunque puede ejecutar los scripts en un entorno administrado utilizando el proveedor administrado en proceso de SQL Server, la misma funcionalidad se puede obtener mediante interfaces de replicacin administradas, que tambin proporcionan funcionalidades de devolucin de llamada. Los scripts son el entorno mejor para ejecutar tareas que se ejecutarn slo algunas veces y en las que no se requieren las funcionalidades de devolucin de llamada, como instalar un servidor de replicacin.
Pgina 16
Cdigo nativo El CLR no administra el entorno de desarrollo orientado a objetos que utiliza el acceso directo al sistema o a los objetos COM como ese cdigo. Las interfaces de replicacin de cdigo nativo han quedado obsoletas o han dejado de utilizarse.
Ejemplo
En Adventure Works, tienen que publicarse los datos de 200 representantes de ventas de todo el mundo. Los representantes de ventas viajan a menudo y necesitan utilizar equipos porttiles o asistentes digitales personales (PDA) para cambiar los datos de los clientes y agregar los pedidos nuevos. A continuacin, los cambios tendrn que sincronizarse con el publicador cuando el representante de ventas conecte el porttil a la red. Para esta aplicacin, los pasos de planeamiento podran ser similares a los siguientes: 1. La topologa de replicacin de esta aplicacin ya existe. Sin embargo, debe crearse una suscripcin de extraccin nueva en el cliente. La publicacin debera utilizar filtros parame trizados para replicar un conjunto nico de datos para cada representante de ventas. 2. Adems del acceso a datos tpico requerido para una aplicacin de ventas, esta aplicacin debera permitir que un vendedor sincronizara la suscripcin de extraccin a peticin haciendo clic en un botn. Puesto que un representante de ventas instalar y ejecutar la aplicacin, tambin necesita poder configurar una suscripcin y aplicar la instantnea inicial en el cliente. Opcionalmente, la aplicacin utilizar la infraestructura que proporciona Windows para detectar la conectividad inalmbrica y sincronizar automticamente la suscripcin cuando se descubra una conexin. 3. Siga todas las instrucciones de seguridad para la replicacin, incluido el uso de la autenticacin de Windows y una red privada virtual (VPN) al conectarse al publicador. Si est implementando la sincronizacin web, utilice una conexin de capa de sockets seguros (SSL). Para aprovechar las caractersticas de .NET Framework, la aplicacin se desarrolla utilizando un lenguaje de cdigo administrado. 4. Segn estos requisitos, la interfaz administrada de Objetos de administracin de la replicacin (RMO) puede proporcionar toda la funcionalidad de la replicacin que se necesita para esta aplicacin.
Pgina 17
Introduccin a RMO
En esta seccin se describe cmo iniciar un proyecto RMO simple utilizando Microsoft Visual Studio. Para crear un proyecto nuevo de Microsoft Visual C# 1. Inicie Visual Studio. 2. En el men Archivo, haga clic en Nuevo proyecto. Aparecer el cuadro de dilogo Nuevo proyecto. 3. En el cuadro de dilogo Tipos de proyecto, seleccione Proyectos de Visual C#. En el panel Plantillas, seleccione Aplicacin para Windows. 4. Opcional) En Nombre, escriba el nombre de la nueva aplicacin. 5. Haga clic en Aceptar para cargar la plantilla de Windows de Visual C#. 6. En el men Proyecto, seleccione el elemento Agregar referencia. Aparecer el cuadro de dilogo Agregar referencia. 7. Seleccione los ensamblados siguientes en la lista en la ficha .NET y, a continuacin, haga clic en Aceptar. Interfaz de programacin Microsoft.SqlServer.Replication de .NET Microsoft.SqlServer.ConnectionInfo Biblioteca de agentes de replicacin
Pgina 18
Pgina 19
Todas las propiedades de la conexin se definen para un objeto ServerConnection dado. Una conexin a cada instancia de SQL Server debe tener su propio objeto ServerConnection. El objeto ServerConnection se asigna a la propiedad ConnectionContext del objeto de programacin de RMO que se va a crear o al que se va a tener acceso en el servidor. El mtodo Connect abre la conexin al servidor. Se debe llamar a este mtodo antes de llamar a cualquier mtodo que tenga acceso al servidor en cualquier objeto de programacin de RMO que use la conexin. Dado que tanto RMO como Objetos de administracin de SQL Server (SMO) usan la clase ServerConnection para las conexiones a SQL Server, los objetos SMO y RMO pueden utilizar la misma conexin. Para obtener ms informacin, vea Conectarse a una instancia de SQL Server. Toda la informacin de autenticacin para realizar la conexin e iniciar sesin en el servidor correctamente se proporciona en el objeto ServerConnection. La autenticacin de Windows es el valor predeterminado. Para utilizar la autenticacin de SQL Server, LoginSecure debe establecerse en el valor false y Login yPassword debe establecerse en un inicio de sesin y una contrasea de SQL Server vlidos. Las credenciales de seguridad siempre deben almacenarse y administrarse de forma segura, y se deben proporcionar en tiempo de ejecucin cuando sea posible. Para las aplicaciones multiproceso, se debe utilizar un objeto ServerConnection independiente en cada subproceso.
Llame al mtodo Disconnect en el objeto ServerConnection para cerrar las conexiones al servidor activas que usan los objetos RMO.
Pgina 20
Escenario
Este ejemplo resalta una topologa de replicacin de mezcla para entregar datos a usuarios mviles, y tambin muestra las caractersticas de programacin de la replicacin de mezcla en SQL Server. Este ejemplo es una aplicacin basada en Windows Forms que utiliza tecnologas de acceso de datos estndar de Microsoft y la replicacin de mezcla para permitir que un vendedor realice el mantenimiento de sus datos locales y lleve a cabo una sincronizacin peridica con la oficina central. Este ejemplo es compatible con aquellos suscriptores que ejecuten cualquier edicin de SQL Server. La publicacin tambin es compatible con los suscriptores de SQL Server Compact 3.5 SP1. Para obtener ms informacin acerca de este escenario de ejemplo, vea Caso de ejemplo Sales Orders.
Pgina 21
C# Transact-SQL
Caractersticas
El ejemplo Sales Orders muestra las siguientes caractersticas de la replicacin de mezcla:
Objetos de administracin de replicacin (RMO) Filtros de fila con parmetros Particiones precalculadas Instantnea con particiones solicitada por el cliente Optimizaciones de rendimiento basadas en el tipo de artculo SQL Server Compact 3.5 SP1 y suscriptores de SQL Server Express. Administracin automtica del intervalo de identidades Controladores de lgica de negocios Sincronizacin Web (opcional)
Requisitos previos
Antes de ejecutar este ejemplo, asegrese de que est instalado el siguiente software:
SQL Server 2005 o versin posterior, incluidos los siguientes componentes instalados opcionalmente: Servicios de SQL Server Database Engine (Motor de base de datos de SQL Server) (incluida la replicacin) Herramientas cliente Base de datos OLTP de ejemplo AdventureWorks. Esta base de datos de ejemplo est disponible en la pgina Microsoft SQL Server Samples and Community Projects en CodePlex. Los ejemplos de SQL Server. Estos ejemplos estn disponibles en la pgina Microsoft SQL Server Samples and Community Projects en CodePlex
Permisos necesarios
Los permisos necesarios para configurar y ejecutar el ejemplo Sales Orders se basan en las necesidades de seguridad de replicacin y son los siguientes:
Para ejecutar InstallSalesOrdersSample.bat, que configura la replicacin, crea la publicacin AdvWorksSalesOrders y genera la instantnea inicial, su cuenta de Windows debe ser miembro de la funcin fija de servidor sysadmin en el publicador. El ejemplo Sales Orders realiza varias tareas del Database Engine (Motor de base de datos) y replicacin, incluida la creacin de la base de
Pgina 22
En el publicador, ejecute el script de instalacin de replicacin. (Opcional) Configure el servidor de Internet Information Services (IIS) para admitir la sincronizacin Web para la replicacin de mezcla. Si no se hace esto, no se puede usar la caracterstica de sincronizacin Web del ejemplo. En el suscriptor, modifique la configuracin en el archivo app.config del ejemplo. En el suscriptor, genere el ejemplo mediante el SDK de Visual Studio 2005 o .NET Framework 2.0. En el suscriptor, coloque una copia del ensamblado BusinessLogic.dll en el directorio C:\Archivos de programa\Microsoft SQL Server\100\COM. Cuando se utiliza la sincronizacin web, tambin debe colocar una copia del archivo BusinessLogic.dll en el directorio C:\Archivos de programa\Microsoft SQL Server\100\COM en el servidor web.
Ejecutar el ejemplo Para ejecutar el ejemplo Sales Orders y sincronizar los datos
1. Asegrese de que las conexiones remotas estn habilitadas en el publicador y en el suscriptor (TCP/IP o Canalizaciones con nombre) y de que el servicio del Agente SQL Server se est ejecutando. 2. (Opcional) En el suscriptor, pruebe la conexin de la sincronizacin web; para ello, conctese al servidor web en el modo de diagnstico siguiendo las instrucciones para configurar certificados de cliente en el suscriptor contenidas en How to: Configure Web Synchronization for Merge Replication (Replication Transact-SQL Programming). 3. Inicie SalesOrders.exe desde Visual Studio 2005 o desde el smbolo del sistema. Cuando la aplicacin se ejecuta por primera vez, se crean la base de datos de suscripciones y la suscripcin, y se inicia el Agente de mezcla para inicializar la suscripcin. 4. Una vez que se han inicializado los datos de suscripcin, se carga el formulario Sales Orders, mostrando una lista de pedidos existentes que corresponden al vendedor "adventure-works\garrett1". 5. Mediante el formulario Sales Orders, puede hacer los siguientes cambios en los datos de venta: Editar la informacin de los pedidos de venta. Agregar un nuevo artculo a un pedido de venta.
Ingeniera Informtica y de Sistemas. Pgina 25