Auf dieser Seite sind bekannte Fehler und empfohlene Schritte zur Fehlerbehebung für Folgendes aufgeführt:
Fehler bei Migrationsjobs
Im Migrationsjobprozess können während der Laufzeit Fehler auftreten.
- Einige Fehler, wie z. B. ein ungültiges Passwort in der Quelldatenbank, sind wiederherstellbar. Der Migrationsjob wird automatisch fortgesetzt, nachdem diese Fehler behoben wurden.
- Einige Fehler sind nicht behebbar, z. B. Fehler bei der Datenreplikation. Sie müssen den Migrationsjob neu starten, nachdem diese Fehler behoben wurden.
Wenn ein Fehler auftritt, ändert sich der Status des Migrationsjobs in Failed
und der Unterstatus gibt den letzten Status vor dem Fehler an.
Rufen Sie zur Fehlerbehebung den fehlgeschlagenen Migrationsjob auf, um den Fehler zu sehen, und folgen Sie dann den Schritten in der Fehlermeldung.
Wenn Sie weitere Details zum Fehler aufrufen möchten, rufen Sie Cloud Monitoring über den Link im Migrationsjob auf. Die Logs werden nach dem jeweiligen Migrationsjob gefiltert.
In der folgenden Tabelle finden Sie einige Beispiele für Probleme und wie sie behoben werden können:
Symptom | Mögliche Ursachen | Lösungsvorschlag |
---|---|---|
Fehlermeldung: Database Migration Service can't set up a tunnel to be
connected to the bastion host .
|
Database Migration Service konnte nicht auf den Bastion Host zugreifen oder der Bastion Host akzeptiert keine Verbindungen. | Prüfen Sie Ihre Einstellungen für Weiterleitungs-SSH-Tunnel im Quellverbindungsprofil und die Konfiguration des SSH-Tunnelservers und versuchen Sie es noch einmal. |
Fehlermeldung: Database Migration Service can't connect to the database oder Database Migration Service private connectivity error, cannot connect to the database .
|
Database Migration Service konnte keine Verbindung zur Oracle-Quelldatenbank herstellen. |
Prüfen Sie, ob Sie von Ihrem Projekt aus auf die Quelldatenbank zugreifen können. Prüfen Sie die Einstellungen für Ihre Konfigurationsmethode für die Quellverbindung. Wenn ein bestimmter Oracle-Fehlercode enthalten ist, z. B. |
Fehlermeldung: Archiving mode is not ARCHIVELOG . |
Ihre Quelldatenbank wird nicht im Modus ARCHIVELOG ausgeführt. |
Konfigurieren Sie Ihre Quelldatenbank für die Verwendung des ARCHIVELOG -Modus.
Weitere Informationen finden Sie unter
Oracle-Quelldatenbank konfigurieren.
|
Fehlermeldung: Supplemental logging ("ALL COLUMN LOGGING") isn't turned
on for the tables listed below .
|
Für Ihre Quelldatenbank sind keine zusätzlichen Logdaten aktiviert. | Aktivieren Sie zusätzliche Logdaten und legen Sie den Modus auf ALL fest.
Weitere Informationen finden Sie unter
Oracle-Quelldatenbank konfigurieren.
|
Fehlermeldung: No Archive Log Files were found in the source . |
Database Migration Service liest nur geschlossene Archivierungsprotokolle und in der Quelldatenbank wurden keine Protokolle gefunden. |
Wenn in der Datenbank keine aktiven Schreibvorgänge vorhanden sind, müssen Sie möglicherweise mindestens einen |
Fehlermeldung: We're missing the necessary permissions to read
from the source .
|
Das Migrationsnutzerkonto in Ihrer Quelldatenbank hat nicht die erforderlichen Berechtigungen. |
Database Migration Service stellt als das Nutzerkonto, das Sie im Quellverbindungsprofil konfigurieren, eine Verbindung zu Ihrer Quelle her. Für dieses Konto sind bestimmte Berechtigungen (z. B. Das Migrationsnutzerkonto muss die erforderlichen Berechtigungen haben. Weitere Informationen finden Sie unter Oracle-Quelldatenbank konfigurieren. |
Fehlermeldung: Unable to connect to the destination database . |
Beim Herstellen der Verbindung zur Zieldatenbank ist ein Problem aufgetreten. | Prüfen Sie, ob Sie von Ihrem Projekt aus auf die Zieldatenbank zugreifen können. Prüfen Sie die Einstellungen für Ihre Konfigurationsmethode für die Zielverbindung. |
Fehlermeldung: The following tables don't exist in the destination database: {table_names} . |
Die aufgeführten Tabellen, die Sie migrieren möchten, sind in der Zieldatenbank nicht vorhanden. | Database Migration Service erstellt die erforderliche Tabelle und die erforderlichen Definitionen, wenn Sie das Quellschema konvertieren. |
Fehlermeldung: password authentication failed for user {username} . |
Der Nutzername oder das Passwort für die Zieldatenbank sind falsch konfiguriert. | Prüfen Sie, ob das PostgreSQL-Zielverbindungsprofil mit dem richtigen Nutzernamen und Passwort konfiguriert ist. |
Fehlermeldung: The following tables in the destination database
don't have primary keys: {table_names} .
|
Die in der Fehlermeldung aufgeführten Tabellen sind in der Zieldatenbank vorhanden, haben aber keine Primärschlüssel. |
In Konvertierungsarbeitsbereichen von Database Migration Service werden automatisch Primärschlüssel für Tabellen ohne Primärschlüssel hinzugefügt, wenn Sie das Schema konvertieren. Wenn Sie Legacy-Konvertierungsarbeitsbereiche verwenden, müssen Sie die Primärschlüssel manuell in Ihrem Ziel erstellen. Weitere Informationen finden Sie unter Legacy-Konvertierungsarbeitsbereiche. |
Warnung: The following tables have foreign keys: {table_names} . |
Die in der Fehlermeldung aufgeführten Tabellen sind in der Zieldatenbank vorhanden, haben aber Fremdschlüssel. |
Database Migration Service repliziert Daten nicht transaktional. Tabellen werden daher möglicherweise in der falschen Reihenfolge migriert. Wenn Fremdschlüssel vorhanden sind und eine untergeordnete Tabelle, die einen Fremdschlüssel verwendet, vor der übergeordneten Tabelle migriert wird, können Replikationsfehler auftreten. Um solche Probleme mit der Datenintegrität zu vermeiden, überspringen Sie Fremdschlüssel mit der Option |
Fehlermeldung: Unable to resume replication as log position is lost . |
Dieser Fehler kann auftreten, wenn der Replikationsprozess für längere Zeit pausiert wird, was zum Verlust der Logposition führt. | Ein Migrationsjob sollte nicht länger als die Protokollaufbewahrungsdauer pausiert werden. Wenn die Logposition verloren geht, müssen Sie den Migrationsjob neu erstellen. |
Fehlermeldung: ORA-00942: table or view does not exist . |
Dieser Fehler kann durch das Caching auf dem Oracle-Server verursacht werden. | Erstellen Sie den Datenbanknutzer neu, um das Caching-Problem zu beheben. |
Der Migrationsjob bleibt in der Phase des vollständigen Dumps und geht nicht in die Phase des Change Data Capture (CDC) über. | Database Migration Service führt für einige der Tabellen weiterhin einen vollständigen Dump durch oder für eine oder mehrere Tabellen kann der vollständige Dump aufgrund von Fehlern nicht abgeschlossen werden. |
|
Verbindungsprobleme
In diesem Abschnitt werden Schritte zur Fehlerbehebung für potenzielle Probleme mit der Netzwerkverbindung aufgeführt und beschrieben.
Verbindung zur Zieldatenbank nicht möglich: EOF
Beim Ausführen eines Konnektivitätstests wird die Fehlermeldung [DATABASE] unable to connect to the destination database: EOF
zurückgegeben.
Mögliche Ursache:Die Dienstanhänge sind falsch konfiguriert.
Mögliche Lösungen:Achten Sie darauf, dass enable_proxy_protocol
in der
Terraform-Konfigurationsdatei für die Dienstanhänge auf false
festgelegt ist.
Das Proxyprotokoll wird nur für HTTP-Server wie NGINX und Apache unterstützt.
Wenn Sie gcloud
verwenden, um die Private Service Connect-Einrichtung zu erstellen, ist das Proxy-Protokoll standardmäßig deaktiviert.
Zeitüberschreitung der Verbindung, Verbindung verweigert
Der Konnektivitätstest schlägt fehl oder es kommt zu einer Zeitüberschreitung. Das liegt höchstwahrscheinlich an einer falsch konfigurierten Weiterleitung in der Private Service Connect-Einrichtung. Dafür kann es verschiedene Gründe geben.
Mögliche Ursache:Es fehlt eine Firewallregel, die dem Private Service Connect-NAT-CIDR-Bereich den Zugriff auf das Private Service Connect-Subnetz ermöglicht, in dem sich der Bastion-Host befindet, insbesondere auf die nic0
-Schnittstelle der Bastion-VM.
Mögliche Lösungen:Prüfen Sie, ob Ihre Organisationsrichtlinie interne Firewallregeln einschränkt, z. B. die psc_sp_in_fw
-Firewallregel, die im Beispiel-Terraform-Script zum
Konfigurieren der privaten IP-Verbindung für Zielinstanzen für Cloud SQL-Instanzen, die nicht für Private Service Connect aktiviert sind definiert ist.
Mögliche Ursache:Der Proxy ist ausgefallen. Auf dem angegebenen Port ist kein Listener vorhanden. Die Verbindung wird daher nicht hergestellt.
Mögliche Maßnahmen:Sie können versuchen, eine SSH-Verbindung zur Bastion-VM herzustellen und mit dem folgenden Befehl nach dem Proxy zu suchen:
netstat -tunalp | grep PORT
Analysieren Sie die Antworten auf den Befehl:
Wenn Sie eine leere Antwort erhalten, ist der Proxy nicht verfügbar. Führen Sie die folgenden Befehle aus:
sudo su; cd /
und prüfen Sie, ob der Dante-Server installiert ist, indem Siesudo dpkg -s dante-server
ausführen:Wenn der Proxy installiert ist, wird die folgende Meldung angezeigt:
Status: install ok installed
Wenn der Proxy nicht installiert ist, liegt das Problem wahrscheinlich an einem fehlenden Router. Fügen Sie einen Router hinzu und prüfen Sie, ob Sie den Proxy herunterladen können, indem Sie
apt-get install dante-server
ausführen.
Wenn der Proxy ausgeführt wird und den angegebenen Port überwacht, versuchen Sie, eine Verbindung zu ihm herzustellen:
Installieren Sie den PostgreSQL-Client:
sudo apt-get install postgresql-client
.Stellen Sie eine Verbindung zur PostgreSQL-Datenbank her:
psql -h 127.0.0.1 -p PORT -U DBUSERNAME -W
(Sie werden aufgefordert, das Passwort einzugeben).Ersetzen Sie Folgendes:
PORT
: die Datenbankportnummer.DBUSERNAME
: Der Nutzername, der für die Verbindung zur PostgreSQL-Datenbank verwendet wird.
Installieren Sie den Telnet-Client:
sudo apt-get install telnet
Stellen Sie eine Verbindung zum Telnet-Client her:
telnet 127.0.0.1 PORT
Ersetzen Sie
PORT
durch die Portnummer der Datenbank.
Je nach den Ergebnissen der Befehle:
Wenn die Befehle keine Verbindung herstellen, sehen Sie in den Proxy-Logs nach der Ursache. Die Ursache kann je nach Einrichtung der Cloud SQL-Instanz variieren.
Wenn die Verbindung mit Telnet geöffnet wird, aber im Client hängen bleibt, liegt das Problem wahrscheinlich am Routing der Bastion-IP-Adresse. Geben Sie auf Ihrer VM
ip route
in das Terminal ein. Suchen Sie nach einer Routingregel, die Verbindungen zur privaten IP-Adresse der Cloud SQL-Instanz über die sekundärenic
(nic1
, dieDB_SUBNETWORK_GATEWAY
-IP-Adresse) weiterleitet.
Mögliche Ursache:Der Dienstanhang akzeptiert die Endpunktverbindung von Database Migration Service nicht. Der Dienstanhang enthält eine Liste der akzeptierten Projekte. Das Database Migration Service-Projekt ist nicht in der Liste enthalten.
Mögliche Lösungen:Versuchen Sie, das Problem mit einer der folgenden Maßnahmen zu beheben:
Rufen Sie in der Google Cloud Console Private Service Connect auf.
Akzeptieren Sie auf dem Tab Veröffentlichte Dienste die Verbindung von Database Migration Service für Ihre Dienstanhänge, sofern sie aussteht.
Fügen Sie das anfragende Projekt der Liste der zugelassenen Projekte im Dienstanhang hinzu (falls es abgelehnt wird).
Weitere Informationen zum Hinzufügen eines Projekts auf der Zulassungsliste in Terraform finden Sie in der Terraform-Dokumentation.
Weitere Informationen zum Hinzufügen eines Projekts auf der Zulassungsliste in
gcloud
finden Sie in der Referenzdokumentation zur Google Cloud CLI.
Wenn das Problem dadurch nicht behoben wird, erstellen Sie das Verbindungsprofil neu.
Löschen Sie das Verbindungsprofil, das mit der Private Service Connect-Verbindung verknüpft ist, und erstellen Sie es neu.
Oracle SCAN-Fehler beheben
In diesem Abschnitt werden mögliche Probleme beschrieben, die bei der Migration von Oracle RAC-Quellen (Real Application Clusters) mit dem SCAN-Feature (Single Client Access Name) auftreten können.
Es kann keine Verbindung zu einer Oracle SCAN-Datenbank hergestellt werden.
Der Konnektivitätstest schlägt fehl oder es kommt zu einer Zeitüberschreitung.
Mögliche Ursache:Sie versuchen möglicherweise, eine Verbindung direkt zu Ihrer Oracle SCAN-Quelldatenbank herzustellen. Database Migration Service unterstützt keine direkte Verbindung zu Datenbanken, die das SCAN-Feature in Oracle RAC-Umgebungen verwenden.
Mögliche Lösungen:Versuchen Sie, das Problem mit einer der folgenden Maßnahmen zu beheben:
Stellen Sie eine direkte Verbindung zu einem der Knoten her.
Verwenden Sie den Oracle Connection Manager.
Erstellen Sie eine private Verbindungskonfiguration mit einer Reverse-Proxy-Lösung wie HAProxy.