Frage

ich einen Web-App, die auf mehreren Kontinenten eingesetzt wird. Die zugrunde liegende Transaktion DB sperrt, wenn große Berichte ausgeführt werden. Ich möchte:

  1. Erstellen Sie eine Echtzeit der SQL Server 2005-Datenbank zu einem Bericht DB
  2. Direkt-Berichterstattung an den Berichten DB

In der Theorie wird diese Transaktion Sperren für Einfügungen und Aktualisierungen verhindern. Es ist in Ordnung, wenn die Berichte DB vorübergehend so lange gesperrt wird, wie die Transaktionen fortsetzen. Die Berichte DB die neuen Transaktionen erhalten kann, wenn sie unter einer leichteren Last ist. Was ist der beste Weg, um eine in der Nähe von Echtzeit-Kopie der Transaktion DB aufrecht zu erhalten? Sollte ich die Replikation, Spiegelung oder eine Kombination aus beiden? Was die allgemeinen Leitlinien soll ich folgen?

Danke!

War es hilfreich?

Lösung

Verwenden Sie SQL Server-Replikation für diese Art von Architektur zu implementieren. Z.B. replizieren Daten von Ihrem Haupt-DB-Server zu dem Berichtsserver. Es ist nicht ganz Echtzeit (wenige Systeme sind), kann aber ganz in der Nähe sein.

Es gibt mehrere Varianten mit SQL Server-Replikation und Sie werden wahrscheinlich wollen Server-zu-Server. auch diesen Artikel über Data Warehousing und Reporting . Es beschreibt das genaue Szenario, dass Sie gegen Ihre Ziele:

  

Mit dem Design, die Transaktionsreplikation   befasst sich mit den wichtigsten Anforderungen   für dieses Szenario:

  • Transactional Konsistenz
  • Niedrige Latenz
  • High Throughput
  • Minimal Kopf

Andere Tipps

Mirroring ganze DB = Replikation ist eine Teilmenge in der Regel basierend auf was Sie

In diesem Fall würde ich die Replikation verwenden, wenn Sie in der Nähe von Echtzeit benötigen. Ich halte würde Spiegelung, wenn Berichterstattung ein paar Minuten Verzögerung könnte oder Berichte sollten „statisch“ für einen Zeitraum von Zeit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top