Lesepools

Cloud SQL-Lesepools unterstützen Load Balancing 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:

  • Skalieren: Skalieren Sie die Load-Balancing-Kapazitä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 Load-Balancing-Kapazität vertikal, indem Sie den Maschinentyp ändern, der einem Lesepoolknoten zugeordnet 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 Datenbankkonfigurations-Flags, 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 horizontal skalieren möchten, müssen Anwendungen, die zuvor mit diesem einzelnen Leseendpunkt verbunden waren, nicht neu konfiguriert werden, auch wenn Sie neue Lesepoolknoten im Lesepool erstellen oder vorherige löschen können.

Jeder Lesepoolknoten hat auch eine eigene IP-Adresse. Diese IP-Adressen werden nicht als effizienter Ansatz für den Zugriff auf Ihre Daten empfohlen. Sie können sie jedoch verwenden, um die Leistung einzelner Lesepoolknoten zu beheben.

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

Replikation

Die Cloud SQL-Lesepoolreplikation wird mithilfe von SQL Server-Verfügbarkeitsgruppen für die Leseskalierung implementiert.

Weitere Informationen finden Sie unter Replikation.

Autoscaling für Lesepools

Sie können den Lesepool so konfigurieren, dass seine Größe automatisch an die sich ändernden Arbeitslastanforderungen Ihrer Anwendung angepasst wird. Weitere Informationen finden Sie unter Autoscaling für Lesepools.

Eigenschaften des Lesepools

Es gelten die folgenden Merkmale:

  • Lesepools haben keine eindeutige von Cloud SQL unterstützte API. Alle Vorgänge zum Erstellen, Konfigurieren oder Aufrufen eines Lesepools werden über die Cloud SQL-Instanz-API ausgeführt.

    Wenn Sie beispielsweise die gcloud CLI verwenden, um einen Lesepool zu erstellen, verwenden Sie den Befehl gcloud sql instances create. Mit dem Befehl gcloud sql instances describe können Sie die Anzahl der in einem Lesepool konfigurierten Lesepoolknoten prüfen.

  • 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 wechselt die Lesepoolknoten-Residenz zwischen allen Zonen in der Region.
  • 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:
    • Horizontal skalieren (Knoten im Lesepool hinzufügen oder entfernen)
    • Hoch- oder Herunterskalieren (Ändern des Maschinentyps der Knoten im Pool)
    • Vorhandenes zonales Lesereplikat in einen Lesepool konvertieren.
  • Ein Lesepool wird vor seiner primären Instanz gewartet, ähnlich wie Lesereplikate. Wie Lesereplikate werden auch Lesepools während des Wartungsfensters der primären Instanz gewartet.
  • Für jeden Lesepoolknoten sind dieselben Messwerte verfügbar wie für ein Cloud SQL-Lesereplikat.
  • Wenn Sie gcloud oder die Google Cloud Console verwenden, um die Details eines Projekts zu beschreiben, wird der Name des Lesepools aufgeführt, nicht jedoch die Namen der einzelnen Lesepoolknoten.

Maximale Anzahl von Lesepoolknoten pro primärer Instanz

Sie können pro primäre Instanz maximal sieben Lesereplikate zuweisen.

Die kombinierte Anzahl von Lesereplikaten und Lesepoolknoten, die von derselben primären Instanz repliziert werden, darf sieben nicht überschreiten.

Maximale Anzahl von Lesepoolknoten pro primärer Instanz berechnen

Konzeptionell können Sie sich ein Lesereplikat als einzelnen Lesepoolknoten vorstellen.

Sie können ein Lesereplikat in einen Lesepool konvertieren und dann die Anzahl der Lesepoolknoten auf eine Zahl größer als eins ändern.

Anschließend können Sie dem Lesepool Autoscaling zuweisen, damit die Anzahl der Lesepoolknoten dynamisch an die Anforderungen der Arbeitslast angepasst wird.

Wenn das Autoscaling für einen Lesepool aktiviert ist, müssen Sie eine gültige maximale Knotenanzahl für den Lesepool angeben. Diese Anzahl darf zusammen mit der Anzahl der vorhandenen Lesereplikate, die von derselben primären Instanz repliziert werden, oder der Lesepoolknoten, die zu anderen Lesepools gehören, die von derselben primären Instanz repliziert werden, nicht mehr als sieben betragen.

Wenn eine primäre Instanz beispielsweise zwei Lesereplikate, einen Lesepool mit zwei Lesepoolknoten und einen zweiten Lesepool mit aktiviertem Autoscaling hat, darf die maximale Anzahl von Lesepoolknoten für den zweiten Lesepool nicht größer als drei sein.

Weitere Informationen finden Sie unter Autoscaling für Lesepools.

Beschränkungen

Es gelten folgende Einschränkungen:

  • Lesepools sind nur für Cloud SQL Enterprise Plus-Version-Instanzen in der neuen Netzwerkarchitektur verfügbar. Die primäre Instanz, die einem Lesepool zugeordnet ist, muss ebenfalls eine Cloud SQL Enterprise Plus-Instanz sein.
  • Sie können pro primäre Instanz maximal sieben Lesereplikate zuweisen. Weitere Informationen finden Sie unter Maximale Knotenzahl.
  • Die erweiterte Notfallwiederherstellung ist nicht mit Lesepools kompatibel. Primäre Instanzen können nicht sowohl Lesepools als auch kaskadierbare Replikate verwenden.
  • Traffic wird von Lesepoolknoten bereitgestellt, je nachdem, ob die Datenbank fehlerfrei ist, aber unabhängig davon, wie hoch die Replikationsverzögerung auf diesem Lesepoolknoten ist. Traffic kann von einem verzögerten Lesepoolknoten bereitgestellt werden, auch wenn ein anderer Lesepoolknoten verfügbar ist, der nicht verzögert ist. Eine Datenbank gilt als fehlerfrei, wenn der Datenbankprozess aktiv ist und Abfragen beantworten kann. Es gibt jedoch keine Anforderung, wie aktuell die bereitgestellten Daten sein müssen.
  • Es gibt keine Garantie dafür, dass eine einzelne logische Sitzung eine Verbindung zu mehreren Lesepoolknoten im Lesepool herstellt.
  • 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.
    • Knoten des Lesepools starten oder beenden.
  • Zusätzlich zu den Vorgängen, die für Lesereplikate nicht unterstützt werden, werden die folgenden Vorgänge für Lesepools nicht unterstützt:
  • SSL/TLS-Zertifikate mit einer freigegebenen 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. in ein kaskadierendes Replikat oder einen anderen Lesepool.
  • Ein Lesepool muss direkt aus einer primären Instanz repliziert werden. Es darf kein kaskadierendes Replikat sein.
  • Wenn Sie einen Lesepool erstellen oder skalieren, müssen Sie warten, bis die vorherigen Vorgänge zum Erstellen, horizontalen Verkleinern oder horizontalen Skalieren des Lesepools 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 mit der Skalierung des nächsten Lesepools beginnen. Wenn Sie gleichzeitige Anfragen senden, erhalten Sie möglicherweise den folgenden Fehler: Operation failed because another operation was already in progress..
  • Nur ein zonales Replikat, das sich in derselben Region wie die primäre Instanz befindet, 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, ein einzelnes Lesereplikat vertikal zu skalieren, anstatt einen Lesepool zu verwenden.
  • Cloud SQL repariert Lesepoolknoten unter den folgenden Bedingungen automatisch:
    • Wenn die Instanz ausgefallen ist.
    • Wenn die Replikation unterbrochen ist.

    Wenn Sie in diesen Szenarien zusätzliche Anmeldungen über die primäre 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 gilt in den folgenden Szenarien (die Liste ist nicht vollständig):

    • Lesepool wird repariert.
    • Lesereplikat in einen Lesepool konvertieren
      • Objekte auf Serverebene wie Anmeldungen sind nicht mehr zugänglich.
      • Wenn Sie einen Log-in erstellen, der im ursprünglichen Lesereplikat, aber nicht in der primären Instanz vorhanden ist, wird der Log-in nicht auf den neuen Lesepoolknoten repliziert.
    • Lesepool in ein Lesereplikat konvertieren
      • Wenn Sie einen Log-in für einen Lesepool und nicht für die primäre Instanz erstellen und den Lesepool später deaktivieren, ist der Log-in nicht mehr vorhanden.

    Beispiele für nicht replizierte Objekte auf Serverebene:

    • Anmeldungen.
    • Konfiguration des verknüpften Servers.
    • Datenbank-Audit-Dateien, die von SQL Server Audit erstellt wurden.
    • 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 blockiert.
  • Sie müssen TDE-Zertifikate immer aus der primären Instanz importieren und exportieren. Die TDE-Zertifikate werden automatisch in allen Lesereplikaten im Lesepool repliziert, unabhängig vom Replikationstyp.
  • TDE-Import- und Exportvorgänge werden nicht unterstützt. Importieren Sie das TDE-Zertifikat immer aus der primären Instanz.

Nächste Schritte