Tengo 8 máquinas SQL Server 2008 R2 individuales, cada una con 1 base de datos. Cada base de datos tiene una estructura y un esquema de tabla idénticos, y datos completamente únicos.
Me gustaría establecer un servidor de informes (puede ser 2008 o 2012), que consolide las filas de las tablas seleccionadas en los 8 servidores de origen en una sola instancia de esas tablas en el servidor de informes. Esta es una replicación unidireccional (no se realizarán cambios en el servidor de informes). Tendré que replicar los cambios de las bases de datos de origen con una latencia relativamente baja (digamos 20-30 segundos).
Además, me gustaría encontrar métodos para lograr esto con el menor impacto posible en los servidores de origen. Los agentes de terceros, los desencadenantes o las modificaciones de esquema en esos servidores son difíciles en mi entorno.
Mis preguntas:
- ¿Cuáles son las arquitecturas y tecnologías prometedoras para lograr este objetivo?
- He examinado la replicación de combinación de SQL Server, pero me preocupa la latencia. ¿Es esta una tecnología apropiada para este objetivo?
- ¿Existen arquitecturas muchos a uno para la replicación transaccional?
- ¿Debo mirar la replicación 1 a 1 en 8 bases de datos en mi servidor de informes, seguida de alguna función de combinación personalizada (una replicación de 2 pasos)?
Gracias John
fuente
Respuestas:
Puede lograr esto con la replicación transaccional . A continuación se muestra cómo puedes hacerlo.
Nota : tiene que cambiar ligeramente el esquema de la tabla para lograr esto, ya que debe identificar de forma exclusiva esas filas cuando se replica al suscriptor. Como requisito previo de T-Rep, debe tener tablas con PK definido.
A continuación se muestra su tabla de muestra en los servidores de Publisher que se encuentra en todos los 8 servidores que desea consolidar filas en el servidor de informes:
En el servidor del suscriptor , debe crear la misma tabla pero con un PK diferente para identificar de forma exclusiva las filas en el suscriptor (al no hacerlo, T-Rep fallará con la violación de PK; supongo que no puede modificar la estructura PK en PRODUCCIÓN en vivo más bien es mejor modificar en el suscriptor)
El siguiente script lo ayudará a configurar T-Rep, simplemente cambie el nombre del servidor de datos, el nombre del servidor de destino junto con el nombre del objeto.
Un par de puntos a tener en cuenta:
En sp_addsubscription, asegúrese de que
@sync_type = N'automatic'
Y las propiedades del artículo deben establecerse en:
Finalmente, puede tener filas consolidadas de todos (en mi caso 3 servidores) como se muestra a continuación:
En resumen,
Cree una tabla en el suscriptor que tenga PK incluido como ServerName.
Cree la replicación de las tablas con @sync_type = N'automatic 'y la propiedad Article establecida en "Mantener el objeto existente sin cambios".
Ejecute el agente de instantáneas.
Verifique los datos consolidados del suscriptor.
fuente