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 Google Cloud-Ressourcen für das Lab verfügbar sind.
In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung 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 (empfohlen), 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: Verwenden Sie für dieses Lab nur das Teilnehmerkonto. Wenn Sie ein anderes Google Cloud-Konto verwenden, fallen dafür möglicherweise Kosten an.
Lab starten und bei der Google Cloud Console anmelden
Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Dialogfeld 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
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.
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“.
Klicken Sie auf Weiter.
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“.
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.
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 auf Google Cloud-Produkte und ‑Dienste zugreifen möchten, klicken Sie auf das Navigationsmenü oder geben Sie den Namen des Produkts oder Dienstes in das Feld Suchen ein.
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.
Klicken Sie oben in der Google Cloud Console auf Cloud Shell aktivieren.
Klicken Sie sich durch die folgenden Fenster:
Fahren Sie mit dem Informationsfenster zu Cloud Shell fort.
Autorisieren Sie Cloud Shell, Ihre Anmeldedaten für Google Cloud API-Aufrufe zu verwenden.
Wenn eine Verbindung besteht, sind Sie bereits authentifiziert und das Projekt ist auf 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.
(Optional) Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
gcloud auth list
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`
(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
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.
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.
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.
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.
Klicken Sie in der Cloud Console im Navigationsmenü () auf Compute Engine > VM-Instanzen.
Klicken Sie im Eintrag für postgresql-vm unter Verbinden auf SSH.
Wenn Sie dazu aufgefordert werden, klicken Sie auf Autorisieren.
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
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.
Starten Sie das Tool psql:
sudo su - postgres
psql
Fügen Sie den Datenbanken postgres, orders und gmemegen_db die Datenbankerweiterung pglogical hinzu.
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.
In diesem Schritt erstellen Sie einen dedizierten Nutzer zum Verwalten der Datenbankmigration.
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.
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;
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;
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;
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;
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.
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)
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.
Klicken Sie in der Google Cloud Console im Navigationsmenü () auf Compute Engine > VM-Instanzen.
Suchen Sie die Zeile mit der Instanz postgresql-vm.
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.
Klicken Sie in der Google Cloud Console im Navigationsmenü () auf Datenbankmigration > Verbindungsprofile.
Klicken Sie auf + Profil erstellen.
Wählen Sie als Datenbankmodul die Option PostgreSQL aus.
Geben Sie als Verbindungsprofilname den Namen postgres-vm ein.
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).
Geben Sie als Port den Wert 5432 ein.
Geben Sie als Nutzername den Namen migration_admin ein.
Geben Sie als Passwort das Passwort DMS_1s_cool! ein .
Wählen Sie bei Region die Option aus.
Behalten Sie für die anderen Werte die Standardwerte bei.
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.
Klicken Sie in der Google Cloud Console im Navigationsmenü () auf Datenbankmigration > Migrationsjobs.
Klicken Sie auf + Migrationsjob erstellen.
Geben Sie als Name des Migrationsjobs den Namen vm-to-cloudsql ein.
Wählen Sie als Quelldatenbankmodul die Option PostgreSQL aus.
Wählen Sie als Zielregion die Option aus.
Wählen Sie als Zieldatenbankmodul die Option Cloud SQL for PostgreSQL aus.
Wählen Sie als Typ des Migrationsjobs die Option Kontinuierlich aus.
Behalten Sie für die anderen Einstellungen die Standardeinstellungen bei.
Klicken Sie auf Speichern und weiter.
Quellinstanz definieren
In diesem Schritt definieren Sie die Quellinstanz für die Migration.
Wählen Sie für Quellverbindungsprofil die Option postgres-vm aus.
Behalten Sie für die anderen Einstellungen die Standardeinstellungen bei.
Klicken Sie auf Speichern und weiter.
Zielinstanz erstellen
In diesem Schritt erstellen Sie die Zielinstanz für die Migration.
Geben Sie als Zielinstanz-ID die ID postgresql-cloudsql ein.
Geben Sie als Passwort das Passwort supersecret! ein.
Wählen Sie unter Cloud SQL-Version auswählen die Version Enterprise aus.
Wählen Sie als Datenbankversion die Version Cloud SQL for PostgreSQL 13 aus.
Wählen Sie im Abschnitt Region und Zone auswählen die Option Einzelne Zone und dann als Primäre Zone aus.
Wählen Sie für Instanzverbindung die Optionen Private IP-Adresse und Öffentliche IP-Adresse aus.
Wählen Sie Automatisch zugewiesenen IP-Bereich verwenden aus.
Behalten Sie für die anderen Einstellungen die Standardeinstellungen bei.
Klicken Sie auf Zuweisen und verbinden.
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.
Geben Sie die zusätzlichen Informationen ein, die zum Erstellen der Zielinstanz in Cloud SQL nötig sind.
Setzen Sie für Maschinenformen das Häkchen bei 1vCPU, 3,75 GB.
Wählen Sie als Speichertyp die Option SSD aus.
Wählen Sie für Speicherkapazität die Option 10 GB aus.
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.
Wählen Sie als Verbindungsmethode die Option VPC-Peering aus.
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.
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.
Rufen Sie den zugewiesenen IP-Adressbereich ab. Klicken Sie in der Google Cloud Console im Navigationsmenü () mit der rechten Maustaste auf VPC-Netzwerk > VPC-Netzwerk-Peering und öffnen Sie die Seite in einem neuen Tab.
Klicken Sie auf den Eintrag servicenetworking-googleapis-com.
Wählen Sie auf dem Tab Importierte Routen den Ziel-IP-Bereich (z. B. 10.107.176.0/24) aus und kopieren Sie ihn.
Bearbeiten Sie in der Terminalsitzung auf der VM-Instanz die Datei pg_hba.conf so:
sudo nano /etc/postgresql/13/main/pg_hba.conf
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.
Speichern Sie und beenden Sie den nano-Editor, indem Sie Strg + O, die Eingabetaste oder Strg + X drücken.
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.
Schauen Sie sich auf dem Database Migration Service-Tab, den Sie vorhin geöffnet haben, die Einzelheiten des Migrationsjobs an.
Klicken Sie auf Job testen.
Wenn der Test erfolgreich war, klicken Sie auf Job erstellen und starten.
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.
Klicken Sie in der Google Cloud Console im Navigationsmenü () auf Datenbankmigration > Migrationsjobs.
Klicken Sie auf den Migrationsjob vm-to-cloudsql, um die Seite „Details“ aufzurufen.
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.
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
Klicken Sie in der Google Cloud Console im Navigationsmenü () auf Datenbanken > SQL.
Erweitern Sie die Instanz-ID mit dem Namen postgresql-cloudsql-master.
Klicken Sie auf die Instanz postgresql-cloudsql (PostgreSQL-Lesereplikat).
Klicken Sie im Menü Replikatinstanz auf Datenbanken.
Sie sehen, dass die Datenbanken namens postgres, orders und gmemegen_db zu Cloud SQL migriert wurden.
Verbindung zur PostgreSQL-Instanz herstellen
Klicken Sie im Menü Replikatinstanz auf Übersicht.
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:
Wenn Sie dazu aufgefordert werden, klicken Sie für die API auf Autorisieren.
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
Um die Datenbank in der interaktiven PostgreSQL-Konsole auszuwählen, führen Sie den folgenden Befehl aus:
\c orders;
Wenn Sie zur Eingabe eines Passworts aufgefordert werden, geben Sie Folgendes ein:
supersecret!
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
Beenden Sie die interaktive PostgreSQL-Konsole, indem Sie Folgendes eingeben:
\q
Eigenständige Quelldaten aktualisieren, um fortlaufende Migration zu testen
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.
Wenn Sie zur Eingabe eines Passworts aufgefordert werden, geben Sie Folgendes ein:
DMS_1s_cool!
In psql geben Sie die folgenden Befehle ein:
\c orders;
insert into distribution_centers values(-80.1918,25.7617,'Miami FL',11);
Beenden Sie die interaktive psql-Sitzung:
\q
Verbindung zur Cloud SQL PostgreSQL-Datenbank herstellen, um zu prüfen, ob die aktualisierten Daten migriert wurden
Geben Sie in Cloud Shell die folgenden Befehle ein, um eine Verbindung zur Cloud SQL PostgreSQL-Zielinstanz herzustellen:
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
Wählen Sie in Cloud Shell die aktive Datenbank in der interaktiven PostgreSQL-Konsole aus:
\c orders;
Wenn Sie zur Eingabe eines Passworts aufgefordert werden, das Sie ja zuvor festgelegt haben, geben Sie Folgendes ein:
supersecret!
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.
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
Klicken Sie in der Google Cloud Console im Navigationsmenü () auf Datenbankmigration > Migrationsjobs.
Klicken Sie auf den Migrationsjobnamen vm-to-cloudsql, um die Seite „Details“ aufzurufen.
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.
Klicken Sie in der Google Cloud Console im Navigationsmenü () auf Datenbanken > SQL.
Sie sehen, dass postgresql-cloudsql jetzt eine eigenständige Instanz zum Lesen und Schreiben von Daten ist.
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.
Labs erstellen ein Google Cloud-Projekt und Ressourcen für einen bestimmten Zeitraum
Labs haben ein Zeitlimit und keine Pausenfunktion. Wenn Sie das Lab beenden, müssen Sie von vorne beginnen.
Klicken Sie links oben auf dem Bildschirm auf Lab starten, um zu beginnen
Privates Surfen verwenden
Kopieren Sie den bereitgestellten Nutzernamen und das Passwort für das Lab
Klicken Sie im privaten Modus auf Konsole öffnen
In der Konsole anmelden
Melden Sie sich mit Ihren Lab-Anmeldedaten an. Wenn Sie andere Anmeldedaten verwenden, kann dies zu Fehlern führen oder es fallen Kosten an.
Akzeptieren Sie die Nutzungsbedingungen und überspringen Sie die Seite zur Wiederherstellung der Ressourcen
Klicken Sie erst auf Lab beenden, wenn Sie das Lab abgeschlossen haben oder es neu starten möchten. Andernfalls werden Ihre bisherige Arbeit und das Projekt gelöscht.
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
Es ist immer nur ein Lab möglich
Bestätigen Sie, dass Sie alle vorhandenen Labs beenden und dieses Lab starten möchten
Privates Surfen für das Lab verwenden
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.
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.