Mit Konvertierungsarbeitsbereichen arbeiten

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.

  1. Rufen Sie in der Google Cloud Console Conversion-Arbeitsbereiche auf.

    Konvertierungsarbeitsbereiche aufrufen

  2. Wählen Sie in der Liste der verfügbaren Konvertierungsarbeitsbereiche den gewünschten aus.

    Der Editor für den Konvertierungsarbeitsbereich wird geöffnet.

  3. Optional: Laden Sie eine Ora2Pg-Konfigurationsdatei hoch, um zusätzliche Zuordnungen für das generierte SQL bereitzustellen:

    1. Klicken Sie auf Konfiguration bearbeiten > Zuordnung mit einer Konfigurationsdatei anpassen.

    2. Klicken Sie im Feld Ora2Pg-Konfigurationsdatei auf Durchsuchen und wählen Sie mit der Dateiauswahl des Systems die Konfigurationsdatei aus.

    3. Klicken Sie auf Datei hinzufügen > Generieren.

  4. 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:

    1. Wählen Sie im Bereich Oracle das Objekt aus, für das Sie das generierte SQL-Statement anpassen möchten.

    2. Rufen Sie den Tab SQL auf und prüfen Sie die Anweisungen.

    3. Passen Sie die Scripts nach Bedarf an Ihr Szenario an und klicken Sie auf Speichern.

  5. Klicken Sie auf Quelle konvertieren, wenn Sie alle Anpassungen vorgenommen haben.

  6. 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.

  1. Rufen Sie in der Google Cloud Console Conversion-Arbeitsbereiche auf.

    Konvertierungsarbeitsbereiche aufrufen

  2. Wählen Sie in der Liste der verfügbaren Konvertierungsarbeitsbereiche den gewünschten aus.

    Der Editor für den Konvertierungsarbeitsbereich wird geöffnet.

  3. Wählen Sie auf dem Tab Oracle neben dem Objekt, das Sie entfernen möchten, das Dreipunkt-Menü > Entfernen aus.

  4. Klicken Sie im Bestätigungsdialogfeld Objekt entfernen auf Entfernen.

  5. 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.

  1. Rufen Sie in der Google Cloud Console Conversion-Arbeitsbereiche auf.

    Konvertierungsarbeitsbereiche aufrufen

  2. Wählen Sie in der Liste der verfügbaren Konvertierungsarbeitsbereiche den gewünschten aus.

    Der Editor für den Konvertierungsarbeitsbereich wird geöffnet.

  3. Klicken Sie auf dem Tab Oracle auf Objekte hinzufügen.

  4. 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.

  5. Klicken Sie auf Objekte hinzufügen.

  6. 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.

  1. Rufen Sie in der Google Cloud Console Conversion-Arbeitsbereiche auf.

    Konvertierungsarbeitsbereiche aufrufen

  2. Klicken Sie auf Konfiguration bearbeiten > Quellschema-Snapshot noch einmal abrufen.

  3. Gehen Sie im Dialogfeld so vor:

    1. Optional: Wählen Sie Benutzerdefinierte Zuordnung zurücksetzen aus, um vorhandene benutzerdefinierte Zuordnungen und DDL-Änderungen zu entfernen.
    2. 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

  1. Rufen Sie in der Google Cloud Console Conversion-Arbeitsbereiche auf.

    Konvertierungsarbeitsbereiche aufrufen

  2. Klicken Sie auf den Anzeigenamen des Konvertierungsarbeitsbereichs, mit dem Sie arbeiten möchten.

    Der Editor für den Konvertierungsarbeitsbereich wird geöffnet.

  3. 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.

  4. 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:

  1. 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.

  2. Aktualisieren Sie auf dem Tab Cloud SQL for PostgreSQL-Entwurf den generierten Code im SQL-Editor.

  3. 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:

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.

  1. Rufen Sie in der Google Cloud Console Conversion-Arbeitsbereiche auf.

    Konvertierungsarbeitsbereiche aufrufen

  2. Klicken Sie auf den Anzeigenamen des Konvertierungsarbeitsbereichs, mit dem Sie arbeiten möchten.

    Der Editor für den Konvertierungsarbeitsbereich wird geöffnet.

  3. Klicken Sie auf Auf Ziel anwenden > Testen (empfohlen).

    Der Assistent zum Anwenden des Schemas auf die Zieldatenbank wird angezeigt.

  4. Wählen Sie im Abschnitt Ziel definieren das Verbindungsprofil aus, das auf Ihre Zieldatenbank verweist.

  5. Klicken Sie auf Definieren und fortfahren.

  6. 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.

  7. 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.

  1. Rufen Sie in der Google Cloud Console Conversion-Arbeitsbereiche auf.

    Konvertierungsarbeitsbereiche aufrufen

  2. Klicken Sie auf den Anzeigenamen des Konvertierungsarbeitsbereichs, mit dem Sie arbeiten möchten.

    Der Editor für den Konvertierungsarbeitsbereich wird geöffnet.

  3. Klicken Sie auf Auf Ziel anwenden > Übernehmen.

    Der Assistent zum Anwenden des Schemas auf die Zieldatenbank wird angezeigt.

  4. Wählen Sie im Abschnitt Ziel definieren das Verbindungsprofil aus, das auf Ihre Zieldatenbank verweist.

  5. Klicken Sie auf Definieren und fortfahren.

  6. 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.

  7. 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.

  1. Rufen Sie in der Google Cloud Console Conversion-Arbeitsbereiche auf.

    Konvertierungsarbeitsbereiche aufrufen

  2. Klicken Sie auf den Anzeigenamen des Konvertierungsarbeitsbereichs, mit dem Sie arbeiten möchten.

    Der Editor für den Konvertierungsarbeitsbereich wird geöffnet.

  3. Klicken Sie auf Migrationsjob erstellen.

  4. 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:

  1. 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.

    • Abfrage eingeben. Beispiel: type=table.

      Weitere Informationen zur Filtersyntax finden Sie unter Unterstützte Filtersyntax.

  2. 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.

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 Teilstring JOB enthalten. Die gefilterte Ansicht gibt einige Tabellen und eine gespeicherte Prozedur zurück:

Screenshot mit Beispielergebnissen für das Filtern von Objekten nach Name
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 und event_trigger.

Beispiel:

Der Filter type=table gibt nur Tabellen zurück, die in Ihrem Schema vorhanden sind:

Screenshot mit Beispielergebnissen für das Filtern von Objekten nach dem Attribut „Typ“
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:

Screenshot mit Beispielergebnissen für das Filtern von Objekten nach einer Kombination aus Typ- und Namenseigenschaften

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.