arrow_back

Mit Database Migration Service zu Cloud SQL for PostgreSQL migrieren

Anmelden Teilnehmen
Testen und teilen Sie Ihr Wissen mit unserer Community.
done
Sie erhalten Zugriff auf über 700 praxisorientierte Labs, Skill-Logos und Kurse

Mit Database Migration Service zu Cloud SQL for PostgreSQL migrieren

Lab 1 Stunde 30 Minuten universal_currency_alt 1 Guthabenpunkt show_chart Einsteiger
info Dieses Lab kann KI-Tools enthalten, die den Lernprozess unterstützen.
Testen und teilen Sie Ihr Wissen mit unserer Community.
done
Sie erhalten Zugriff auf über 700 praxisorientierte Labs, Skill-Logos und Kurse

GSP918

Logo: Google Cloud-Labs zum selbstbestimmten Lernen

Übersicht

Mit Database Migration Service können Sie fortlaufende Jobs und Jobs mit einmaliger Ausführung in Kombination mit verschiedenen Verbindungsoptionen nutzen, einschließlich IP-Zulassungslisten, VPC-Peering und umgekehrten SSH-Tunneln, um Daten in Cloud SQL zu migrieren. Weitere Informationen finden Sie in der Dokumentation zu den Verbindungsoptionen unter https://cloud.google.com/database-migration/docs/postgresql/configure-connectivity.

In diesem Lab migrieren Sie eine eigenständige, auf einer virtuellen Maschine ausgeführte PostgreSQL-Datenbank zu Cloud SQL for PostgreSQL. Dazu verwenden Sie einen kontinuierlichen Database Migration Service-Job und die VPC-Peering-Verbindungsmethode.

Um eine Datenbank mithilfe von Database Migration Service zu migrieren, ist es erforderlich, die Quelldatenbank entsprechend vorzubereiten. Dazu gehört die Erstellung eines dedizierten Nutzers, der über Replikationsrechte verfügt. Außerdem muss der Quelldatenbank die Datenbankerweiterung pglogical hinzugefügt werden. Dem erstellten Nutzer müssen zusätzlich die entsprechenden Rechte für die Schemas und Tabellen in der zu migrierenden Datenbank und der Postgres-Datenbank erteilt werden.

Nachdem Sie den Migrationsjob erstellt und ausgeführt haben, vergewissern Sie sich, dass eine Erstkopie der Datenbank erfolgreich zur Cloud SQL for PostgreSQL-Instanz migriert wurde. Sie erfahren außerdem mehr darüber, wie fortlaufende Migrationsjobs Datenupdates der Quelldatenbank auf die Cloud SQL-Instanz übertragen. Schließlich beenden Sie den Migrationsjob, indem Sie die Cloud SQL-Instanz zu einer eigenständigen Datenbank zum Lesen und Schreiben von Daten hochstufen.

Aufgaben

  • Sie bereiten die Quelldatenbank für die Migration vor.
  • Sie erstellen ein Profil für eine Quellverbindung zu einer PostgreSQL-Instanz (z. B. einer eigenständigen PostgreSQL-Datenbank).
  • Sie konfigurieren mit VPC-Peering die Konnektivität zwischen den Quell– und Zieldatenbankinstanzen.
  • Sie konfigurieren die Firewall- und Datenbankzugriffsregeln, um für die Migration den Zugriff auf die Quelldatenbank zuzulassen.
  • Sie erstellen mithilfe von Database Migration Service einen fortlaufenden Migrationsjob, führen ihn aus und prüfen, ob er richtig ausgeführt wurde.
  • Sie stufen die Cloud SQL for PostgreSQL-Zielinstanz zu einer eigenständigen Datenbank zum Lesen und Schreiben von Daten hoch.

Einrichtung und Anforderungen

Vor dem Klick auf „Start Lab“ (Lab starten)

Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange die Ressourcen für das Lab verfügbar sind.

In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung selbst durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.

Für dieses Lab benötigen Sie Folgendes:

  • Einen Standardbrowser (empfohlen wird Chrome)
Hinweis: Nutzen Sie den privaten oder Inkognitomodus, um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.
  • Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
Hinweis: Wenn Sie über ein persönliches Google Cloud-Konto oder -Projekt verfügen, verwenden Sie es nicht für dieses Lab. So werden zusätzliche Kosten für Ihr Konto vermieden.

Lab starten und bei der Google Cloud Console anmelden

  1. Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Pop-up-Fenster geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können. Auf der linken Seite befindet sich der Bereich Details zum Lab mit diesen Informationen:

    • Schaltfläche Google Cloud Console öffnen
    • Restzeit
    • Temporäre Anmeldedaten für das Lab
    • Ggf. weitere Informationen für dieses Lab
  2. Klicken Sie auf Google Cloud Console öffnen (oder klicken Sie mit der rechten Maustaste und wählen Sie Link in Inkognitofenster öffnen aus, wenn Sie Chrome verwenden).

    Im Lab werden Ressourcen aktiviert. Anschließend wird ein weiterer Tab mit der Seite Anmelden geöffnet.

    Tipp: Ordnen Sie die Tabs nebeneinander in separaten Fenstern an.

    Hinweis: Wird das Dialogfeld Konto auswählen angezeigt, klicken Sie auf Anderes Konto verwenden.
  3. Kopieren Sie bei Bedarf den folgenden Nutzernamen und fügen Sie ihn in das Dialogfeld Anmelden ein.

    {{{user_0.username | "Username"}}}

    Sie finden den Nutzernamen auch im Bereich Details zum Lab.

  4. Klicken Sie auf Weiter.

  5. Kopieren Sie das folgende Passwort und fügen Sie es in das Dialogfeld Willkommen ein.

    {{{user_0.password | "Password"}}}

    Sie finden das Passwort auch im Bereich Details zum Lab.

  6. Klicken Sie auf Weiter.

    Wichtig: Sie müssen die für das Lab bereitgestellten Anmeldedaten verwenden. Nutzen Sie nicht die Anmeldedaten Ihres Google Cloud-Kontos. Hinweis: Wenn Sie Ihr eigenes Google Cloud-Konto für dieses Lab nutzen, können zusätzliche Kosten anfallen.
  7. Klicken Sie sich durch die nachfolgenden Seiten:

    • Akzeptieren Sie die Nutzungsbedingungen.
    • Fügen Sie keine Wiederherstellungsoptionen oder Zwei-Faktor-Authentifizierung hinzu (da dies nur ein temporäres Konto ist).
    • Melden Sie sich nicht für kostenlose Testversionen an.

Nach wenigen Augenblicken wird die Google Cloud Console in diesem Tab geöffnet.

Hinweis: Wenn Sie sich eine Liste der Google Cloud-Produkte und ‑Dienste ansehen möchten, klicken Sie oben links auf das Navigationsmenü. Symbol für Navigationsmenü

Cloud Shell aktivieren

Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud. Mit Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.

  1. Klicken Sie oben in der Google Cloud Console auf Cloud Shell aktivieren Symbol für Cloud Shell-Aktivierung.

Wenn Sie verbunden sind, sind Sie bereits authentifiziert und das Projekt ist auf Ihre Project_ID, eingestellt. Die Ausgabe enthält eine Zeile, in der die Project_ID für diese Sitzung angegeben ist:

Ihr Cloud-Projekt in dieser Sitzung ist festgelegt als {{{project_0.project_id | "PROJECT_ID"}}}

gcloud ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.

  1. (Optional) Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
gcloud auth list
  1. Klicken Sie auf Autorisieren.

Ausgabe:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Um das aktive Konto festzulegen, führen Sie diesen Befehl aus: $ gcloud config set account `ACCOUNT`
  1. (Optional) Sie können die Projekt-ID mit diesem Befehl auflisten:
gcloud config list project

Ausgabe:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Hinweis: Die vollständige Dokumentation für gcloud finden Sie in Google Cloud in der Übersicht zur gcloud CLI.

Prüfen, ob die Database Migration API aktiviert ist

  1. Geben Sie in der Google Cloud Console oben in der Suchleiste Database Migration API ein. Klicken Sie auf das Ergebnis für Database Migration API.

Auf der sich öffnenden Seite sehen Sie dann entweder die Statusinformationen oder können die API aktivieren.

  1. Aktivieren Sie die API, falls Sie dies noch nicht getan haben.

Prüfen, ob die Service Networking API aktiviert ist

Die Service Networking API ist erforderlich, damit Sie Cloud SQL so konfigurieren können, dass das VPC-Peering sowie Verbindungen über eine private IP-Adresse unterstützt werden.

  1. Geben Sie in der Cloud Console oben in der Suchleiste Service Networking API ein. Klicken Sie auf das Ergebnis für Service Networking API.

Auf der sich öffnenden Seite sehen Sie dann entweder die Statusinformationen oder können die API aktivieren.

  1. Aktivieren Sie die API, falls Sie dies noch nicht getan haben.

Aufgabe 1: Quelldatenbank für die Migration vorbereiten

In dieser Aufgabe fügen Sie der Quelldatenbank unterstützende Features hinzu, die erforderlich sind, damit Database Migration Service Migrationen durchführen kann. Konkret tun Sie Folgendes:

  • Sie installieren die pglogical-Datenbankerweiterung und konfigurieren sie.
  • Sie lassen für die eigenständige PostgreSQL-Datenbank den Zugriff über Cloud Shell und Cloud SQL zu.
  • Sie fügen den Datenbanken postgres, orders und gmemegen_db auf dem eigenständigen Server die Datenbankerweiterung pglogical hinzu.
  • Sie erstellen für die Datenbankmigration einen migration_admin-Nutzer mit Replikationsberechtigungen und gewähren ihm die erforderlichen Berechtigungen für die Schemas und Beziehungen.

Datenbank mit der pglogical-Erweiterung aktualisieren

In diesem Schritt laden Sie die pglogical-Datenbankerweiterung herunter und fügen Sie auf der VM-Instanz postgresql-vm den Datenbanken „orders“ und „postgres“ hinzu.

  1. Klicken Sie in der Cloud Console im Navigationsmenü (Symbol für Navigationsmenü) auf Compute Engine > VM-Instanzen.

  2. Klicken Sie im Eintrag für postgresql-vm unter Verbinden auf SSH.

  3. Wenn Sie dazu aufgefordert werden, klicken Sie auf Autorisieren.

  4. Im neuen Browserfenster installieren Sie dann über das Terminal die pglogical-Datenbankerweiterung:

sudo apt install postgresql-13-pglogical Hinweis: pglogical ist ein logisches Replikationssystem, das vollständig als PostgreSQL-Erweiterung implementiert wird. Da es vollständig eingebunden wird, benötigt es keine Trigger und externen Programme. Diese Alternative zur physischen Replikation ist eine sehr effiziente Methode, um Daten mithilfe eines Publish/Subscribe-Modells für die selektive Replikation zu replizieren. Weitere Informationen finden Sie hier: https://github.com/2ndQuadrant/pglogical
  1. Laden Sie die nötigen Erweiterungen herunter und wenden Sie diese auf die PostgreSQL-Konfigurationsdateien an, um die pglogical-Erweiterung zu aktivieren. Starten Sie danach den postgresql-Dienst neu:
sudo su - postgres -c "gsutil cp gs://cloud-training/gsp918/pg_hba_append.conf ." sudo su - postgres -c "gsutil cp gs://cloud-training/gsp918/postgresql_append.conf ." sudo su - postgres -c "cat pg_hba_append.conf >> /etc/postgresql/13/main/pg_hba.conf" sudo su - postgres -c "cat postgresql_append.conf >> /etc/postgresql/13/main/postgresql.conf" sudo systemctl restart postgresql@13-main

Mit diesen Befehlen wurde pg_hba.conf eine Regel hinzugefügt, um Zugriff auf alle Hosts zuzulassen:

#GSP918 - allow access to all hosts host all all 0.0.0.0/0 md5

In der Datei postgresql.conf wurde mit diesen Befehlen für pglogical die Minimalkonfiguration festgelegt, sodass alle Adressen überwacht werden:

#GSP918 - added configuration for pglogical database extension wal_level = logical # minimal, replica, or logical max_worker_processes = 10 # one per database needed on provider node # one per node needed on subscriber node max_replication_slots = 10 # one per node needed on provider node max_wal_senders = 10 # one per node needed on provider node shared_preload_libraries = 'pglogical' max_wal_size = 1GB min_wal_size = 80MB listen_addresses = '*' # what IP address(es) to listen on, '*' is all

Die obigen Code-Snippets wurden an die relevanten Dateien angehängt und der PostgreSQL-Dienst wurde neu gestartet.

  1. Starten Sie das Tool psql:
sudo su - postgres psql
  1. Fügen Sie den Datenbanken postgres, orders und gmemegen_db die Datenbankerweiterung pglogical hinzu.
\c postgres; CREATE EXTENSION pglogical; \c orders; CREATE EXTENSION pglogical; \c gmemegen_db; CREATE EXTENSION pglogical;
  1. Listen Sie die PostgreSQL-Datenbanken auf dem Server auf:
\l

Hier sehen Sie neben den PostgreSQL-Standarddatenbanken auch die Datenbanken orders und gmemegen_db, die für dieses Lab bereitgestellt wurden. Die Datenbank gmemegen_db nutzen Sie in diesem Lab zwar nicht, aber Sie migrieren Sie dennoch, um sie in einem späteren Lab zu nutzen.

List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+---------+---------+----------------------- gmemegen_db | postgres | UTF8 | C.UTF-8 | C.UTF-8 | orders | postgres | UTF8 | C.UTF-8 | C.UTF-8 | postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (5 rows)

Datenbank-Migrationsnutzer erstellen

In diesem Schritt erstellen Sie einen dedizierten Nutzer zum Verwalten der Datenbankmigration.

  1. Geben Sie in psql die folgenden Befehle ein, um einen neuen Nutzer zu erstellen, der über die Replikationsrolle verfügt:
CREATE USER migration_admin PASSWORD 'DMS_1s_cool!'; ALTER DATABASE orders OWNER TO migration_admin; ALTER ROLE migration_admin WITH REPLICATION;

Dem Migrationsnutzer Berechtigungen zuweisen

In diesem Schritt weisen Sie dem Nutzer migration_admin die erforderlichen Berechtigungen zu, damit Database Migration Service Ihre Datenbank migrieren kann.

  1. Gewähren Sie in psql dem Schema und den Tabellen von pglogical die erforderlichen Berechtigungen für die postgres-Datenbank.
\c postgres; GRANT USAGE ON SCHEMA pglogical TO migration_admin; GRANT ALL ON SCHEMA pglogical TO migration_admin; GRANT SELECT ON pglogical.tables TO migration_admin; GRANT SELECT ON pglogical.depend TO migration_admin; GRANT SELECT ON pglogical.local_node TO migration_admin; GRANT SELECT ON pglogical.local_sync_status TO migration_admin; GRANT SELECT ON pglogical.node TO migration_admin; GRANT SELECT ON pglogical.node_interface TO migration_admin; GRANT SELECT ON pglogical.queue TO migration_admin; GRANT SELECT ON pglogical.replication_set TO migration_admin; GRANT SELECT ON pglogical.replication_set_seq TO migration_admin; GRANT SELECT ON pglogical.replication_set_table TO migration_admin; GRANT SELECT ON pglogical.sequence_state TO migration_admin; GRANT SELECT ON pglogical.subscription TO migration_admin;
  1. Gewähren Sie in psql dem Schema und den Tabellen von pglogical die erforderlichen Berechtigungen für die orders-Datenbank.
\c orders; GRANT USAGE ON SCHEMA pglogical TO migration_admin; GRANT ALL ON SCHEMA pglogical TO migration_admin; GRANT SELECT ON pglogical.tables TO migration_admin; GRANT SELECT ON pglogical.depend TO migration_admin; GRANT SELECT ON pglogical.local_node TO migration_admin; GRANT SELECT ON pglogical.local_sync_status TO migration_admin; GRANT SELECT ON pglogical.node TO migration_admin; GRANT SELECT ON pglogical.node_interface TO migration_admin; GRANT SELECT ON pglogical.queue TO migration_admin; GRANT SELECT ON pglogical.replication_set TO migration_admin; GRANT SELECT ON pglogical.replication_set_seq TO migration_admin; GRANT SELECT ON pglogical.replication_set_table TO migration_admin; GRANT SELECT ON pglogical.sequence_state TO migration_admin; GRANT SELECT ON pglogical.subscription TO migration_admin;
  1. Gewähren Sie in psql dem Schema und den Tabellen von public die erforderlichen Berechtigungen für die orders-Datenbank.
GRANT USAGE ON SCHEMA public TO migration_admin; GRANT ALL ON SCHEMA public TO migration_admin; GRANT SELECT ON public.distribution_centers TO migration_admin; GRANT SELECT ON public.inventory_items TO migration_admin; GRANT SELECT ON public.order_items TO migration_admin; GRANT SELECT ON public.products TO migration_admin; GRANT SELECT ON public.users TO migration_admin;
  1. Gewähren Sie in psql dem Schema und den Tabellen von pglogical die erforderlichen Berechtigungen für die gmemegen_db-Datenbank.
\c gmemegen_db; GRANT USAGE ON SCHEMA pglogical TO migration_admin; GRANT ALL ON SCHEMA pglogical TO migration_admin; GRANT SELECT ON pglogical.tables TO migration_admin; GRANT SELECT ON pglogical.depend TO migration_admin; GRANT SELECT ON pglogical.local_node TO migration_admin; GRANT SELECT ON pglogical.local_sync_status TO migration_admin; GRANT SELECT ON pglogical.node TO migration_admin; GRANT SELECT ON pglogical.node_interface TO migration_admin; GRANT SELECT ON pglogical.queue TO migration_admin; GRANT SELECT ON pglogical.replication_set TO migration_admin; GRANT SELECT ON pglogical.replication_set_seq TO migration_admin; GRANT SELECT ON pglogical.replication_set_table TO migration_admin; GRANT SELECT ON pglogical.sequence_state TO migration_admin; GRANT SELECT ON pglogical.subscription TO migration_admin;
  1. Gewähren Sie in psql dem Schema und den Tabellen von public die erforderlichen Berechtigungen für die gmemegen_db-Datenbank.
GRANT USAGE ON SCHEMA public TO migration_admin; GRANT ALL ON SCHEMA public TO migration_admin; GRANT SELECT ON public.meme TO migration_admin;

Die Quelldatenbanken sind jetzt für die Migration bereit. Die Berechtigungen, die Sie dem Nutzer migration_admin erteilt haben, sind alles, was nötig ist, damit Database Migration Service die Datenbanken postgres, orders und gmemegen_db migrieren kann.

Machen Sie den Nutzer migration_admin zum Inhaber der Tabellen der Datenbank orders, damit Sie die Quelldaten später bearbeiten können, wenn Sie die Migration testen.

  1. Führen Sie in psql die folgenden Befehle aus:
\c orders; \dt ALTER TABLE public.distribution_centers OWNER TO migration_admin; ALTER TABLE public.inventory_items OWNER TO migration_admin; ALTER TABLE public.order_items OWNER TO migration_admin; ALTER TABLE public.products OWNER TO migration_admin; ALTER TABLE public.users OWNER TO migration_admin; \dt List of relations Schema | Name | Type | Owner --------+----------------------+-------+------- public | distribution_centers | table | migration_admin public | inventory_items | table | migration_admin public | order_items | table | migration_admin public | products | table | migration_admin public | users | table | migration_admin (5 rows)
  1. Verlassen Sie psql und die Postgres-Nutzersitzung.
\q exit

Klicken Sie auf Fortschritt prüfen. PostgreSQL-Quellinstanz für die Migration vorbereiten

Aufgabe 2: Database Migration Service-Verbindungsprofil für eigenständige PostgreSQL-Datenbank erstellen

In dieser Aufgabe erstellen Sie ein Verbindungsprofil für die PostgreSQL-Quellinstanz.

Verbindungsinformationen für die PostgreSQL-Quellinstanz abrufen

In diesem Schritt ermitteln Sie die interne IP-Adresse der Quelldatenbankinstanz, die Sie zu Cloud SQL migrieren möchten.

  1. Klicken Sie in der Google Cloud Console im Navigationsmenü (Symbol für Navigationsmenü) auf Compute Engine > VM-Instanzen.

  2. Suchen Sie die Zeile mit der Instanz postgresql-vm.

  3. Kopieren Sie den Wert für Interne IP-Adresse (z. B. 10.128.0.2).

Neues Verbindungsprofil für die PostgreSQL-Quellinstanz erstellen

Ein Verbindungsprofil enthält Informationen über die Quelldatenbankinstanz (z. B. eine eigenständige PostgreSQL-Datenbank) und wird von Database Migration Service verwendet, um Daten aus der Quelle in die Cloud SQL-Zieldatenbankinstanz zu migrieren. Nachdem Sie ein Verbindungsprofil erstellt haben, kann es beliebig oft für Migrationsjobs wiederverwendet werden.

In diesem Schritt erstellen Sie ein neues Verbindungsprofil für die PostgreSQL-Quellinstanz.

  1. Klicken Sie in der Google Cloud Console im Navigationsmenü (Symbol für Navigationsmenü) auf Datenbankmigration > Verbindungsprofile.

  2. Klicken Sie auf + Profil erstellen.

  3. Wählen Sie als Datenbankmodul die Option PostgreSQL aus.

  4. Geben Sie als Verbindungsprofilname den Namen postgres-vm ein.

  5. Geben Sie für Hostname oder IP-Adresse die interne IP-Adresse für die PostgreSQL-Quellinstanz ein, die Sie in der vorherigen Aufgabe kopiert haben (z. B. 10.128.0.2).

  6. Geben Sie als Port den Wert 5432 ein.

  7. Geben Sie als Nutzername den Namen migration_admin ein.

  8. Geben Sie als Passwort das Passwort DMS_1s_cool! ein .

  9. Wählen Sie bei Region die Option aus.

  10. Behalten Sie für die anderen Werte die Standardwerte bei.

  11. Klicken Sie auf Erstellen.

In der Liste der Verbindungsprofile wird jetzt ein neues Verbindungsprofil mit dem Namen postgres-vm angezeigt.

Klicken Sie auf Fortschritt prüfen. Verbindungsprofil für die PostgreSQL-Quellinstanz erstellen

Aufgabe 3: Fortlaufenden Migrationsjob erstellen und starten

Wenn Sie einen neuen Migrationsjob erstellen, definieren Sie zuerst mithilfe eines zuvor erstellten Verbindungsprofils die Quelldatenbankinstanz. Dann erstellen Sie eine neue Zieldatenbankinstanz und konfigurieren die Verbindung zwischen der Quell- und Zielinstanz.

In dieser Aufgabe verwenden Sie die Migrationsjob-Oberfläche, um eine neue Cloud SQL for PostgreSQL-Datenbankinstanz zu erstellen und sie als Ziel des fortlaufenden Migrationsjobs der PostgreSQL-Quellinstanz festzulegen.

Neuen fortlaufenden Migrationsjob erstellen

In diesem Schritt erstellen Sie einen neuen fortlaufenden Migrationsjob.

  1. Klicken Sie in der Google Cloud Console im Navigationsmenü (Symbol für Navigationsmenü) auf Datenbankmigration > Migrationsjobs.

  2. Klicken Sie auf + Migrationsjob erstellen.

  3. Geben Sie als Name des Migrationsjobs den Namen vm-to-cloudsql ein.

  4. Wählen Sie als Quelldatenbankmodul die Option PostgreSQL aus.

  5. Wählen Sie als Zielregion die Option aus.

  6. Wählen Sie als Zieldatenbankmodul die Option Cloud SQL for PostgreSQL aus.

  7. Wählen Sie als Typ des Migrationsjobs die Option Kontinuierlich aus.

Behalten Sie für die anderen Einstellungen die Standardeinstellungen bei.

  1. Klicken Sie auf Speichern und weiter.

Quellinstanz definieren

In diesem Schritt definieren Sie die Quellinstanz für die Migration.

  1. Wählen Sie für Quellverbindungsprofil die Option postgres-vm aus.

Behalten Sie für die anderen Einstellungen die Standardeinstellungen bei.

  1. Klicken Sie auf Speichern und weiter.

Nachdem Sie das Quellverbindungsprofil ausgewählt haben, können Sie dessen Konfigurationsdetails einsehen, einschließlich Quellhostname bzw. IP-Adresse, Port, Nutzername und Verschlüsselungstyp.

Zielinstanz erstellen

In diesem Schritt erstellen Sie die Zielinstanz für die Migration.

  1. Geben Sie als Zielinstanz-ID die ID postgresql-cloudsql ein.

  2. Geben Sie als Passwort das Passwort supersecret! ein.

  3. Wählen Sie unter Cloud SQL-Version auswählen die Version Enterprise aus.

  4. Wählen Sie als Datenbankversion die Version Cloud SQL for PostgreSQL 13 aus.

  5. Wählen Sie im Abschnitt Region und Zone auswählen die Option Einzelne Zone und dann als Primäre Zone aus.

  6. Wählen Sie für Instanzverbindung die Optionen Private IP-Adresse und Öffentliche IP-Adresse aus.

  7. Wählen Sie Automatisch zugewiesenen IP-Bereich verwenden aus.

Behalten Sie für die anderen Einstellungen die Standardeinstellungen bei.

  1. Klicken Sie auf Zuweisen und verbinden.

Behalten Sie die Standardeinstellung bei, um einen automatisch zugewiesenen IP-Bereich zu verwenden.

Hinweis: Dieser Schritt kann ein paar Minuten dauern. Falls Sie dazu aufgefordert werden, die Anfrage zu wiederholen, klicken Sie auf die Schaltfläche Wiederholen, um die Service Networking API zu aktualisieren.

Wenn dieser Schritt abgeschlossen ist, sehen Sie eine aktualisierte Nachricht dazu, dass die Instanz die vorhandene Verbindung zum verwalteten Dienst verwenden wird.

Sie müssen die Datei pg_hba.conf auf der VM-Instanz bearbeiten, damit der Zugriff auf den IP-Bereich zugelassen wird, der unter Punkt 5 des vorherigen Schrittes automatisch generiert wurde. Das tun Sie in einem späteren Schritt, bevor Sie am Ende dieser Aufgabe die Migrationskonfiguration testen.

In der aktualisierten Nachricht steht, dass die Instanz die vorhandene Verbindung zum verwalteten Dienst verwenden wird.

Geben Sie die zusätzlichen Informationen ein, die zum Erstellen der Zielinstanz in Cloud SQL nötig sind.

  1. Setzen Sie für Maschinenformen das Häkchen bei 1vCPU, 3,75 GB.

  2. Wählen Sie als Speichertyp die Option SSD aus.

  3. Wählen Sie für Speicherkapazität die Option 10 GB aus.

  4. Klicken Sie auf Erstellen und fortfahren.

Wenn Sie dazu aufgefordert werden, bestätigen Sie, indem Sie auf Ziel erstellen und fortfahren klicken. Eine Nachricht meldet dann, dass die Zieldatenbankinstanz gerade erstellt wird. Fahren Sie mit dem nächsten Schritt fort, während Sie warten.

Verbindungsmethode definieren

In diesem Schritt definieren Sie die Verbindungsmethode für die Migration.

In der Nachricht steht, dass die Schaltfläche „Konfigurieren und fortfahren“ aktiviert wird, sobald die Ziel-Cloud SQL-Instanz erstellt worden ist.

  1. Wählen Sie als Verbindungsmethode die Option VPC-Peering aus.

  2. Wählen Sie für VPC die Option default aus.

Das VPC-Peering wird durch Database Migration Service konfiguriert. Dazu nutzt er die Informationen, die für das VPC-Network bereitgestellt wurden (in diesem Fall das Netzwerk „default“).

Fahren Sie erst dann mit dem nächsten Schritt fort, wenn eine aktualisierte Nachricht angezeigt wird, in der steht, dass die Zielinstanz erstellt wurde.

In der aktualisierten Nachricht steht, dass die Cloud SQL-Zielinstanz erstellt wurde.

  1. Klicken Sie auf Konfigurieren und fortfahren.

Zugriff auf die Instanz postgresql-vm vom automatisch zugewiesenen IP-Bereich aus erlauben

In diesem Schritt bearbeiten Sie die PostgreSQL-Konfigurationsdatei pg_hba.conf so, dass Database Migration Service auf die eigenständige PostgreSQL-Datenbank zugreifen kann.

  1. Rufen Sie den zugewiesenen IP-Adressbereich ab. Klicken Sie in der Google Cloud Console im Navigationsmenü (Symbol für Navigationsmenü) mit der rechten Maustaste auf VPC-Netzwerk > VPC-Netzwerk-Peering und öffnen Sie die Seite in einem neuen Tab.

  2. Klicken Sie auf den Eintrag servicenetworking-googleapis-com.

  3. Wählen Sie auf dem Tab Importierte Routen den Ziel-IP-Bereich (z. B. 10.107.176.0/24) aus und kopieren Sie ihn.

  4. Bearbeiten Sie in der Terminalsitzung auf der VM-Instanz die Datei pg_hba.conf so:

sudo nano /etc/postgresql/13/main/pg_hba.conf
  1. In der letzten Zeile der Datei tun Sie Folgendes:
#GSP918 - allow access to all hosts host all all 0.0.0.0/0 md5

Sie ersetzen den Bereich „all IP addresses“ (0.0.0.0/0) durch den Bereich, den Sie eben unter Punkt 3 kopiert haben.

#GSP918 - allow access to all hosts host all all 10.107.176.0/24 md5 Hinweis: Der obige Schritt ist nicht nötig, damit die Migration klappt. Er stellt aber eine gute Praktik dar, um die Quelldatenbank während des Migrationsprozesses sicherer zu machen und den Zugriff auf diese einzuschränken, sobald die migrierte Datenbank nach Ende der Migration zur Source of Truth geworden ist.
  1. Speichern Sie und beenden Sie den nano-Editor, indem Sie Strg + O, die Eingabetaste oder Strg + X drücken.

  2. Starten Sie den PostgreSQL-Dienst neu, damit die Änderungen wirksam werden. In der VM-Instanz-Terminalsitzung geht es jetzt so weiter:

sudo systemctl start postgresql@13-main

Kontinuierlichen Migrationsjob testen und starten

In diesem Schritt testen Sie den Migrationsjob und starten ihn.

  1. Schauen Sie sich auf dem Database Migration Service-Tab, den Sie vorhin geöffnet haben, die Einzelheiten des Migrationsjobs an.

  2. Klicken Sie auf Job testen.

  3. Wenn der Test erfolgreich war, klicken Sie auf Job erstellen und starten.

Klicken Sie unbedingt auf die Schaltfläche „Job erstellen und starten“, damit der Job erfolgreich gestartet wird.

Wenn Sie dazu aufgefordert werden, bestätigen Sie, indem Sie auf Erstellen und starten klicken.

Status des fortlaufenden Migrationsjobs prüfen

In diesem Schritt prüfen Sie, ob der fortlaufende Migrationsjob ausgeführt wird.

  1. Klicken Sie in der Google Cloud Console im Navigationsmenü (Symbol für Navigationsmenü) auf Datenbankmigration > Migrationsjobs.

  2. Klicken Sie auf den Migrationsjob vm-to-cloudsql, um die Seite „Details“ aufzurufen.

  3. Prüfen Sie den Status des Migrationsjobs.

    • Wenn Sie den Job noch nicht gestartet haben, wird als Status Nicht gestartet angezeigt. Sie können den Job starten oder löschen.
    • Sobald der Job gestartet wurde, erhält er den Status Wird gestartet…, der dann zu Wird ausgeführt | Vollständiger Dump läuft wechselt, um anzugeben, dass der erste Datenbank-Dump gerade ausgeführt wird.
    • Wenn der erste Datenbank-Dump abgeschlossen ist, wechselt der Status zu Wird ausgeführt | CDC in Bearbeitung, um anzuzeigen, dass die kontinuierliche Migration aktiv ist.

Wenn der Jobstatus zu Wird ausgeführt | CDC in Bearbeitung wechselt, fahren Sie mit der nächsten Aufgabe fort.

Der Migrationsjob namens vm-to-cloudsql hat den Status „Wird ausgeführt | CDC in Bearbeitung“.

Klicken Sie auf Fortschritt prüfen. Fortlaufenden Migrationsjob erstellen, starten und prüfen

Aufgabe 4: Die Daten in Cloud SQL for PostgreSQL prüfen

PostgreSQL-Datenbanken in Cloud SQL prüfen

  1. Klicken Sie in der Google Cloud Console im Navigationsmenü (Symbol für Navigationsmenü) auf Datenbanken > SQL.

  2. Erweitern Sie die Instanz-ID mit dem Namen postgresql-cloudsql-master.

  3. Klicken Sie auf die Instanz postgresql-cloudsql (PostgreSQL-Lesereplikat).

  4. Klicken Sie im Menü Replikatinstanz auf Datenbanken.

Sie sehen, dass die Datenbanken namens postgres, orders und gmemegen_db zu Cloud SQL migriert wurden.

Die migrierten Datenbanken in Cloud SQL

Verbindung zur PostgreSQL-Instanz herstellen

  1. Klicken Sie im Menü Replikatinstanz auf Übersicht.

  2. Scrollen Sie nach unten zum Abschnitt Mit dieser Instanz verbinden und klicken Sie auf Cloud Shell öffnen.

Der Befehl zum Herstellen einer Verbindung mit PostgreSQL wird in Cloud Shell vorab ausgefüllt:

gcloud sql connect postgresql-cloudsql --user=postgres --quiet
  1. Führen Sie den vorab ausgefüllten Befehl aus.

Wenn Sie dazu aufgefordert werden, klicken Sie für die API auf Autorisieren.

  1. Wenn Sie zur Eingabe eines Passworts aufgefordert werden, das Sie ja zuvor festgelegt haben, geben Sie Folgendes ein:
supersecret!

Jetzt haben Sie die interaktive PostgreSQL-Konsole für die Zielinstanz aktiviert.

Die Daten in der Cloud SQL for PostgreSQL-Instanz ansehen

  1. Um die Datenbank in der interaktiven PostgreSQL-Konsole auszuwählen, führen Sie den folgenden Befehl aus:
\c orders;
  1. Wenn Sie zur Eingabe eines Passworts aufgefordert werden, geben Sie Folgendes ein:
supersecret!
  1. Fragen Sie die Tabelle distribution_centers ab:
select * from distribution_centers;

(Ausgabe)

longitude | latitude | name | id -----------+----------+---------------------------------------------+---- -89.9711 | 35.1174 | Memphis TN | 1 -87.6847 | 41.8369 | Chicago IL | 2 -95.3698 | 29.7604 | Houston TX | 3 -118.25 | 34.05 | Los Angeles CA | 4 -90.0667 | 29.95 | New Orleans LA | 5 -73.7834 | 40.634 | Port Authority of New York/New Jersey NY/NJ | 6 -75.1667 | 39.95 | Philadelphia PA | 7 -88.0431 | 30.6944 | Mobile AL | 8 -79.9333 | 32.7833 | Charleston SC | 9 -81.1167 | 32.0167 | Savannah GA | 10
  1. Beenden Sie die interaktive PostgreSQL-Konsole, indem Sie Folgendes eingeben:
\q

Eigenständige Quelldaten aktualisieren, um fortlaufende Migration zu testen

  1. Geben Sie in Cloud Shell die folgenden Befehle ein, um eine Verbindung mit der PostgreSQL-Quellinstanz herzustellen:
export VM_NAME=postgresql-vm export PROJECT_ID=$(gcloud config list --format 'value(core.project)') export POSTGRESQL_IP=$(gcloud compute instances describe ${VM_NAME} \ --zone={{{ project_0.default_zone|(zone) }}} --format="value(networkInterfaces[0].accessConfigs[0].natIP)") echo $POSTGRESQL_IP psql -h $POSTGRESQL_IP -p 5432 -d orders -U migration_admin Hinweis: Der Befehl oben stellt einen alternativen Ansatz dar, um auf die eigenständige Datenbank auf der VM-Instanz zuzugreifen.
  1. Wenn Sie zur Eingabe eines Passworts aufgefordert werden, geben Sie Folgendes ein:
DMS_1s_cool!
  1. In psql geben Sie die folgenden Befehle ein:
\c orders; insert into distribution_centers values(-80.1918,25.7617,'Miami FL',11);
  1. Beenden Sie die interaktive psql-Sitzung:
\q

Verbindung zur Cloud SQL PostgreSQL-Datenbank herstellen, um zu prüfen, ob die aktualisierten Daten migriert wurden

  1. Geben Sie in Cloud Shell die folgenden Befehle ein, um eine Verbindung zur Cloud SQL PostgreSQL-Zielinstanz herzustellen:
gcloud sql connect postgresql-cloudsql --user=postgres --quiet
  1. Wenn Sie zur Eingabe eines Passworts aufgefordert werden, das Sie ja zuvor festgelegt haben, geben Sie das Passwort für die Cloud SQL-Instanz ein:
supersecret!

Jetzt haben Sie die interaktive PostgreSQL-Konsole für die Zielinstanz aktiviert.

Daten in Cloud SQL for PostgreSQL-Datenbank ansehen

  1. Wählen Sie in Cloud Shell die aktive Datenbank in der interaktiven PostgreSQL-Konsole aus:
\c orders;
  1. Wenn Sie zur Eingabe eines Passworts aufgefordert werden, das Sie ja zuvor festgelegt haben, geben Sie Folgendes ein:
supersecret!
  1. Fragen Sie die Tabelle distribution_centers ab:
select * from distribution_centers;

(Ausgabe)

longitude | latitude | name | id -----------+----------+---------------------------------------------+---- -89.9711 | 35.1174 | Memphis TN | 1 -87.6847 | 41.8369 | Chicago IL | 2 -95.3698 | 29.7604 | Houston TX | 3 -118.25 | 34.05 | Los Angeles CA | 4 -90.0667 | 29.95 | New Orleans LA | 5 -73.7834 | 40.634 | Port Authority of New York/New Jersey NY/NJ | 6 -75.1667 | 39.95 | Philadelphia PA | 7 -88.0431 | 30.6944 | Mobile AL | 8 -79.9333 | 32.7833 | Charleston SC | 9 -81.1167 | 32.0167 | Savannah GA | 10 -80.1918 | 25.7617 | Miami FL | 11

Sie sehen, dass die neue Zeile, die Sie der eigenständigen Datenbank orders hinzugefügt haben, jetzt auch in der migrierten Datenbank zu sehen ist.

  1. Verlassen Sie die interaktive PostgreSQL-Konsole:
\q

Klicken Sie auf Fortschritt prüfen. Fortlaufende Migration von Daten von der Quelle bis zum Ziel testen

Aufgabe 5: Aus Cloud SQL-Instanz eigenständige Instanz zum Lesen und Schreiben von Daten machen

  1. Klicken Sie in der Google Cloud Console im Navigationsmenü (Symbol für Navigationsmenü) auf Datenbankmigration > Migrationsjobs.

  2. Klicken Sie auf den Migrationsjobnamen vm-to-cloudsql, um die Seite „Details“ aufzurufen.

  3. Klicken Sie auf Hochstufen.

Wenn Sie zur Bestätigung aufgefordert werden, klicken Sie auf Hochstufen.

Wenn das Hochstufen abgeschlossen ist, wechselt der Status des Jobs zu Abgeschlossen.

Der Migrationsjob namens vm-to-cloudsql hat den Status „Abgeschlossen“.

  1. Klicken Sie in der Google Cloud Console im Navigationsmenü (Symbol für Navigationsmenü) auf Datenbanken > SQL.

Sie sehen, dass postgresql-cloudsql jetzt eine eigenständige Instanz zum Lesen und Schreiben von Daten ist.

Die Instanz namens postgresql-cloudsql ist als die primäre Instanz gekennzeichnet.

Klicken Sie auf Fortschritt prüfen. Aus Cloud SQL for PostgreSQL-Datenbank eigenständige Instanz zum Lesen und Schreiben von Daten machen

Das wars! Sie haben das Lab erfolgreich abgeschlossen.

Sie haben jetzt gelernt, wie Sie einen fortlaufenden Database Migration Service-Job konfigurieren, um Datenbanken von einer PostgreSQL-Instanz zu Cloud SQL for PostgreSQL zu migrieren.

Google Cloud-Schulungen und -Zertifizierungen

In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.

Anleitung zuletzt am 14. Mai 2024 aktualisiert

Lab zuletzt am 14. Mai 2024 getestet

© 2024 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.

Diese Inhalte sind derzeit nicht verfügbar

Bei Verfügbarkeit des Labs benachrichtigen wir Sie per E-Mail

Sehr gut!

Bei Verfügbarkeit kontaktieren wir Sie per E-Mail