Replicación de la base de datos del sitio web

Tengo un sitio web que tiene una base de datos. También tengo aplicaciones de escritorio que tienen una base de datos.

Quiero replicar los datos de las bases de datos de las aplicaciones de escritorio a la base de datos del sitio web. En otras palabras, las aplicaciones de escritorio actuarán como editores y distribuidores y el sitio web actuará como suscriptor. Es un escenario de suscriptor central.

Mi pregunta es ¿Cómo puedo hacer esto? Quiero decir, ¿se hace a través del código (RMO o de alguna otra manera) o Sql Server 2008 (Transct-SQL)?

¿Y cómo puedo agregar la replicación con la configuración de la aplicación de escritorio?

y ¿Cómo puedo configurar la base de datos del sitio web para la replicación?

Por favor, ayúdenme, nunca antes había trabajado en la replicación. Solo quiero que alguien me explique el método correcto o la forma de hacerlo. Solo los puntos principales como guía y yo mismo resolveré el resto.

suscriptor central

preguntado el 30 de junio de 12 a las 21:06

2 Respuestas

Creo que escribir su propia solución con SMO o completamente desde cero sería demasiado sobrecarga.

¿Ya has echado un vistazo a Web Synchronization for Merge Replication? Es básicamente la clásica replicación de combinación de pusblisher/subsriber de SQL Server, pero realizada en la Web, a través de IIS.

Incluso puede configurar algunos de sus artículos como de solo lectura en el editor para que las modificaciones que realice en ellos en el suscriptor no se recuperen (algo para emular la replicación transaccional, si lo desea).

Respondido el 30 de junio de 12 a las 21:06

¿Quiere decir que IIS reside en el sitio web (Internet) o localmente? y ¿Qué pasa si el sitio web es el suscriptor y todos los usuarios (con aplicaciones de escritorio) son el editor + distribuidor? - Ali Haider

@alihaider: si echa un vistazo al artículo que vinculé a mi respuesta, creo que esto debería quedar claro. IIS debe estar "más cerca" del editor. En su situación, creo que puede usar la misma instancia de IIS en la que publicó su sitio web. - marcel n

@alihaider: Si la aplicación de escritorio es el editor, quizás desee considerar cambiar los roles y hacer que el otro lado sea el editor. Realmente no conozco todos los detalles de su diseño para dar un buen consejo al respecto (tal vez pueda actualizar su pregunta con más información). - marcel n

Me di cuenta de que ahora tengo que instalar IIS en cada computadora de usuario para ser un publicador de acuerdo con la topología de servidor único aquí - Ali Haider

@alihaider: Entonces quizás debería pensar en cambiar los roles y hacer que el otro lado sea el editor. ¿Qué problemas tendrías si hicieras eso? - marcel n

Definitivamente puede usar la replicación de combinación de SQL Server a través de IIS. Hago esto con mis clientes en este momento y funciona muy bien. Sin embargo, creo que está mezclando sus términos, causando más confusión de la necesaria. No hay razón para pensar en las computadoras portátiles como 'editores', al menos no en términos de SQL. Todavía pueden ser suscriptores, pero si usa la replicación de combinación, eso significa que las computadoras portátiles enviarán datos en ambos sentidos (tomarán datos del servidor y enviarán datos al servidor). Mi situación es tener un servidor SQL en nuestro servidor IIS (o puede separar esos servidores para un entorno más seguro) y sincronizar a través de RMO a las computadoras portátiles con una aplicación WPF mía. Estas computadoras portátiles no necesitan IIS o servidor SQL instalado en ellas, puede replicar a una base de datos SQL Compact fácilmente usando RMO.

Además, puede considerar el uso de WCF, los servicios de sincronización de Microsoft. Pero eso requiere más trabajo, creo, y tengo menos experiencia allí.

Respondido 01 Jul 12, 00:07

Deberían tener el servidor Sql instalado porque tienen sus propias bases de datos instaladas localmente y se replican con la base de datos del sitio web, pero gracias por decirme que no necesitan instalar IIS también. Ali Haider

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.