Lesepools

Cloud SQL-Lesepools unterstützen den Lastenausgleich für große Lesearbeitslasten.

Was sind Lesepools?

Ein Lesepool ist eine Sammlung von Lesereplikatinstanzen, die zum Verteilen großer Lesearbeitslasten verwendet werden. Diese Arbeitslasten können von der primären Instanz an den Lesepool weitergeleitet werden, um die Last auf der primären Instanz zu reduzieren.

Jedes Lesereplikat im Lesepool wird als Lesepoolknoten bezeichnet.

Sie können Ihren Lesepool auf verschiedene Arten skalieren:

  • Ein- oder Ausskalieren: Skalieren Sie die Lastenausgleichskapazität horizontal, indem Sie die Anzahl der Lesepoolknoten im Lesepool ändern. Jeder Lesepool unterstützt zwischen 1 und 7 Lesepoolknoten.
  • Hoch- oder Herunterskalieren: Skalieren Sie die Lastenausgleichskapazität vertikal, indem Sie den Maschinentyp ändern, der mit einem Lesepoolknoten verknüpft ist. Nach der Definition wird die Konfiguration einheitlich auf jeden Lesepoolknoten im Lesepool angewendet.

Wenn Sie die Einstellungen für Lesepoolknoten ändern, z. B. Speicher, Konnektivität oder Datenbankkonfigurationsflags, werden die Änderungen automatisch einheitlich auf jeden Lesepoolknoten im Lesepool angewendet.

Über einen einzelnen Leseendpunkt auf einen Lesepool zugreifen

Der Lesepool ist über einen einzelnen Leseendpunkt mit einer unveränderlichen IP-Adresse zugänglich. Verbindungen, die über den Endpunkt hergestellt werden, werden automatisch an einen der Lesepoolknoten weitergeleitet. Wenn Sie den Lesepool ein- oder ausskalieren möchten, müssen Anwendungen, die zuvor mit diesem einzelnen Leseendpunkt verbunden waren, nicht neu konfiguriert werden. Sie können jedoch neue Lesepoolknoten im Lesepool erstellen oder vorherige löschen.

Jeder Lesepoolknoten hat auch eine eigene IP-Adresse. Diese IP-Adressen sind zwar keine effiziente Methode für den Zugriff auf Ihre Daten, können aber zur Fehlerbehebung bei der Leistung einzelner Lesepoolknoten verwendet werden.

Weitere Informationen zum Abrufen der Verbindungsinformationen für den Lesepool oder die Lesepoolknoten (entweder IP-Adressen oder eine Verbindungs-String) finden Sie unter Lesepoolinformationen ansehen.

Replikation

Die Cloud SQL-Lesepoolreplikation wird mithilfe von SQL Server Read Scale Availability Groups implementiert.

Weitere Informationen finden Sie unter Replikation.

Lesepoolmerkmale

Es gelten die folgenden Merkmale:

  • Ein Lesepool mit zwei oder mehr Knoten ist durch das Service Level Agreement (SLA) abgedeckt.
  • Lesepoolknoten des Lesepools befinden sich immer in derselben Region, wie vom Nutzer angegeben. Google Cloud Die Lesepoolknoten werden zwischen allen Zonen in der Region abgewechselt.
  • Eine primäre Instanz kann einen oder mehrere Lesepools haben.
  • Bei den folgenden Vorgängen kommt es zu einer Ausfallzeit von weniger als einer Sekunde:
    • Ein- oder Ausskalieren (Hinzufügen oder Entfernen von Lesepoolknoten).
    • Hoch- oder Herunterskalieren (Ändern des Maschinentyps der Knoten im Pool).
    • Konvertieren eines vorhandenen zonalen Lesereplikats in einen Lesepool.
  • Ein Lesepool wird vor der primären Instanz gewartet, ähnlich wie Lesereplikate. Wie Lesereplikate werden Lesepools während des Wartungsfensters der primären Instanz gewartet.
  • Für jeden Lesepoolknoten sind dieselben Messwerte wie für ein Cloud SQL Lesereplikat verfügbar.
  • Wenn Sie mit gcloud oder der Google Cloud Console die Details eines Projekts beschreiben, wird der Name des Lesepools aufgeführt, nicht aber die Namen der einzelnen Lesepoolknoten.

Beschränkungen

Es gelten folgende Einschränkungen:

  • Lesepools sind nur für Cloud SQL Enterprise Plus-Instanzen in der neuen Netzwerkarchitektur verfügbar. Die primäre Instanz, die mit einem Lesepool verknüpft ist, muss ebenfalls eine Cloud SQL Enterprise Plus-Instanz sein.
  • Sie können pro primäre Instanz maximal sieben Lesereplikate erstellen. Dieser Wert kann eine beliebige kombinierte Anzahl von Lesereplikaten und Lesepoolknoten unter einer Lesepoolinstanz umfassen. Eine primäre Instanz kann beispielsweise zwei Lesereplikate und einen separaten Lesepool mit fünf Lesereplikaten (Lesepoolknoten) haben.
  • Das automatische Skalieren von Lesepools wird für SQL Server-Instanzen nicht unterstützt.
  • Die erweiterte Notfallwiederherstellung ist nicht mit Lesepools kompatibel. Primäre Instanzen können nicht sowohl Lesepools als auch kaskadierbare Replikate verwenden.
  • Der Traffic wird von Lesepoolknoten bereitgestellt, je nachdem, ob die Datenbank fehlerfrei ist. Die Replikationsverzögerung auf diesem Lesepoolknoten spielt dabei keine Rolle. Der Traffic kann von einem Lesepoolknoten mit Verzögerung bereitgestellt werden, auch wenn ein anderer Lesepool Knoten ohne Verzögerung verfügbar ist. Eine Datenbank gilt als fehlerfrei, wenn der Datenbankprozess ausgeführt wird und Abfragen beantworten kann. Es gibt jedoch keine Anforderungen an die Aktualität der bereitgestellten Daten.
  • Es gibt keine Garantie dafür, dass eine einzelne logische Sitzung eine Verbindung zu mehreren Lesepoolknoten im Lesepool herstellt. Es ist möglich, dass spätere Anfragen in einer Sitzung eine Verbindung zu einem Lesepoolknoten herstellen, der eine niedrigere Replikations Position hat als der Lesepoolknoten, der eine frühere Anfrage verarbeitet hat. Dadurch kann es so aussehen, als würde der Zustand der Datenbank in der Zeit zurückgehen.
  • Die folgenden Arten von Updates werden nicht unterstützt:
    • Lesepools erhalten zwar weiterhin Cloud SQL-Wartungsupdates, Sie können Ihren Lesepool oder die zugehörige primäre Instanz jedoch nicht auf eine neue Hauptversion der Datenbank aktualisieren.
    • Starten oder Beenden von Knoten des Lesepools.
  • Zusätzlich zu Vorgängen, die auf Lesereplikaten nicht unterstützt werden, werden die folgenden Vorgänge auf Lesepools nicht unterstützt:
  • SSL/TLS-Zertifikate mit einer gemeinsamen Zertifizierungsstelle oder einer vom Kunden verwalteten Zertifizierungsstelle können nicht mit einem Lesepool verwendet werden.
  • Ein Lesepool kann nicht in eine andere Instanz repliziert werden, z. B. ein kaskadierendes Replikat oder ein anderer Lesepool.
  • Ein Lesepool muss direkt von einer primären Instanz repliziert werden. Er kann kein kaskadierendes Replikat sein.
  • Wenn Sie einen Lesepool erstellen oder skalieren, müssen Sie warten, bis die vorherigen Vorgänge zum Erstellen des Pools, Ein- oder Ausskalieren abgeschlossen sind. Diese Einschränkung gilt für alle anderen Lesepools, die mit derselben primären Instanz verknüpft sind. Wenn Sie mehrere Lesepools skalieren möchten, die mit derselben primären Instanz verknüpft sind, müssen Sie warten, bis die Skalierungsvorgänge für den ersten Lesepool abgeschlossen sind, bevor Sie den nächsten Lesepool skalieren. Wenn Sie gleichzeitige Anfragen senden, erhalten Sie möglicherweise die folgende Fehlermeldung: Operation failed because another operation was already in progress..
  • Nur ein zonales Replikat in derselben Region wie die primäre Instanz kann für die Verwendung in einem Lesepool konvertiert werden.
  • Bei Lesepoolknoten kann es zu unterschiedlichen Replikationsverzögerungen kommen, was zu inkonsistenten Lesevorgängen führen kann. Wenn Ihre Anwendung eine hohe Lesekonsistenz erfordert, empfehlen wir, stattdessen ein einzelnes Lesereplikat vertikal zu skalieren.
  • Cloud SQL repariert Lesepoolknoten automatisch unter den folgenden Bedingungen:
    • Wenn die Instanz nicht verfügbar ist.
    • Wenn die Replikation unterbrochen ist.

    Wenn Sie in diesen Szenarien zusätzliche Anmeldungen von der primären Instanz erstellen, können Sie sich nach der Neuerstellung des Lesepoolknotens nicht mehr mit diesen Anmeldungen anmelden. Achten Sie darauf, dass die Anmeldung, die Sie für den Leseendpunkt verwenden, von der primären Instanz aus verfügbar ist.

  • Microsoft unterstützt die Replikation von Serverobjekten nicht.

    Alle Objekte auf Serverebene, die Sie auf einem Lesereplikat erstellen, müssen auch auf der primären Instanz erstellt und verwaltet werden. Diese Objekte werden nicht automatisch repliziert.

    Dieses Verhalten tritt in den folgenden Szenarien auf (keine vollständige Liste):

    • Lesepool reparieren.
    • Lesereplikat in einen Lesepool konvertieren.
      • Objekte auf Serverebene wie Anmeldungen sind nicht mehr zugänglich.
      • Wenn Sie eine Anmeldung erstellen, die auf dem ursprünglichen Lesereplikat, aber nicht auf der primären Instanz vorhanden ist, wird die Anmeldung nicht auf den neuen Lesepoolknoten repliziert.
    • Lesepool in ein Lesereplikat konvertieren.
      • Wenn Sie eine Anmeldung in einem Lesepool und nicht in der primären Instanz erstellen, und den Lesepool später deaktivieren, ist die Anmeldung nicht mehr vorhanden.

    Einige Beispiele für Objekte auf Serverebene, die nicht repliziert werden:

    • Anmeldungen.
    • Konfiguration des verknüpften Servers.
    • Von SQL Server Audit erstellte Datenbank-Audit-Dateien.
    • XEvents-Sitzungen und ihre Konfigurationseinstellungen.

    Weitere Informationen finden Sie in der Microsoft Dokumentation.

  • Das Zertifikat für die transparente Datenverschlüsselung (Transparent Data Encryption, TDE) ist sowohl für Import- als auch für Exportvorgänge gesperrt.
  • Sie müssen TDE-Zertifikate immer von der primären Instanz importieren und exportieren. Die TDE-Zertifikate werden automatisch auf alle Lesereplikate im Lesepool repliziert, un abhängig vom Replikattyp.
  • TDE-Import- und -Exportvorgänge werden nicht unterstützt. Importieren Sie das TDE -Zertifikat immer von der primären Instanz.

Nächste Schritte