Cloud SQL-Lesepools unterstützen das Load-Balancing für Ihre großen Lese-Arbeitslasten.
Was sind Lesepools?
Ein Lesepool ist eine Sammlung von Lesereplikatinstanzen, die zum Verteilen Ihrer großen Lesearbeitslasten verwendet werden. Diese Arbeitslasten können von der primären Instanz zum Lesepool umgeleitet 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:
- Hoch- oder Herunterskalieren: Sie können die Load-Balancing-Kapazität horizontal skalieren, indem Sie die Anzahl der Lesepoolknoten im Lesepool ändern. Jeder Lesepool unterstützt zwischen 1 und 7 Lesepoolknoten.
- Hoch- oder herunterskalieren: Die Load-Balancing-Kapazität kann vertikal skaliert werden, indem der Maschinentyp geändert wird, 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 Datenbankkonfigurationsflags, werden die Änderungen automatisch einheitlich auf alle 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 zu einem der Lesepoolknoten weitergeleitet. Wenn der Lesepool herunterskaliert oder horizontal skaliert werden soll, 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 vorhandene löschen.
Jeder Knoten im Lesepool hat auch eine eigene IP-Adresse. Diese IP-Adressen sind zwar nicht als effizienter Ansatz für den Zugriff auf Ihre Daten zu empfehlen, können aber zur Fehlerbehebung bei der Leistung einzelner Knoten im Lesepool verwendet werden.
Weitere Informationen zum Abrufen der Verbindungsinformationen für den Lesepool oder die Lesepoolknoten (entweder IP-Adressen oder einen Verbindungsstring) finden Sie unter Informationen zum Lesepool ansehen.
Replikation
Die Replikation von Cloud SQL-Lesepools wird mit SQL Server-Verfügbarkeitsgruppen für Leseskalierung implementiert.
Weitere Informationen finden Sie unter Replikation.
Eigenschaften von Lesepools
Es gelten die folgenden Merkmale:
- Für einen Lesepool mit mindestens zwei Knoten gilt das Service Level Agreement (SLA).
- Die Knoten des Lesepools befinden sich immer in derselben Region, wie vom Nutzer angegeben. Google Cloud wechselt die Knoten des Lesepools 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 unter einer Sekunde:
- Hoch- oder Herunterskalieren (Hinzufügen oder Entfernen von Knoten im Lesepool).
- Hoch- oder Herunterskalieren (Ändern des Maschinentyps der Knoten im Pool).
- Ein 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 wie für ein Cloud SQL-Lesereplikat verfügbar.
- Wenn Sie
gcloudoder die Google Cloud -Konsole verwenden, um die Details eines Projekts zu beschreiben, wird der Name des Lesepools aufgeführt, nicht die Namen der einzelnen Knoten des Lesepools.
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 einem Lesepool zugeordnet 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 enthalten. Eine primäre Instanz kann beispielsweise zwei Lesereplikate und einen separaten Lesepool mit fünf Lesereplikaten (Lesepoolknoten) haben.
- Autoscaling für Lesepools wird für SQL Server-Instanzen nicht unterstützt.
- 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. Die Höhe der Replikationsverzögerung auf diesem Lesepoolknoten spielt dabei keine Rolle. 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 Anfragen beantworten kann. Es gibt jedoch keine Anforderungen daran, wie aktuell die bereitgestellten Daten sein müssen.
- Es wird keine Garantie dafür übernommen, 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 Knoten des Lesepools herstellen, der eine niedrigere Replikationsposition hat als der Knoten des Lesepools, der eine frühere Anfrage verarbeitet hat. Dadurch kann es so aussehen, als würde der Status der Datenbank in der Zeit zurückgehen.
- Die folgenden Arten von Aktualisierungen werden nicht unterstützt:
- Lesepools erhalten weiterhin Cloud SQL-Wartungsupdates, aber Sie können Ihren Lesepool oder die zugehörige primäre Instanz nicht auf eine neue Hauptversion der Datenbank aktualisieren.
- Knoten des Lesepools starten oder stoppen.
- Zusätzlich zu den Vorgängen, die auf Lesereplikaten nicht unterstützt werden, werden die folgenden Vorgänge in Lesepools nicht unterstützt:
- Replikation aktivieren und deaktivieren
- Vom Kunden verwaltetes Active Directory
- Managed Microsoft AD
- Replikat hochstufen
- Neu starten
- Importieren
- Exportieren
- Failover
- Neu verschlüsseln
- Klonen
- 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. 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, Herunterskalieren 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 das primäre Replikat 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 automatisch unter den folgenden Bedingungen:
- Wenn die Instanz nicht verfügbar ist.
- Wenn die Replikation unterbrochen ist.
Wenn Sie in diesen Fällen zusätzliche Anmeldedaten über die primäre Instanz erstellen, können Sie sich nach der Neuerstellung des Lesepoolknotens nicht mehr mit diesen Anmeldedaten anmelden. Achten Sie darauf, dass die Anmeldung, die Sie für den Leseendpunkt verwenden, über die primäre Instanz verfügbar ist.
- Microsoft unterstützt keine Serverobjektreplikation.
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 (die Liste ist nicht vollständig):
- Lesepool wird repariert.
- Konvertieren eines Lesereplikats in einen Lesepool
- 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.
- Konvertieren eines Leserpools in ein Lesereplikat.
- 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 verknüpfter Server.
- 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 aus der primären Instanz importieren und exportieren. Die TDE-Zertifikate werden automatisch auf alle Lesereplikate im Lesepool repliziert, unabhängig vom Replikattyp.
- TDE-Import- und ‑Exportvorgänge werden nicht unterstützt. Importieren Sie das TDE-Zertifikat immer aus der primären Instanz.