Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Managed Instance
Antes de desarrollar una aplicación que utilice funcionalidades de replicación, sigue estos pasos generales de planificación:
Definir la topología de replicación.
Definir la funcionalidad de la aplicación.
Planear la seguridad.
Elegir un entorno de desarrollo.
Elegir la interfaz de programación de la replicación adecuada.
El resto de este artículo describe estos pasos con más detalle. Para ayudar a ilustrar el proceso de planificación, se incluye un ejemplo.
Definición de la topología de replicación
El primer paso para programar la replicación es definir la topología de replicación de la aplicación. Si estás escribiendo una aplicación que utiliza una topología de replicación existente, como una aplicación cliente que accede a datos de un suscriptor existente, pasa al siguiente paso.
Nota:
En algunos casos, el despliegue de la topología de replicación es el único propósito de la aplicación.
La topología de replicación que defina depende de muchos factores, como son los siguientes:
Si los datos replicados necesitan actualizarse, y por quién.
Las necesidades de distribución de los datos con respecto a la coherencia, autonomía y latencia.
El entorno de replicación, incluidos los usuarios empresariales, la infraestructura técnica, la red y la seguridad, y las características de los datos.
Los tipos y las opciones de replicación.
Las topologías de replicación y cómo se alinean con los tipos de replicación.
Si eres nuevo en la replicación de Microsoft SQL Server, consulta Tipos de Replicación.
Definición de funcionalidad de la aplicación
Después de definir la topología de replicación, decide las funcionalidades que ofrece tu aplicación. Estas funcionalidades pueden abarcar desde un script que sincronice una suscripción a una aplicación con una interfaz de usuario para configurar la replicación. La replicación admite las tareas generales de programación siguientes:
Configurar la replicación.
Sincronizar suscripciones.
Mantener una topología de replicación.
Supervisar una topología de replicación.
Solucionar problemas de la replicación.
También es común ampliar tu aplicación combinando funcionalidades de replicación con otras que ofrece SQL Server. En la tabla siguiente se resaltan algunas funcionalidades extendidas que podría proporcionar en la aplicación de replicación.
| Funcionalidad | Ejemplo |
|---|---|
| Administración del servidor mediante objetos de administración de SQL Server (SMO) | Una aplicación que permite que un administrador adjunte y configure una base de datos como publicador en una topología de replicación. |
| Acceso a datos mediante ADO.NET | Una aplicación que permite a los usuarios acceder y modificar programáticamente los datos de ventas replicados en una base de datos local de suscriptores mientras están fuera de línea y luego conectar y sincronizar la suscripción pull seleccionando un botón. |
Planificación de la seguridad
La seguridad es importante en cualquier aplicación, y deberías planificar la seguridad antes de escribir cualquier código. La seguridad de la aplicación puede dividirse en tres partes principales: proteger la base de datos, proteger la replicación y escribir código seguro.
Los siguientes artículos proporcionan información sobre seguridad:
Ver y modificar la configuración de seguridad de la replicación
Centro de seguridad para el Motor de base de datos de SQL Server y Azure SQL Database
Elección de un entorno de desarrollo
Cuando desarrolles una aplicación de replicación, considera estos tres entornos básicos de desarrollo. Cada uno tiene acceso a las mismas funcionalidades de replicación con algunas excepciones. Puedes desarrollar aplicaciones de replicación en cada uno de los siguientes entornos.
Código administrado
Entorno de desarrollo orientado a objetos que aprovecha los beneficios de la programación del Framework .NET y el entorno de ejecución del lenguaje común .NET (CLR). El código administrado es el entorno de programación recomendado para el desarrollo de .NET y las aplicaciones de SQL Server. Las interfaces de replicación gestionada te permiten programar la administración de replicaciones de forma orientada a objetos sin necesidad de conocer Transact-SQL. También proporciona algunas funcionalidades de callback al ejecutar agentes de replicación que no están disponibles en scripts. El código administrado es el mejor entorno para desarrollar componentes reutilizables y aplicaciones de interfaz de usuario.
Scripting
Aplicaciones sencillas que ejecutan una serie de comandos como procedimientos almacenados del sistema de replicación en scripts de Transact-SQL o comandos en archivos por lotes. Aunque puedes ejecutar scripts en un entorno gestionado usando el proveedor gestionado en proceso SQL Server, puedes obtener la misma funcionalidad usando interfaces de replicación gestionadas, que también ofrecen funcionalidades de callback. El scripting es el mejor entorno para ejecutar tareas que solo se ejecutan unas pocas veces y donde no se requieren funcionalidades de callback, como instalar un servidor de replicación.
Código nativo
Entorno de desarrollo orientado a objetos que utiliza acceso directo al sistema o a objetos COM de modo que el código no es gestionado por el CLR. Las interfaces de replicación de código nativo han quedado obsoletas o han dejado de utilizarse. Para obtener más información, vea Características que ya no se usan en la replicación de SQL Server o Compatibilidad con versiones anteriores de replicación.
Elige la interfaz de programación de replicación adecuada
El último paso del planeamiento es elegir la interfaz de programación de la replicación adecuada que implementa la funcionalidad de replicación deseada para el entorno de desarrollo elegido. La siguiente tabla muestra las interfaces de programación de replicación disponibles.
| Interfaz | Entorno | Usos |
|---|---|---|
| Conceptos de objetos de gestión de replicación | Código administrado | Administración, supervisión y sincronización. |
| Microsoft.SqlServer.Replication | Código administrado | Sincronización. |
| Microsoft.SqlServer.Replication.BusinessLogicSupport | Código administrado | Creación de controladores de lógica de negocios para integrar la lógica personalizada con el proceso de sincronización de mezcla. |
| Procedimientos almacenados de replicación (Transact-SQL) | Scripting | Administración y supervisión. |
| Conceptos de los ejecutables del Agente de replicación | Scripting | Sincronización. |
Ejemplo
En Adventure Works, los datos deben publicarse para 200 representantes de ventas de todo el mundo. Los representantes de ventas viajan con frecuencia y necesitan utilizar ordenadores portátiles o asistentes digitales personales (PDA) para modificar los datos de los clientes y añadir nuevos pedidos. Los representantes de ventas deben sincronizar los cambios con el Publisher cuando conectan el portátil a la red.
Para esta aplicación, los pasos de planeamiento podrían ser similares a los siguientes:
La topología de replicación de esta aplicación ya existe. Sin embargo, debes crear una nueva suscripción pull en el cliente. Utiliza filtros parametrizados en la publicación para replicar un conjunto único de datos a cada representante de ventas.
Además del acceso a datos típico requerido para una aplicación de ventas, esta aplicación debería permitir que un vendedor sincronizara la suscripción de extracción a petición haciendo clic en un botón. Dado que un representante de ventas instala y ejecuta la aplicación, también debe poder configurar una suscripción y aplicar la instantánea inicial al cliente. Opcionalmente, la aplicación utiliza la infraestructura proporcionada por Windows para detectar la conectividad inalámbrica y así sincronizar automáticamente la suscripción cuando se detecta una conexión.
Sigue todas las directrices de seguridad para la replicación, incluyendo el uso de autenticación de Windows y una red privada virtual (VPN) al conectarte al Publisher. Si implementas la sincronización web, utiliza una conexión de Seguridad de la Capa de Transporte (TLS), anteriormente conocida como Capa de Sockets Seguros (SSL). Para más información, consulte Configure Web Synchronization.
Para aprovechar las características del Framework .NET, desarrolla la aplicación utilizando un lenguaje de código gestionado.
Según estos requisitos, la interfaz administrada de Replication Management Objects (RMO) puede proporcionar toda la funcionalidad de la replicación que se necesita para esta aplicación.
Puedes descargar la aplicación de ejemplo de AdventureWorks que implementa este escenario de ejemplo desde SQL Server.