In diesem Dokument wird beschrieben, wie Sie verschiedene Konvertierungsarbeitsbereiche in Database Migration Service verwenden.
Konvertierungsarbeitsbereiche mit dem integrierten Editor verwenden
Mit einem Konvertierungsarbeitsbereich können Sie das Schema und die Objekte aus der Quelldatenbank in ein Format konvertieren, das mit Ihrer Zieldatenbank kompatibel ist. Im Arbeitsbereich können Sie die gesamte Konvertierungsstruktur überprüfen, ändern und anwenden. Die Daten in der Quelldatenbank werden dadurch jedoch nicht geändert.
Quellschema und Code konvertieren
Wenn Sie einen Arbeitsbereich einrichten, ruft der Database Migration Service das Schema der Quelldatenbank und die Codeobjekte ab. Anschließend wählen Sie aus, welche Sie konvertieren möchten. Sie können später weitere Objekte hinzufügen. Diese Objekte werden jetzt auf dem Tab Oracle angezeigt. Im Bereich Cloud SQL for PostgreSQL-Entwurf werden das resultierende PostgreSQL-Schema und der vom Database Migration Service generierte Code angezeigt.
An diesem Punkt zeigt der Database Migration Service die erwarteten Objekte nach der Konvertierung an, nicht die tatsächlichen Objekte in der Zielinstanz.
Rufen Sie in der Google Cloud Console Conversion-Arbeitsbereiche auf.
Wählen Sie in der Liste der verfügbaren Konvertierungsarbeitsbereiche den gewünschten aus.
Der Editor für den Konvertierungsarbeitsbereich wird geöffnet.
Optional: Laden Sie eine Ora2Pg-Konfigurationsdatei hoch, um zusätzliche Zuordnungen für das generierte SQL bereitzustellen:
Klicken Sie auf Konfiguration bearbeiten > Zuordnung mit einer Konfigurationsdatei anpassen.
Klicken Sie im Feld Ora2Pg-Konfigurationsdatei auf Durchsuchen und wählen Sie mit der Dateiauswahl des Systems die Konfigurationsdatei aus.
Klicken Sie auf Datei hinzufügen > Generieren.
Optional: Wenn Sie bereits ein konvertiertes Schema und Code haben, aber das generierte SQL-Script manuell anpassen möchten, bevor Sie die Umwandlung noch einmal ausführen, gehen Sie so vor:
Wählen Sie im Bereich Oracle das Objekt aus, für das Sie das generierte SQL-Statement anpassen möchten.
Rufen Sie den Tab SQL auf und prüfen Sie die Anweisungen.
Passen Sie die Scripts nach Bedarf an Ihr Szenario an und klicken Sie auf Speichern.
Klicken Sie auf Quelle konvertieren, wenn Sie alle Anpassungen vorgenommen haben.
Klicken Sie im Bestätigungsdialogfeld auf Konvertieren.
Objekte aus dem Quellschema entfernen
Objekte aus dem Quellschema entfernen, um sie von der Konvertierung auszuschließen. Sie können entfernte Objekte bei Bedarf später wieder hinzufügen.
Rufen Sie in der Google Cloud Console Conversion-Arbeitsbereiche auf.
Wählen Sie in der Liste der verfügbaren Konvertierungsarbeitsbereiche den gewünschten aus.
Der Editor für den Konvertierungsarbeitsbereich wird geöffnet.
Wählen Sie auf dem Tab Oracle neben dem Objekt, das Sie entfernen möchten, das > Entfernen aus.
Dreipunkt-MenüKlicken Sie im Bestätigungsdialogfeld Objekt entfernen auf Entfernen.
Konvertieren Sie die Quelle noch einmal, damit die Änderungen auf dem Tab Cloud SQL for PostgreSQL-Entwurf berücksichtigt werden.
Objekte dem Quellschema hinzufügen
Sie können Objekte, die zuvor aus dem Quellschema entfernt wurden, der Konvertierung hinzufügen.
Rufen Sie in der Google Cloud Console Conversion-Arbeitsbereiche auf.
Wählen Sie in der Liste der verfügbaren Konvertierungsarbeitsbereiche den gewünschten aus.
Der Editor für den Konvertierungsarbeitsbereich wird geöffnet.
Klicken Sie auf dem Tab Oracle auf
Objekte hinzufügen.Wählen Sie im Bereich Objekte hinzufügen in der Quellliste alle Entitäten aus, die Sie dem Quellschema hinzufügen möchten.
Mit dem Feld Filter können Sie die Anzahl der angezeigten Objekte reduzieren. Weitere Informationen finden Sie unter Objekte in der Ansicht „Quellschema“ filtern.
Klicken Sie auf Objekte hinzufügen.
Konvertieren Sie die Quelle noch einmal, damit die Änderungen auf dem Tab Cloud SQL for PostgreSQL-Entwurf berücksichtigt werden.
Quellschema und Code-Snapshot abrufen
Sie können das Schema und den Code jederzeit aus Ihrer Quelldatenbank in den Konvertierungsarbeitsbereich abrufen. Wenn Sie die Quelle abrufen, haben Sie die Möglichkeit, neue Objekte hinzuzufügen oder vorhandene Objekte in der Conversion zu aktualisieren.
Wenn Sie das aktualisierte Datenbankschema und den Code abrufen, werden keine zusätzlichen Zuordnungen zurückgesetzt, die im Konvertierungsarbeitsbereich aus den Ora2Pg-Konfigurationsdateien vorhanden sind, es sei denn, Sie entfernen benutzerdefinierte Zuordnungen explizit.
Außerdem werden durch das Abrufen der Quelle keine SQL-Änderungen an Ihren Codeobjekten überschrieben. Sie können diese Änderungen direkt auf Objektebene zurücksetzen.
Rufen Sie in der Google Cloud Console Conversion-Arbeitsbereiche auf.
Klicken Sie auf Konfiguration bearbeiten > Quellschema-Snapshot noch einmal abrufen.
Gehen Sie im Dialogfeld so vor:
- Optional: Wählen Sie Benutzerdefinierte Zuordnung zurücksetzen aus, um vorhandene benutzerdefinierte Zuordnungen und DDL-Änderungen zu entfernen.
- Klicken Sie auf Schema-Snapshot abrufen.
Der Database Migration Service ruft den neuen Snapshot aus Ihrer Quelldatenbank ab. Wenn der Vorgang abgeschlossen ist, konvertieren Sie die Quelle noch einmal.
Konvertierungsergebnisse überprüfen
Nachdem Sie die Quellkonvertierung durchgeführt haben, können Sie die Konvertierungsergebnisse und mögliche Probleme für jedes einzelne konvertierte Objekt im Bearbeitungsbereich des Arbeitsbereichs prüfen. Sie können auch die Google Cloud CLI verwenden, um alle Ergebnisse und Probleme in einer Textdatei zu speichern.
Console
Rufen Sie in der Google Cloud Console Conversion-Arbeitsbereiche auf.
Klicken Sie auf den Anzeigenamen des Konvertierungsarbeitsbereichs, mit dem Sie arbeiten möchten.
Der Editor für den Konvertierungsarbeitsbereich wird geöffnet.
Wählen Sie den Tab Oracle aus und suchen Sie in der Baumstrukturtabelle nach dem Objekt, für das Sie die Conversion-Ergebnisse überprüfen möchten.
Wählen Sie das Objekt aus. Prüfen Sie die Conversion auf den Tabs SQL und Conversion-Probleme.
gcloud
Mit der Google Cloud CLI können Sie alle Conversion-Ergebnisse oder -Probleme im Terminal ausdrucken. Leiten Sie die Ausgabe an eine Datei weiter, um Bulk-Objektüberprüfungen einfacher durchzuführen.
Liste der Conversion-Ergebnisse abrufen
Die gcloud CLI zeigt die Conversion-Ergebnisse im Terminal in Form von DDL-Anweisungen (Data Definition Language) an. Führen Sie den folgenden Befehl aus, um Conversion-Ergebnisse in einer Datei zu speichern:
gcloud database-migration conversion-workspaces describe-ddls \
CONVERSION_WORKSPACE_ID \
--region=REGION_ID \
> OUTPUT_FILE_PATH
Ersetzen Sie:
CONVERSION_WORKSPACE_ID
durch die ID des Konvertierungsarbeitsbereichs ersetzen. Informationen zum Abrufen von Konvertierungsarbeitsbereichs-IDs finden Sie unter Details zum Konvertierungsarbeitsbereich ansehen.REGION_ID
durch den Namen der Region, in der sich der Konvertierungsarbeitsbereich befindet.OUTPUT_FILE_PATH
durch den Pfad zur Textdatei, in der Sie die Ausgabe speichern möchten.Beispiel:
gcloud database-migration conversion-workspaces describe-issues \ my-conversion-workspace \ --region=us-central1 \ > ./my-conversion-issues.txt
Ergebnis:
Die Ergebnisse der Schemakonvertierung werden in einem Textformat gespeichert, in dem die erste Zeile
DDLs
enthält und die nachfolgenden Zeilen SQL-Anweisungen enthalten:DDLs CREATE SCHEMA IF NOT EXISTS "SCHEMA1"; ALTER TABLE "SCHEMA1"."EMPLOYEES" ADD CONSTRAINT PK_ID PRIMARY KEY ("ID"); CREATE OR REPLACE FUNCTION mockschema.func_test_datatype(str1 VARCHAR(65000)) RETURNS DECIMAL LANGUAGE plpgsql AS $$ DECLARE str2 VARCHAR(100); BEGIN SELECT employees.first_name INTO STRICT STR2 FROM mockschema.employees WHERE employees.employee_id = CAST(FUNC_TEST_DATATYPE.str1 as DECIMAL) ; RAISE NOTICE '%', concat('Input : ', FUNC_TEST_DATATYPE.str1, ' Output : ', str2); RETURN 0; END; $$; CREATE OR REPLACE PROCEDURE greetings AS BEGIN dbms_output.put_line('Hello World!'); END; CREATE SYNONYM TABLE "SCHEMA1"."SYNONYM1" ON "SCHEMA1"."EMPLOYEES"; CREATE OR REPLACE VIEW "SCHEMA1"."VIEW1" AS SELECT * FROM JOBS;
Liste der Conversion-Probleme abrufen
Führen Sie den folgenden Befehl aus, um Conversion-Probleme in einer Datei zu speichern:
gcloud database-migration conversion-workspaces describe-issues \
CONVERSION_WORKSPACE_ID \
--region=REGION_ID \
> OUTPUT_FILE_PATH
Ersetzen Sie:
-
CONVERSION_WORKSPACE_ID
durch die ID des Konvertierungsarbeitsbereichs ersetzen. Informationen zum Abrufen von Konvertierungsarbeitsbereichs-IDs finden Sie unter Details zum Konvertierungsarbeitsbereich ansehen. -
REGION_ID
durch den Namen der Region, in der sich der Conversion-Arbeitsbereich befindet. -
OUTPUT_FILE_PATH
durch den Pfad zur Textdatei, in der Sie die Ausgabe speichern möchten.
Beispiel:
gcloud database-migration conversion-workspaces describe-issues \
my-conversion-workspace \
--region=us-central1 \
> ./my-conversion-issues.txt
Ergebnis:
Alle Conversion-Probleme in Ihrem Arbeitsbereich werden in einem Textformat gespeichert, wobei die erste Zeile Spaltenüberschriften und jede nachfolgende Zeile ein separates Conversion-Problem enthält:
PARENT NAME ENTITY_TYPE ISSUE_TYPE ISSUE_SEVERITY ISSUE_CODE ISSUE_MESSAGE
SCHEMA1 EMPLOYEES TABLE DDL ERROR 500 unable to parse DDL.
SCHEMA1 EMPLOYEES TABLE CONVERT WARNING 206 no conversion done.
SCHEMA1 STORED_PROCEDURE1 STORED_PROCEDURE DDL ERROR 500 invalid DDL.
SCHEMA1 SYNONYM1 SYNONYM CONVERT WARNING 206 synonym warning message.
Konvertierungsprobleme beheben
Der Database Migration Service kann Ihre gesamte Quelle möglicherweise nicht automatisch konvertieren.
Bei den meisten Oracle-Objekten können Sie das generierte SQL direkt im Conversion-Editor in Database Migration Service anpassen. Bei anderen müssen Sie das Objekt möglicherweise direkt in der Quelldatenbank ändern und dann den Quell-Snapshot noch einmal abrufen.
Eine vollständige Liste der Objekte, die im Database Migration Service direkt im Konvertierungsarbeitsbereich bearbeitet werden können, finden Sie unter Bearbeitbare Oracle-Objekte.
So beheben Sie Probleme mit der Konvertierung von Objekten, die die Live-Bearbeitung unterstützen:
Prüfen Sie die Konvertierungsergebnisse und identifizieren Sie mögliche Probleme.
Sie können die Google Cloud Console verwenden, um einzelne Objekte zu prüfen, oder die gcloud CLI, um alle Objekte im Bulk-Verfahren zu prüfen.
Aktualisieren Sie auf dem Tab Cloud SQL for PostgreSQL-Entwurf den generierten Code im SQL-Editor.
Testen Sie die Anwendung, um zu prüfen, ob der Database Migration Service Ihren Code korrekt auf die Zieldatenbank anwenden kann.
So beheben Sie Konvertierungsprobleme, die bei Objekten auftreten, die im Arbeitsbereich-Editor nicht unterstützt werden:
Quelle aktualisieren:
- Aktualisieren Sie das Schema und den Code direkt in der Quelldatenbank.
- Holen Sie die aktualisierten Quellen in den Database Migration Service.
- Konvertieren Sie die Quellen noch einmal und prüfen Sie, ob die Probleme weiterhin auftreten.
Mit dem Ora2Pg-Konfigurationstool können Sie zusätzliche Zuordnungen angeben:
- Konfigurieren Sie Ora2Pg und erstellen Sie eine Zuordnungsdatei für das fehlerhafte Objekt.
- Fügen Sie die Konfigurationsdatei dem Arbeitsbereich hinzu. Weitere Informationen zum Ändern von Konvertierungsarbeitsbereichen
Entfernen Sie das Objekt vom Tab „Quellen“ und konvertieren Sie das Schema noch einmal.
Ändern Sie den Code direkt in der Zielinstanz. Aktualisieren Sie keine Objekte, die sich auf Ihre Zuordnungen auswirken können.
Anwendung im Ziel testen
Bevor Sie das Schema auf die Zieldatenbank anwenden, können Sie zuerst eine Testanwendung ausführen, die sich nicht auf Ihre Ziel-Cloud SQL-Instanz auswirkt. Wenn Sie die Schemaanwendung testen, können Sie proaktiv nach möglichen Problemen suchen.
Rufen Sie in der Google Cloud Console Conversion-Arbeitsbereiche auf.
Klicken Sie auf den Anzeigenamen des Konvertierungsarbeitsbereichs, mit dem Sie arbeiten möchten.
Der Editor für den Konvertierungsarbeitsbereich wird geöffnet.
Klicken Sie auf Auf Ziel anwenden > Testen (empfohlen).
Der Assistent zum Anwenden des Schemas auf die Zieldatenbank wird angezeigt.
Wählen Sie im Abschnitt Ziel definieren das Verbindungsprofil aus, das auf Ihre Zieldatenbank verweist.
Klicken Sie auf Definieren und fortfahren.
Wählen Sie im Abschnitt Objekte auswählen und Anwendung testen die Schemas der Datenbankentitäten aus, die Sie für Ihre Zieldatenbank testen möchten.
Mit dem Feld Filter können Sie die Anzahl der angezeigten Objekte reduzieren. Weitere Informationen finden Sie unter Objekte in der Ansicht „Quellschema“ filtern.
Klicken Sie auf Anwendung testen.
Sie können den Status der Anwendung auf dem Tab Cloud SQL for PostgreSQL-Entwurf prüfen.
Schema auf Ziel anwenden
Wenn das Schema, das Sie in der Zieldatenbank verwenden möchten, gemäß Ihren Anforderungen und Zuordnungen konvertiert wurde, können Sie die Ergebnisse auf die Zieldatenbank anwenden.
Rufen Sie in der Google Cloud Console Conversion-Arbeitsbereiche auf.
Klicken Sie auf den Anzeigenamen des Konvertierungsarbeitsbereichs, mit dem Sie arbeiten möchten.
Der Editor für den Konvertierungsarbeitsbereich wird geöffnet.
Klicken Sie auf Auf Ziel anwenden > Übernehmen.
Der Assistent zum Anwenden des Schemas auf die Zieldatenbank wird angezeigt.
Wählen Sie im Abschnitt Ziel definieren das Verbindungsprofil aus, das auf Ihre Zieldatenbank verweist.
Klicken Sie auf Definieren und fortfahren.
Wählen Sie im Abschnitt Objekte überprüfen und Konvertierung auf Ziel anwenden die Schemas der Datenbankentitäten aus, die Sie in der Zieldatenbank erstellen möchten.
Mit dem Feld Filter können Sie die Anzahl der angezeigten Objekte reduzieren. Weitere Informationen finden Sie unter Objekte in der Ansicht „Quellschema“ filtern.
Klicken Sie auf Auf Ziel anwenden.
Sie können den Status der Anwendung auf dem Tab Cloud SQL for PostgreSQL-Entwurf prüfen.
Migrationsjob aus dem Conversion-Editor erstellen
Sie können einen Migrationsjob, der Ihren Konvertierungsarbeitsbereich verwendet, direkt über die Benutzeroberfläche des Conversion-Editors erstellen.
Rufen Sie in der Google Cloud Console Conversion-Arbeitsbereiche auf.
Klicken Sie auf den Anzeigenamen des Konvertierungsarbeitsbereichs, mit dem Sie arbeiten möchten.
Der Editor für den Konvertierungsarbeitsbereich wird geöffnet.
Klicken Sie auf Migrationsjob erstellen.
Fahren Sie mit den Standardschritten für Migrationsjobs fort, wie unter Migrationsjob erstellen beschrieben.
Objekte in der Quellschemaansicht filtern
Datenbankschemata enthalten oft Tausende von Objekten, was die Partitionierung der Konvertierungsarbeit erschwert. Wenn Sie Objekte aus dem Schema-Snapshot zur Ansicht des Quellschemas hinzufügen, können Sie die Anzahl der angezeigten Objekte mithilfe von Filtern begrenzen. Mithilfe von Filtern können Sie Objekte detaillierter hinzufügen und sich auf die Konvertierung einer ausgewählten Teilmenge Ihres Schemas konzentrieren.
Verwenden Sie die gefilterte Ansicht, wenn Sie der Quellschemaansicht Objekte hinzufügen:
Verwenden Sie im Feld Filter eine der folgenden Filtermethoden:
Wählen Sie in der Liste Properties eine der folgenden automatisch vorgeschlagenen Optionen aus:
- Objektname, um die Objekte nach einem Namen zu filtern, z. B.
ADMIN
. - Objekttyp, um die Objekte nach verschiedenen Typen zu filtern, z. B. Funktion oder Tabelle.
- Conversion-Status: Damit können Sie die Objekte nach dem Conversion-Status filtern, z. B. Aktion erforderlich oder Keine Probleme.
Sie können Filtereigenschaften mit logischen Operatoren kombinieren.
- Objektname, um die Objekte nach einem Namen zu filtern, z. B.
Abfrage eingeben. Beispiel:
type=table
.Weitere Informationen zur Filtersyntax finden Sie unter Unterstützte Filtersyntax.
Wählen Sie die Objekte aus, die Sie der Ansicht des Quellschemas hinzufügen möchten.
Unterstützte Filtersyntax
Sie können Objekte mit einer einfachen Suchanfrage nach Namen filtern oder eine spezielle type
-Property verwenden.
Beide Ansätze unterstützen die offizielle Google API-Spezifikation zum Filtern. Sie können also Literale mit Wildcards sowie logische und Vergleichsoperatoren verwenden.
- Filterung von Freitext
-
Verwenden Sie den Freitext, um die Objekte nach Name zu filtern. Bei diesem Ansatz wird die Groß-/Kleinschreibung berücksichtigt und Platzhalter werden unterstützt.
Beispiel:
Bei der
*JOB*
-Abfrage werden Platzhalter verwendet, um nach Entitäten zu suchen, die den TeilstringJOB
enthalten. Die gefilterte Ansicht gibt einige Tabellen und eine gespeicherte Prozedur zurück: - Mit dem Attribut
type
filtern -
Sie können Objekte nach allen Standardtypen filtern, die vom Datenbankmigrationsdienst unterstützt werden.
Die Eigenschaft
type
unterstützt die folgenden Literale mit den Gleichheitsoperatoren (=
) und Ungleichheitsoperatoren (!=
):database
,schema
,table
,column
,index
,sequence
,stored_procedure
,function
,view
,synonym
,materialized_view
,udt
,constraint
,database_package
,trigger
undevent_trigger
.Beispiel:
Der Filter
type=table
gibt nur Tabellen zurück, die in Ihrem Schema vorhanden sind:
Filterbedingungen kombinieren
Sie können mehrere Bedingungen angeben, indem Sie sie mit logischen Operatoren kombinieren.
Wenn Sie beispielsweise ausschließlich nach Tabellen suchen möchten, deren Namen die Teilstrings JOB
oder EMPLOYEE
enthalten, verwenden Sie diese Abfrage:
type=table AND (*JOB* OR *EMPLOYEE*)
Daher werden im Filter alle übereinstimmenden Tabellen angezeigt:
Legacy-Konvertierungsarbeitsbereiche verwenden
Legacy-Konvertierungsarbeitsbereiche sind schreibgeschützte Arbeitsbereiche, mit denen die Ora2Pg-Konfigurationsdateien mit einem Verbindungsprofil gekoppelt werden.
Quellschema konvertieren
Bei Legacy-Arbeitsbereichen konvertieren Sie das Schema mit dem Ora2Pg-Migrationstool direkt in Ihrer Quelldatenbank. Die Schemakonvertierung wird außerhalb des Database Migration Service verwaltet. Weitere Informationen finden Sie unter Schemakonvertierung vorbereiten.
Der Database Migration Service führt die Quellschemakonvertierung aus, wenn Sie den Legacy-Konvertierungsarbeitsbereich erstellen. Wenn Sie Ihre Zuordnungen aktualisieren möchten, erstellen Sie den alten Arbeitsbereich noch einmal mit der aktualisierten Konfigurationsdatei.
Auf Ziel anwenden
Nachdem Sie die Ora2Pg-Konfigurationsdatei und den Arbeitsbereich erstellt haben, müssen Sie den generierten Code selbst direkt auf die Zieldatenbank anwenden. Wenn Sie die Konvertierung ändern möchten, passen Sie die Ora2Pg-Konfigurationsdatei an und erstellen Sie den Legacy-Arbeitsbereich mit den neuen Einstellungen neu.