Asynchrones Lesepool-Objekt in Kubernetes erstellen

Wählen Sie eine Dokumentationsversion aus:

Um den Lesedurchsatz und die Verfügbarkeit Ihres Datenbankclusters zu erhöhen, können Sie eine asynchrone Lesepoolinstanz Ihrer Datenbankinstanz erstellen. Eine Lese-Pool-Instanz bietet einen schreibgeschützten Klon Ihrer Datenbankinstanz, der den Datenzugriff auch dann ermöglicht, wenn Ihre Datenbankinstanz nicht verfügbar ist.

Sie können die Instanzkonfiguration des Lesepools in der Manifestdatei der Datenbankinstanz definieren. Für jede Lesepool-Instanz muss eine eindeutige Manifestdatei erstellt werden. Sie können bis zu 20 Lesepoolinstanzen erstellen.

Jede Lesepoolinstanz belegt genauso viel Speicherplatz wie die Instanz, die sie repliziert.

Asynchrone Lesepoolinstanz erstellen

Sie können beliebig viele Lesepoolinstanzen in Ihrem Datenbankcluster erstellen. So erstellen Sie eine asynchrone AlloyDB Omni-Lesepoolinstanz:

  1. Erstellen Sie das Datenbankinstanzmanifest, um den Instanztyp des Lesepools zu definieren:

    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: DBInstance
    metadata:
      name: READ_POOL_INSTANCE_NAME
      namespace: NAMESPACE
    spec:
      instanceType: ReadPool
      nodeCount: READ_POOL_INSTANCE_SIZE
      dbcParent:
        name: DB_CLUSTER_NAME
    

    Ersetzen Sie Folgendes:

    • READ_POOL_INSTANCE_NAME: Ein Name für diese Ressource, z. B. read-pool-instance-1.

    • NAMESPACE: der Namespace des Datenbankclusters.

    • DB_CLUSTER_NAME: der Name des Datenbankclusters, zu dem die Instanz gehört.

    • READ_POOL_INSTANCE_SIZE: Die Anzahl der Knoten in einer Instanz des Lesepools. Dadurch wird die gesamte Rechenkapazität der Instanz bestimmt. Pro Instanz des Lesepools können maximal 20 Knoten vorhanden sein.

  2. Wenden Sie das Manifest an.

Instanzstatus prüfen

Mit dem folgenden Befehl können Sie die Verfügbarkeit der Lese-Pool-Instanz prüfen:

  kubectl get dbinstance -n NAMESPACE READ_POOL_INSTANCE_NAME -o jsonpath='{.status.conditions[?(@.type=="Available")].status}'

Die Antwort true gibt an, dass die Lesepoolinstanz Anfragen verarbeiten kann, aber möglicherweise keine Daten aus Ihrer Datenbankinstanz repliziert.

Führen Sie den folgenden Befehl aus, um den Streamingstatus der Lesepool-Instanz zu prüfen:

  kubectl get dbinstance -n NAMESPACE READ_POOL_INSTANCE_NAME -o jsonpath='{.status.conditions[?(@.type=="Streaming")].status}'

Die Antwort true gibt an, dass die Lesepool-Instanz mit Ihrer Datenbankinstanz verbunden ist und Änderungen aktiv streamt.

Wenn Ihre Datenbankinstanz nicht erreichbar ist, werden die Anfragen weiterhin von der Lesepoolinstanz verarbeitet. In diesem Fall ist der Verfügbarkeitsstatus true und der Streamingstatus false.

Nachdem Sie die Lesepoolinstanz eingerichtet haben, sind alle Einfügungen, Aktualisierungen und Löschungen von Zeilen in Ihrer Instanz in der Lesepoolinstanz lesbar.