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, mit denen Sie Ihre großen Lesearbeitslasten verteilen können. 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 haben verschiedene Möglichkeiten, Ihren Lesepool zu skalieren:
- Ein- oder Herunterskalieren: 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: Die Load-Balancing-Kapazität wird vertikal skaliert, 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 Knoten im Lesepool 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 ein Verbindungsstring) finden Sie unter Informationen zum Lesepool ansehen.
Replikation
Die Cloud SQL-Lesepoolreplikation wird mithilfe von SQL Server Read Scale Availability Groups implementiert.
Weitere Informationen finden Sie unter Replikation.
Merkmale von Lesepools
Es gelten die folgenden Merkmale:
- Für einen Lesepool mit mindestens zwei Knoten gilt das Service Level Agreement (SLA).
- Lesepoolknoten des Lesepools befinden sich immer in derselben Region, wie vom Nutzer angegeben. Google Cloud alternates die Residenz des Lesepoolknotens 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:
- 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 aber 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 von 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. Dabei wird jedoch nicht berücksichtigt, 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 ausgeführt wird und Anfragen beantworten kann. Es gibt jedoch keine Anforderungen daran, wie aktuell die bereitgestellten Daten sein müssen.
- Es wird nicht garantiert, 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 Updates 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 auf eine andere Instanz repliziert werden, z. B. auf ein kaskadierendes Replikat oder einen anderen Lesepool.
- Ein Lesepool muss direkt von einer primären Instanz repliziert werden. Er 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 Pools 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 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 unter den folgenden Bedingungen automatisch:
- Wenn die Instanz nicht verfügbar ist.
- Wenn die Replikation fehlerhaft ist.
Wenn Sie in diesen Szenarien 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 Anmeldedaten, die Sie für den Leseendpunkt verwenden, über die primäre Instanz verfügbar sind.
- Microsoft unterstützt keine Serverobjektreplikation.
Alle Objekte auf Serverebene, die Sie in einem Lesereplikat erstellen, müssen auch in 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):
- Reparieren eines Lesepools
- Konvertieren eines Lesereplikats in einen Lesepool.
- Objekte auf Serverebene wie Logins sind nicht mehr zugänglich.
- Wenn Sie einen Login erstellen, der auf dem ursprünglichen Lesereplikat, aber nicht auf der primären Instanz vorhanden ist, wird der Login nicht auf den neuen Lesepoolknoten repliziert.
- Konvertieren eines Lesepools 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.