Logische Replikation mit AlloyDB Omni

1. Einführung

In diesem Codelab wird gezeigt, wie Sie die logische Replikation zwischen unabhängigen AlloyDB Omni-Instanzen konfigurieren. Sie stellen mehrere AlloyDB Omni-Instanzen auf einer einzelnen Compute Engine-VM bereit und richten die Replikation zwischen ihnen mit der pglogical-Erweiterung ein.

Das Ausführen mehrerer Instanzen auf einem einzelnen Knoten ist nützlich für die Entwicklung, das Testen oder das Simulieren von Replikationsumgebungen. Am Ende dieses Codelabs haben Sie eine funktionierende Replikationseinrichtung mit einer Instanz, die als Anbieter fungiert, und einer anderen, die als Abonnent fungiert.

Vorbereitung

  • Zugriff auf ein Google Cloud-Projekt und Cloud Shell über die Google Cloud Console.
  • Das Google Cloud SDK (gcloud) ist installiert und konfiguriert. Weitere Informationen zur Installation von gcloud finden Sie unter gcloud-install.

Lerninhalte

  • So erstellen und bereiten Sie eine Compute Engine-VM für mehrere AlloyDB Omni-Instanzen mit gcloud vor.
  • So installieren Sie AlloyDB Omni-RPMs.
  • So konfigurieren und initialisieren Sie mehrere AlloyDB Omni-Instanzen mit systemd-Vorlagen.
  • So konfigurieren Sie die logische Replikation zwischen AlloyDB Omni-Instanzen mit pglogical.
  • Replikation überprüfen, indem Daten vom Anbieter zum Abonnenten repliziert werden

Voraussetzungen

  • URL-Link zu AlloyDB Omni-RPMs abrufen Die Links werden an Ihre E‑Mail-Adresse gesendet, einschließlich eines Links zum Repository-URL-Server. Initialisieren Sie die folgende Umgebungsvariable, damit die URL während des Codelabs verwendet werden kann.
    export ALLOYDB_OMNI_REPOSITORY_URL="..."
    
  • Ein funktionierendes Terminal mit Zugriff auf Google Cloud. Sie können Cloud Shell für diesen Zweck verwenden.

2. Einrichtung und Anforderungen

Projekt einrichten

Google Cloud-Projekt erstellen

  1. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
  2. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.

Cloud Shell starten

Sie können Google Cloud zwar per Fernzugriff von Ihrem Laptop aus bedienen, in diesem Codelab verwenden Sie jedoch die Google Cloud Shell, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.

Symbol zum Aktivieren von Cloud Shell

  1. Öffnen Sie die Google Cloud Console und klicken Sie in der Symbolleiste rechts oben auf das Cloud Shell-Symbol.Sie können Cloud Shell auch auf eine der folgenden Arten öffnen:

Die Bereitstellung und Verbindung mit der Umgebung dauert in der Regel nur wenige Augenblicke. Wenn dieser Vorgang abgeschlossen ist, sehen Sie eine Ausgabe ähnlich der folgenden:

Google Cloud Shell-Terminal, das zeigt, dass die Umgebung verbunden ist

3. Compute Engine-VM erstellen

In diesem Abschnitt erstellen Sie mit dem Befehlszeilentool gcloud eine einzelne Compute Engine-VM. Verwenden Sie ein Rocky Linux 9-Image, das vollständig mit AlloyDB Omni-RPMs kompatibel ist.

  1. Definieren Sie Umgebungsvariablen für Ihre Projekt-ID, den VM-Namen, die Zone und die Region.
    export PROJECT="your-project-id"
    export INSTANCE_NAME="alloydb-omni-multi-vm"
    export ZONE="us-central1-c"
    export REGION="us-central1"
    
  2. Melden Sie sich mit Ihrem Google Cloud-Konto an und konfigurieren Sie das Standardprojekt.
    gcloud auth login
    gcloud config set project $PROJECT
    
  3. Wenn Sie SSH-Verbindungen zu Ihrer VM über Identity-Aware Proxy (IAP) zulassen möchten, erstellen Sie eine Firewallregel.
    gcloud compute firewall-rules create allow-ssh-alloydb-omni \
        --project=$PROJECT \
        --direction=INGRESS \
        --action=allow \
        --rules=tcp:22 \
        --source-ranges="0.0.0.0/0"
    
  4. Da die VM ohne öffentliche IP-Adresse erstellt wird, konfigurieren Sie einen Cloud Router und ein Cloud NAT-Gateway, damit die VM auf externe Paket-Repositories zugreifen und die erforderliche Software herunterladen kann.
    gcloud compute routers create alloydb-omni-router \
        --project=$PROJECT \
        --network=default \
        --region=$REGION
    
    gcloud compute routers nats create alloydb-omni-nat \
        --project=$PROJECT \
        --router=alloydb-omni-router \
        --region=$REGION \
        --nat-all-subnet-ip-ranges \
        --auto-allocate-nat-external-ips
    
  5. Prüfen Sie, ob Ihr VPC-Netzwerk (Virtual Private Cloud) eine gültige Standardroute für das Internetgateway hat. Diese Route ist erforderlich, damit Cloud NAT ausgehenden Traffic an das Internet weiterleiten kann.
    gcloud compute routes create default-internet-route \
        --project=$PROJECT \
        --network=default \
        --destination-range=0.0.0.0/0 \
        --next-hop-gateway=default-internet-gateway
    
  6. Erstellen Sie die Compute Engine-VM-Instanz mit den erforderlichen Spezifikationen (16 vCPUs, 20 GB abgestimmter nichtflüchtiger Speicher, Rocky Linux 9). Verwenden Sie für erweiterte Sicherheitsfunktionen das Flag --no-address, um dafür zu sorgen, dass der VM keine öffentliche IP-Adresse zugewiesen wird.
    gcloud compute instances create $INSTANCE_NAME \
        --project=$PROJECT \
        --zone=$ZONE \
        --machine-type=n2-highmem-16 \
        --image-family=rocky-linux-9 \
        --image-project=rocky-linux-cloud \
        --boot-disk-size=20GB \
        --boot-disk-type=pd-balanced \
        --no-address
    
  7. Prüfen Sie nach dem Erstellen der VM den Status der VM.
    gcloud compute instances list --filter="name=$INSTANCE_NAME" --project=$PROJECT
    

4. VM vorbereiten

In diesem Abschnitt stellen Sie eine Verbindung zu Ihrer neu erstellten VM her und bereiten die Betriebssystemumgebung vor.

  1. Stellen Sie über IAP eine SSH-Verbindung zur VM her. Da die VM keine öffentliche IP-Adresse hat, wird die SSH-Verbindung von gcloud automatisch über IAP getunnelt.
    gcloud compute ssh $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --tunnel-through-iap
    
  2. Definieren Sie eine Umgebungsvariable für das Basisdatenverzeichnis.
    export BASE_PGDATA="/var/lib/alloydbomni"
    
  3. Erstellen Sie das Basisdatenverzeichnis.
    sudo mkdir -p $BASE_PGDATA
    
  4. Installieren Sie das Paket policycoreutils-python-utils, damit die SELinux-Richtlinie konfiguriert werden kann.
    sudo dnf install -y policycoreutils-python-utils
    

5. AlloyDB Omni installieren

Nachdem Sie die VM vorbereitet haben, können Sie jetzt das Paketrepository konfigurieren und das AlloyDB Omni-RPM-Paket installieren.

  1. Konfigurieren Sie das YUM-Repository auf Ihrer VM, indem Sie die Repository-Konfigurationsdatei erstellen. Ersetzen Sie $ALLOYDB_OMNI_REPOSITORY_URL durch die URL, die Sie erhalten haben.
    export ALLOYDB_OMNI_REPOSITORY_URL="..."
    sudo tee /etc/yum.repos.d/alloydbomni.repo << EOF
    [alloydbomni]
    name=alloydbomni
    baseurl=$ALLOYDB_OMNI_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=https://dl.google.com/linux/linux_signing_key.pub
    EOF
    
  2. Aktualisieren Sie den YUM-Cache.
    sudo yum makecache
    
  3. Installieren Sie Version 18 des AlloyDB Omni-RPM-Pakets.
    sudo dnf install -y alloydbomni18
    

6. Mehrere Instanzen konfigurieren

In diesem Abschnitt konfigurieren Sie zwei Instanzen: inst1 und inst2.

  1. Wenn Sie mehrere Instanzen unterstützen möchten, erstellen Sie die systemd-Vorlagendienstdatei alloydbomni18@.service.
    sudo tee /etc/systemd/system/alloydbomni18@.service << EOF
    [Unit]
    Description=AlloyDB Omni Database server instance %I
    After=syslog.target
    After=network-online.target
    
    [Service]
    SyslogIdentifier=alloydbomni-%I
    Type=notify
    
    User=postgres
    Group=postgres
    
    # Load configuration for the instance
    EnvironmentFile=/etc/alloydbomni/%I.conf
    
    OOMScoreAdjust=-1000
    Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj
    Environment=PG_OOM_ADJUST_VALUE=0
    
    ExecStartPre=/usr/lib/postgresql/18/bin/alloydbomni18-check-db-dir \${PGDATA}
    ExecStart=/usr/lib/postgresql/18/bin/postgres -D \${PGDATA}
    ExecReload=/bin/kill -HUP \$MAINPID
    
    KillMode=mixed
    KillSignal=SIGINT
    
    TimeoutSec=0
    TimeoutStartSec=0
    TimeoutStopSec=1h
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
  2. Laden Sie die systemd-Manager-Konfiguration neu, damit der neue Vorlagendienst erkannt wird.
    sudo systemctl daemon-reload
    
  3. Erstellen Sie das Konfigurationsverzeichnis für AlloyDB Omni-Instanzen.
    sudo mkdir -p /etc/alloydbomni
    
  4. Konfigurieren Sie das Datenverzeichnis für inst1.
    sudo tee /etc/alloydbomni/inst1.conf << EOF
    PGDATA=/var/lib/alloydbomni/inst1
    EOF
    
  5. Konfigurieren Sie das Datenverzeichnis für inst2.
    sudo tee /etc/alloydbomni/inst2.conf << EOF
    PGDATA=/var/lib/alloydbomni/inst2
    EOF
    
  6. Legen Sie die entsprechenden Berechtigungen für die Konfigurationsdateien fest.
    sudo chmod 640 /etc/alloydbomni/*.conf
    sudo chown postgres:postgres /etc/alloydbomni/*.conf
    
  7. Erstellen Sie die Datenverzeichnisse für beide Instanzen und legen Sie den richtigen Inhaber fest.
    sudo mkdir -p /var/lib/alloydbomni/inst1
    sudo mkdir -p /var/lib/alloydbomni/inst2
    sudo chown -R postgres:postgres /var/lib/alloydbomni
    sudo chmod 750 /var/lib/alloydbomni/inst1 /var/lib/alloydbomni/inst2
    
  8. Optional: Legen Sie Ressourcenlimits für jede Instanz fest. So wird verhindert, dass eine Instanz alle VM-Ressourcen verbraucht. Erstellen Sie systemd-Überschreibungsverzeichnisse und ‑dateien für beide Instanzen.Hinweis:Die in den folgenden Konfigurationen verwendeten Ressourcenlimits (40%) sind Beispielwerte. Passen Sie die Grenzwerte an Ihre spezifische Arbeitslast und VM-Kapazität an.Für inst1:
    sudo mkdir -p /etc/systemd/system/alloydbomni18@inst1.service.d
    sudo tee /etc/systemd/system/alloydbomni18@inst1.service.d/override.conf << EOF
    [Service]
    CPUQuota=40%
    MemoryMax=40%
    EOF
    
    Für inst2:
    sudo mkdir -p /etc/systemd/system/alloydbomni18@inst2.service.d
    sudo tee /etc/systemd/system/alloydbomni18@inst2.service.d/override.conf << EOF
    [Service]
    CPUQuota=40%
    MemoryMax=40%
    EOF
    

7. Datenbanken initialisieren und vorbereiten

Initialisieren und bereiten Sie jede Datenbankinstanz separat vor.

  1. Konfigurieren Sie SELinux für die Einrichtung im permissiven Modus.
    sudo setenforce 0
    
    Achtung: Wenn Sie SELinux auf den Modus mit freien Berechtigungen einstellen, wird die Erzwingung deaktiviert. Gehen Sie daher mit Bedacht vor. In diesem Codelab wird es verwendet, um die Installation zu vereinfachen. Konfigurieren Sie in der Produktion geeignete SELinux-Richtlinien für die Ausführung von AlloyDB Omni im Erzwingungsmodus. Sie können die Erzwingung nach der Einrichtung mit dem Befehl sudo setenforce 1 wieder aktivieren.
  2. Legen Sie ein sicheres Passwort für den PostgreSQL-Administratornutzer postgres fest. Dieses Passwort wird für beide Instanzen in diesem Codelab verwendet.
    export PGPASSWORD="YourStrongPassword123!"
    
    Hinweis:Das Übergeben von Passwörtern über Umgebungsvariablen in der Befehlszeile (z.B. PGPASSWORD=$PGPASSWORD) wird hier der Einfachheit halber im Codelab verwendet, kann aber das Passwort in Prozesslisten offenlegen. Verwenden Sie in der Produktion sicherere Methoden wie eine .pgpass-Datei oder einen Secret Manager.

inst1 einrichten

  1. Initialisieren Sie das Datenbankverzeichnis für inst1.
    sudo PGPASSWORD=$PGPASSWORD \
      PGDATA=/var/lib/alloydbomni/inst1 \
      /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb
    
  2. Konfigurieren Sie die Instanz so, dass sie Port 5433 überwacht. Aktualisieren Sie dazu die Datei postgresql.conf.
    sudo sed -i \
      "s/^#*[[:space:]]*port[[:space:]]*=[[:space:]]*[0-9]*/port = 5433/" \
      /var/lib/alloydbomni/inst1/postgresql.conf
    
  3. Bereiten Sie die Datenbankinstanz für AlloyDB Omni vor.
    sudo PGPASSWORD=$PGPASSWORD \
      PGDATA=/var/lib/alloydbomni/inst1 \
      PGPORT=5433 \
      /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb
    

inst2 einrichten

  1. Initialisieren Sie das Datenbankverzeichnis für inst2.
    sudo PGPASSWORD=$PGPASSWORD \
      PGDATA=/var/lib/alloydbomni/inst2 \
      /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb
    
  2. Konfigurieren Sie die Instanz so, dass sie Port 5434 überwacht.
    sudo sed -i \
      "s/^#*[[:space:]]*port[[:space:]]*=[[:space:]]*[0-9]*/port = 5434/" \
      /var/lib/alloydbomni/inst2/postgresql.conf
    
  3. Bereiten Sie die Datenbankinstanz vor.
    sudo PGPASSWORD=$PGPASSWORD \
      PGDATA=/var/lib/alloydbomni/inst2 \
      PGPORT=5434 \
      /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb
    

8. AlloyDB Omni-Dienste starten

Jetzt können Sie die systemd-Dienste für beide Instanzen starten.

  1. Damit die neue Konfiguration und die Überschreibungen erkannt werden, laden Sie die systemd-Manager-Konfiguration neu.
    sudo systemctl daemon-reload
    
  2. Aktivieren und starten Sie den Dienst für inst1.
    sudo systemctl enable alloydbomni18@inst1
    sudo systemctl start alloydbomni18@inst1
    
  3. Aktivieren und starten Sie den Dienst für inst2.
    sudo systemctl enable alloydbomni18@inst2
    sudo systemctl start alloydbomni18@inst2
    
  4. Prüfen Sie, ob beide Dienste aktiv sind und ausgeführt werden.
    sudo systemctl status alloydbomni18@inst1
    sudo systemctl status alloydbomni18@inst2
    
    Prüfen Sie, ob die Ausgabe für beide Active: active (running) angibt.

9. AlloyDB Omni-Instanzen überprüfen

Prüfen Sie, ob beide Instanzen ordnungsgemäß funktionieren und unabhängig voneinander sind.

  1. Stellen Sie eine Verbindung mit inst1 (Port 5433) her. Sie werden aufgefordert, das Passwort einzugeben, das Sie unter Datenbanken initialisieren und vorbereiten konfiguriert haben.
    /usr/lib/postgresql/18/bin/psql -h localhost -p 5433 -U postgres -W
    
  2. Führen Sie eine Abfrage aus, um die Verbindung zu prüfen.
    postgres=# SELECT version();
    
  3. Trennen Sie die Verbindung zur Instanz.
    postgres=# \q
    
  4. Stellen Sie eine Verbindung zu inst2 (Port 5434) her.
    /usr/lib/postgresql/18/bin/psql -h localhost -p 5434 -U postgres -W
    
  5. Führen Sie eine Abfrage aus, um die Verbindung zu prüfen.
    postgres=# SELECT version();
    
  6. Trennen Sie die Verbindung zur Instanz.
    postgres=# \q
    

10. Für die pglogical-Replikation konfigurieren

Konfigurieren Sie die logische Replikation zwischen den beiden Instanzen mit der Erweiterung pglogical. In diesem Szenario ist inst1 der Anbieter und inst2 der Abonnent.

Hinweis:In diesem Codelab wird der Superuser postgres für die Replikationsverbindungen verwendet. Erstellen Sie in einer Produktionsumgebung einen dedizierten Replikationsnutzer mit REPLICATION-Berechtigungen und gewähren Sie ihm nur Zugriff auf die Tabellen, die repliziert werden.

Instanzen für pglogical konfigurieren

  1. Aktivieren Sie pglogical in shared_preload_libraries und konfigurieren Sie andere Replikationsparameter in postgresql.conf für inst1.
    # Append pglogical to shared_preload_libraries
    sudo sed -i \
      "s/\(shared_preload_libraries\s*=\s*'\)\([^']*\)'/\1\2,pglogical'/" \
      /var/lib/alloydbomni/inst1/postgresql.conf
    
    # Append replication settings
    sudo tee -a /var/lib/alloydbomni/inst1/postgresql.conf << EOF
    wal_level = logical
    max_replication_slots = 10
    max_wal_senders = 10
    max_worker_processes = 20
    track_commit_timestamp = on
    alloydb.enable_pglogical = on
    alloydb.logical_decoding = on
    EOF
    
  2. Konfigurieren Sie die Einstellungen für inst2, die Sie für inst1 konfiguriert haben.
    # Append pglogical to shared_preload_libraries
    sudo sed -i \
      "s/\(shared_preload_libraries\s*=\s*'\)\([^']*\)'/\1\2,pglogical'/" \
      /var/lib/alloydbomni/inst2/postgresql.conf
    
    # Append replication settings
    sudo tee -a /var/lib/alloydbomni/inst2/postgresql.conf << EOF
    wal_level = logical
    max_replication_slots = 10
    max_wal_senders = 10
    max_worker_processes = 20
    track_commit_timestamp = on
    alloydb.enable_pglogical = on
    alloydb.logical_decoding = on
    EOF
    
  3. Starten Sie beide Instanzen neu, um die Konfigurationsänderungen zu übernehmen.
    sudo systemctl restart alloydbomni18@inst1
    sudo systemctl restart alloydbomni18@inst2
    

Replikationsrollen und ‑tabellen einrichten

  1. Erstellen Sie auf inst1 (Anbieter, Port 5433) eine Replikationsrolle und die zu replizierende Tabelle.
    /usr/lib/postgresql/18/bin/psql -h localhost -p 5433 \
      -U postgres -d postgres -c "
      DO \$\$
      BEGIN
        IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'app_owner') THEN
          CREATE ROLE app_owner WITH LOGIN PASSWORD 'Password123';
        END IF;
      END
      \$\$;
      GRANT ALL ON SCHEMA public TO app_owner;
      CREATE TABLE IF NOT EXISTS replication_test (
          id SERIAL PRIMARY KEY,
          data TEXT,
          created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
      );
      ALTER TABLE replication_test OWNER TO app_owner;
    "
    
  2. Erstellen Sie auf inst2 (Abonnent, Port 5434) dieselbe Rolle und Tabellenstruktur.
    /usr/lib/postgresql/18/bin/psql -h localhost -p 5434 \
      -U postgres -d postgres -c "
      DO \$\$
      BEGIN
        IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'app_owner') THEN
          CREATE ROLE app_owner WITH LOGIN PASSWORD 'Password123';
        END IF;
      END
      \$\$;
      GRANT ALL ON SCHEMA public TO app_owner;
      CREATE TABLE IF NOT EXISTS replication_test (
          id SERIAL PRIMARY KEY,
          data TEXT,
          created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
      );
      ALTER TABLE replication_test OWNER TO app_owner;
    "
    

pglogical-Knoten und -Abo konfigurieren

  1. Initialisieren Sie den pglogical-Anbieterknoten auf inst1.
    /usr/lib/postgresql/18/bin/psql -h localhost -p 5433 \
      -U postgres -d postgres -c "
      CREATE EXTENSION IF NOT EXISTS pglogical;
      SELECT pglogical.create_node(
          node_name := 'provider',
          dsn := 'host=127.0.0.1 port=5433 dbname=postgres user=postgres password=YourStrongPassword123!'
      );
      SELECT pglogical.replication_set_add_table('default', 'replication_test');
    "
    
  2. Initialisieren Sie den pglogical-Abonnentenknoten und erstellen Sie das Abo auf inst2.
    /usr/lib/postgresql/18/bin/psql -h localhost -p 5434 \
      -U postgres -d postgres -c "
      CREATE EXTENSION IF NOT EXISTS pglogical;
      SELECT pglogical.create_node(
          node_name := 'subscriber',
          dsn := 'host=127.0.0.1 port=5434 dbname=postgres user=postgres password=YourStrongPassword123!'
      );
      SELECT pglogical.create_subscription(
          subscription_name := 'test_subscription',
          provider_dsn := 'host=127.0.0.1 port=5433 dbname=postgres user=postgres password=YourStrongPassword123!'
      );
    "
    
    Hinweis:Nach dem Erstellen des Abos kann es einen Moment dauern, bis die erste Synchronisierung abgeschlossen ist.

11. pglogical-Replikation prüfen

Prüfen Sie, ob die Replikation wie erwartet funktioniert. Fügen Sie dazu Daten beim Anbieter ein und fragen Sie sie beim Abonnenten ab.

  1. Prüfen Sie, ob das Abo aktiv ist. Es kann einige Sekunden dauern, bis zu replicating gewechselt wird.
    /usr/lib/postgresql/18/bin/psql -t -A -h localhost -p 5434 \
      -U postgres -d postgres -c "
      SELECT status FROM pglogical.show_subscription_status() WHERE subscription_name = 'test_subscription';
      "
    
  2. Prüfen Sie, ob in der Ausgabe replicating angezeigt wird, bevor Sie fortfahren.
  3. Fügen Sie eine Testzeile in den Anbieter ein (inst1).
    /usr/lib/postgresql/18/bin/psql -h localhost -p 5433 \
      -U postgres -d postgres -c "
      INSERT INTO replication_test (data) VALUES ('Hello from replication provider!');
    "
    
  4. Wenn Sie prüfen möchten, ob die Daten repliziert wurden, fragen Sie die Tabelle unter inst2 ab.
    /usr/lib/postgresql/18/bin/psql -h localhost -p 5434 \
      -U postgres -d postgres -c "SELECT * FROM replication_test;"
    
    Prüfen Sie, ob die eingefügte Zeile auf inst1 zu sehen ist.

12. Bereinigen

Bereinigen Sie die Ressourcen. Zuerst müssen Sie die AlloyDB Omni-Instanzen auf der VM löschen und dann die Google Cloud-Ressourcen.

AlloyDB Omni-Instanzen löschen

Bevor Sie die VM löschen, können Sie die AlloyDB Omni-Instanzen bereinigen, indem Sie die Dienste beenden und deaktivieren und ihre Konfiguration und Daten entfernen.

  1. Beenden und deaktivieren Sie den Dienst für inst1 und entfernen Sie die zugehörigen Daten und die Konfiguration.
    sudo systemctl stop alloydbomni18@inst1
    sudo systemctl disable alloydbomni18@inst1
    sudo rm -rf /var/lib/alloydbomni/inst1
    sudo rm -f /etc/alloydbomni/inst1.conf
    
  2. Beenden und deaktivieren Sie den Dienst für inst2 und entfernen Sie die zugehörigen Daten und die Konfiguration.
    sudo systemctl stop alloydbomni18@inst2
    sudo systemctl disable alloydbomni18@inst2
    sudo rm -rf /var/lib/alloydbomni/inst2
    sudo rm -f /etc/alloydbomni/inst2.conf
    
  3. Laden Sie die Konfiguration des systemd-Managers neu und setzen Sie fehlgeschlagene Einheiten zurück.
    sudo systemctl daemon-reload
    sudo systemctl reset-failed
    

Google Cloud-Ressourcen bereinigen

Nachdem Sie die Instanzen bereinigt haben, löschen Sie die Compute Engine-VM und andere Ressourcen.

  1. Trennen Sie die Verbindung zur SSH-Sitzung.
    exit
    
  2. Löschen Sie die Compute Engine-VM-Instanz.
    gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --quiet
    
  3. Löschen Sie die Firewallregel.
    gcloud compute firewall-rules delete allow-ssh-alloydb-omni --project=$PROJECT --quiet
    
  4. Löschen Sie Cloud NAT und den Router.
    gcloud compute routers nats delete alloydb-omni-nat --router=alloydb-omni-router --region=$REGION --project=$PROJECT --quiet
    gcloud compute routers delete alloydb-omni-router --region=$REGION --project=$PROJECT --quiet
    
  5. Löschen Sie die Standard-Internetroute.
    gcloud compute routes delete default-internet-route --project=$PROJECT --quiet
    

13. Glückwunsch

Sie haben mehrere AlloyDB Omni-Instanzen auf einer einzelnen Compute Engine-VM bereitgestellt und konfiguriert.

Behandelte Themen

  • So stellen Sie eine Compute Engine-VM bereit und bereiten sie vor.
  • So installieren Sie AlloyDB Omni-RPMs.
  • systemd-Vorlagen für mehrere Instanzen konfigurieren
  • Mehrere unabhängige Dienste auf verschiedenen Ports initialisieren, konfigurieren und starten.
  • So prüfen Sie die Unabhängigkeit der einzelnen Instanzen.

Weitere Informationen