Frage

In dem Unternehmen, für das ich arbeite, verwenden wir Diskussionsmethoden, um die Leselast unserer Primärdatenbank zu reduzieren.

Eine vorgeschlagene Option ist die unidirektionale Live-Replikation von unserer Primärdatenbank zu einer Slave-Datenbank.Anwendungen würden dann aus der Slave-Datenbank lesen und direkt in die Primärdatenbank schreiben.Also...

  • Anwendung liest vom Slave
  • Die Anwendung schreibt in die primäre Datenbank
  • Primär aktualisiert den Slave automatisch

Was sind die wichtigsten Vor- und Nachteile dieser Methode?

War es hilfreich?

Lösung

Ein paar Nachteile:

  • 2 Fehlerpunkte
  • Die Anwendungslogik muss die Verzögerung zwischen dem Schreiben und dem anschließenden Lesen berücksichtigen, da sie nicht sofort in der sekundären Datenbank verfügbar ist

Eine Strategie, die ich verwendet habe, besteht darin, wichtige Berichtsdaten jede Nacht an eine sekundäre Datenbank zu senden und sie dabei zu denormalisieren, sodass umfangreiche Abfragen in dieser Datenbank ausgeführt werden können, anstatt Tabellen zu sperren und Ressourcen vom OLTP-Server zu stehlen.Ich verwende keine formellen Data-Warehousing- oder Replikationstools, sondern identifiziere problematische Abfragen, die ohne aktuelle Daten in Ordnung sind, und erstelle Datenstrukturen auf dem sekundären Server speziell für diese Abfragen.

Der Ansatz „Alles replizieren“ hat definitiv Vorteile:

  • Sie können jede Ad-hoc-Abfrage auf dem sekundären Server ausführen, da dieser alle Ihre Daten enthält
  • Wenn Ihr Primärserver ausfällt, können Sie den Sekundärserver schnell zur Übernahme umfunktionieren

Andere Tipps

Wir verwenden unidirektionale Replikationen, jedoch nicht aus derselben Anwendung.Unsere Anwendungen lesen und schreiben in die Masterdatenbank, die Daten werden mit der Replikatdatenbank synchronisiert und die Berichtstools verwenden dieses Replikat.

Wir möchten nicht, dass unsere Anwendung aus einer anderen Datenbank liest. In diesem Szenario würde ich daher die Verwendung von Dateigruppen und die Partitionierung in der Masterdatenbank vorschlagen.Die Verwendung von Dateigruppen (insbesondere auf verschiedenen Laufwerken) und die Partitionierung von Dateien und Indizes können die Leistung erheblich verbessern.

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