¿Cómo se crea una copia en tiempo real de mi base de datos de SQL Server 2005?
-
25-09-2019 - |
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:
- Crear una base de datos en tiempo real del SQL Server 2005 a una base de datos informes
- 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!
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"
- Reflejar es más fácil de configurar, pero este caso es necesario instantáneas para permitir la presentación de informes .
- Libros de ejemplo de línea se basa en la replicación
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.