Pregunta

Tengo una aplicación web que se utiliza en varios continentes. La transacción DB subyacente se bloquea cuando se ejecutan los informes de gran tamaño. Quiero:

  1. Crear una base de datos en tiempo real del SQL Server 2005 a una base de datos informes
  2. dirigir todos los informes a los informes DB

En teoría esto evitará bloqueo de transacción para las inserciones y actualizaciones. Está bien si los informes DB se bloquea temporalmente, siempre y cuando las operaciones continúan. Los informes DB puede recibir las nuevas transacciones cuando está bajo una carga más ligera. ¿Cuál es la mejor manera de mantener una copia en tiempo real cerca de la transacción DB? ¿Debo usar la replicación, reflejo o una combinación de los dos? ¿Qué pautas generales que debo seguir?

Gracias!

¿Fue útil?

Solución

servidor SQL replicación para la implementación de este tipo de arquitectura. P.ej. replicar los datos desde el servidor principal db al servidor de informes. No es tiempo bastante reales (unos sistemas son) pero puede ser muy estrecha.

Hay varios sabores con la replicación de SQL Server y que probablemente querrá servidor a servidor. también vea este artículo sobre almacenamiento de datos y generación de informes . En él se describe el escenario exacto que está en contra y sus objetivos:

  

Por diseño, la replicación transaccional   aborda los principales requisitos   para este escenario:

  • transaccional consistencia
  • Baja latencia
  • Alto Rendimiento
  • sobrecarga mínima

Otros consejos

Mirroring = toda DB, la replicación es un subconjunto generalmente base de lo que "publicar"

En este caso, que haría uso de la replicación si necesita casi en tiempo real. Me gustaría considerar si la duplicación de informes podría retraso de unos minutos o informes debe ser "estática" por un período de tiempo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top