Legacy-Konvertierungsarbeitsbereiche

Legacy-Konvertierungsarbeitsbereiche sind eine ältere, eingeschränktere Art von Konvertierungsarbeitsbereichen. Legacy-Conversion-Arbeitsbereiche unterstützen keine Gemini-optimierten Conversion-Funktionen und den interaktiven SQL-Editor nicht. Sie können sie nur verwenden, um Ihr Quellschema mit dem Ora2Pg-Migrationstool zu konvertieren.

Wir empfehlen, für Migrationen keine alten Conversion-Arbeitsbereiche zu verwenden, da sie den Conversion-Workflow auf mehrere andere Weise einschränken:

Interaktiver KonvertierungsarbeitsbereichLegacy-Konvertierungsarbeitsbereich
Die Konvertierung von Schema- und Codeobjekten erfolgt im Datenbank-Migrationsdienst. Sie führen Schema- und Codeobjektkonvertierungen außerhalb des Database Migration Service mit dem Ora2Pg-Migrationstool durch.
Sie können konvertierte Quellen direkt im Database Migration Service auf die Zieldatenbank anwenden. Sie sind dafür verantwortlich, das konvertierte Schema auf die Zieldatenbank in Ihrem AlloyDB for PostgreSQL-Zielcluster anzuwenden.
Sie können Ihr Schema und Ihren Code direkt im Database Migration Service testen, um sicherzustellen, dass sie erfolgreich auf Ihren Zielcluster angewendet werden können. Sie können das Schema und den Code des Entwurfs nicht testen, ohne den Zielcluster zu beeinflussen.
Fügen Sie automatisch fehlende rowid-Spalten für Tabellen hinzu, die keine Primärschlüssel und keine eindeutigen Einschränkungen haben. Sie müssen den Zieltabellen fehlende Primärschlüssel hinzufügen, nachdem Sie das Schema angewendet haben.
Tabelle 1: Vergleich der Funktionen von Conversion-Arbeitsbereichen

Legacy-Konvertierungsarbeitsbereiche verwenden

Wenn in Ihrem Szenario die Verwendung alter Conversion-Arbeitsbereiche erforderlich ist, ändern Sie den Migrationsprozess mit den folgenden Aktionen:

  1. Schreiben Sie eine Ora2Pg-Konfigurationsdatei.

    Eine Anleitung zur Verwendung des Ora2Pg-Konvertierungstools finden Sie in der Ora2Pg-Dokumentation. Maximieren Sie die folgenden Abschnitte, um eine vollständige Liste der im Database Migration Service unterstützten Anweisungen aufzurufen.

    Ora2Pg-Konfiguration, die vom Datenbank-Migrationsdienst unterstützt wird

    Der Database Migration Service verwendet die folgende Konfiguration für Ora2Pg-Dateien:

    • BOOLEAN_VALUES
    • DATA_TYPE
    • DEFAULT_NUMERIC
    • ENABLE_MICROSECOND
    • EXPORT_SCHEMA
    • MODIFY_STRUCT
    • MODIFY_TYPE
    • PG_INTEGER_TYPE
    • PG_NUMERIC_TYPE
    • PG_SCHEMA
    • PRESERVE_CASE
    • REPLACE_AS_BOOLEAN
    • REPLACE_COLS
    • REPLACE_TABLES
    • REPLACE_ZERO_DATE
    • SCHEMA

    Database Migration Service verwendet Verbindungsprofile, um Verbindungsdetails zu definieren. Sie müssen die folgenden Informationen daher nicht in Ihrer Or2Pg-Konfigurationsdatei angeben:

    • ORACLE_DSN
    • ORACLE_HOME
    • ORACLE_PWD
    • ORACLE_USER
    • PG_DSN
    • PG_PWD
    • PG_USER

    Außerdem verwendet der Database Migration Service die Konfigurationsanweisung WHERE nicht, um die zu migrierenden Einträge einzuschränken.

  2. Legacy-Konvertierungsarbeitsbereich erstellen und Schema konvertieren
  3. Wenden Sie das konvertierte Schema manuell auf die Zieldatenbank an.

    Nachdem Sie die Ora2Pg-Konfiguration und den Arbeitsbereich erstellt haben, müssen Sie den generierten Code selbst direkt auf die Zieldatenbank anwenden.

  4. Tabellen ohne Primärschlüssel migrieren

    Database Migration Service migriert nur Tabellen mit Primärschlüsseln. Wenn Ihre Quelldatenbank Tabellen enthält, die keine Primärschlüssel haben, müssen Sie nach dem Anwenden des konvertierten Schemas manuell Primärschlüssel oder eindeutige Einschränkungen in den konvertierten Tabellen in der Zieldatenbank erstellen. Maximieren Sie den folgenden Abschnitt, um weitere Informationen zu erhalten.

    Fügen Sie der Zieldatenbank Primärschlüssel oder eindeutige Einschränkungen hinzu.

    So migrieren Sie Oracle-Tabellen ohne Primärschlüssel:

    1. Stellen Sie mit dem psql-Client eine Verbindung zu Ihrem AlloyDB for PostgreSQL-Cluster her.
    2. Erstellen Sie die fehlenden Primärschlüsseleinschränkungen für Ihre Tabellen. Weitere Informationen zu Primärschlüsseln finden Sie in der PostgreSQL-Dokumentation unter Primärschlüssel.

      Sie können auch die folgenden Abschnitte maximieren, um Beispiel-SQL-Befehle zu sehen:

      Primärschlüssel mithilfe vorhandener Spalten erstellen

      Ihre Tabelle hat möglicherweise bereits einen logischen Primärschlüssel, der auf einer Spalte oder einer Kombination von Spalten basiert. Es kann beispielsweise Spalten mit einer eindeutigen Einschränkung oder einem Index geben. Verwenden Sie diese Spalten, um einen neuen Primärschlüssel für Tabellen in Ihrer Quelldatenbank zu generieren. Beispiel:

      ALTER TABLE TABLE_NAME
      ADD PRIMARY KEY (COLUMN_NAME);

      Primärschlüssel mit allen Spalten erstellen

      Wenn Sie keine vorhandene Einschränkung haben, die als Primärschlüssel dienen könnte, erstellen Sie Primärschlüssel mit allen Spalten der Tabelle. Achten Sie darauf, dass Sie die vom PostgreSQL-Cluster zulässige maximale Länge des Primärschlüssels nicht überschreiten. Beispiel:

      ALTER TABLE TABLE_NAME
      ADD PRIMARY KEY (COLUMN_NAME_1, COLUMN_NAME_2, COLUMN_NAME_3, ...);

      Wenn Sie einen zusammengesetzten Primärschlüssel wie diesen erstellen, müssen Sie alle Spaltennamen, die Sie verwenden möchten, explizit auflisten. Es ist nicht möglich, mit einer Anweisung alle Spaltennamen für diesen Zweck abzurufen.

      Eindeutige Einschränkung mit der Pseudospalte ROWID erstellen

      In Oracle-Datenbanken wird die Pseudospalte ROWID verwendet, um die Position jeder Zeile in einer Tabelle zu speichern. Wenn Sie Oracle-Tabellen ohne Primärschlüssel migrieren möchten, können Sie der Ziel-PostgreSQL-Datenbank eine ROWID-Spalte hinzufügen. Database Migration Service füllt die Spalte mit den entsprechenden numerischen Werten aus der Quell-Oracle-Pseudospalte ROWID.

      Führen Sie folgenden Befehl aus, um die Spalte hinzuzufügen und als Primärschlüssel festzulegen:

      ALTER TABLE TABLE_NAME ADD COLUMN rowid numeric(33,0) NOT NULL;
      CREATE SEQUENCE TABLE_NAME_rowid_seq INCREMENT BY -1 START WITH -1 OWNED BY TABLE_NAME.rowid;
      ALTER TABLE TABLE_NAME ALTER COLUMN rowid SET DEFAULT nextval('TABLE_NAME_rowid_seq');
      ALTER TABLE TABLE_NAME ADD CONSTRAINT CONSTRAINT_DISPLAY_NAME PRIMARY KEY (rowid);

Nächste Schritte

Nachdem Sie den Konvertierungsworkflow mit dem Legacy-Arbeitsbereich ausgeführt haben, können Sie mit den standardmäßigen Migrationsverfahren fortfahren. Weitere Informationen finden Sie unter Migrationsjob erstellen.