Legacy-Konvertierungsarbeitsbereiche sind eine ältere, eingeschränktere Art von Konvertierungsarbeitsbereichen. In Legacy-Arbeitsbereichen für Conversions werden keine Gemini-basierten Conversion-Funktionen oder der interaktive SQL-Editor unterstützt. Sie können sie nur verwenden, um Ihr Quellschema mit dem Ora2Pg-Migrationstool zu konvertieren.
Der Database Migration Service unterstützt Ora2Pg-Versionen21.1
bis 23.2
.
Wir raten davon ab, die Legacy-Version von Conversion-Arbeitsbereichen für Ihre Migrationen zu verwenden, da sie mehrere andere Einschränkungen für den Conversion-Workflow mit sich bringt:
Interaktiver Konvertierungsarbeitsbereich | Legacy-Konvertierungsarbeitsbereich |
---|---|
Die Konvertierung von Schema- und Codeobjekten erfolgt in Database Migration Service. | Sie führen Schema- und Codeobjektkonvertierungen außerhalb von Database Migration Service mit dem Ora2Pg-Migrationstool durch. |
Sie können konvertierte Quellen direkt in Database Migration Service auf die Zieldatenbank anwenden. | Sie sind dafür verantwortlich, das konvertierte Schema auf die Zieldatenbank in Ihrer Cloud SQL for PostgreSQL-Zielinstanz anzuwenden. |
Sie können Ihr Schema und Ihren Code direkt in Database Migration Service testen, um sicherzustellen, dass sie erfolgreich auf Ihre Zielinstanz angewendet werden können. | Sie können das Schema und den Codeentwurf nicht testen, ohne die Zielinstanz zu beeinträchtigen. |
Fügt automatisch fehlende rowid -Spalten für Tabellen ohne Primärschlüssel und eindeutige Einschränkungen hinzu. |
Sie müssen den Zieltabellen fehlende Primärschlüssel hinzufügen, nachdem Sie das Schema angewendet haben. |
Legacy-Konvertierungsarbeitsbereiche verwenden
Wenn in Ihrem Szenario die Verwendung von Legacy-Conversion-Arbeitsbereichen erforderlich ist, passen Sie den Migrationsprozess mit den folgenden Aktionen an:
Ora2Pg-Konfigurationsdatei schreiben
Informationen zur Verwendung des Ora2Pg-Konvertierungstools finden Sie in der Ora2Pg-Dokumentation. Maximieren Sie die folgenden Abschnitte, um die vollständige Liste der in Database Migration Service unterstützten Direktiven aufzurufen.
Im Database Migration Service unterstützte Ora2Pg-Konfiguration
Database Migration Service unterstützt die folgenden Konfigurationselemente 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. Daher müssen Sie die folgenden Informationen nicht in Ihrer Or2Pg-Konfigurationsdatei definieren:
ORACLE_DSN
ORACLE_HOME
ORACLE_PWD
ORACLE_USER
PG_DSN
PG_PWD
PG_USER
Außerdem verwendet Database Migration Service die Konfigurationsanweisung
WHERE
nicht, um die zu migrierenden Datensätze zu begrenzen.- Erstellen Sie einen Legacy-Konvertierungsarbeitsbereich und laden Sie die Ora2Pg-Datei hoch, um Ihr Schema zu konvertieren.
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.
Tabellen ohne Primärschlüssel migrieren
Database Migration Service migriert nur Tabellen mit Primärschlüsseln. Wenn Ihre Quelldatenbank Tabellen ohne Primärschlüssel enthält, 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. Weitere Informationen finden Sie im folgenden Abschnitt.
Primärschlüsseleinschränkungen in der Zieldatenbank hinzufügen
So migrieren Sie Oracle-Tabellen ohne Primärschlüssel:
- Stellen Sie mit einem SQL-Client eine Verbindung zur Cloud SQL-Zielinstanz her. Sie können die folgenden Methoden verwenden:
-
psql
-Client. Mit dieser Methode können Sie eine Verbindung zur privaten IP-Adresse Ihrer Instanz herstellen. Dazu müssen Sie aber möglicherweise eine Compute Engine-VM erstellen. -
gcloud sql connect
-Befehl. Dieser Befehl funktioniert nur für Cloud SQL-Instanzen, für die eine öffentliche IP-Adresse aktiviert ist.
-
- 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 aus vorhandenen Spalten erstellen
Ihre Tabelle hat möglicherweise bereits einen logischen Primärschlüssel, der auf einer Spalte oder einer Kombination von Spalten basiert. Beispielsweise kann es Spalten mit einer eindeutigen Einschränkung oder einem konfigurierten 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 maximale Länge des Primärschlüssels, die von Ihrer PostgreSQL-Instanz zulässig ist, 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
erstellenIn Oracle-Datenbanken wird die Pseudospalte
ROWID
verwendet, um den Speicherort jeder Zeile in einer Tabelle zu speichern. Wenn Sie Oracle-Tabellen ohne Primärschlüssel migrieren möchten, können Sie in der PostgreSQL-Zieldatenbank eineROWID
-Spalte hinzufügen. Database Migration Service füllt die Spalte mit den entsprechenden numerischen Werten aus der Oracle-PseudospalteROWID
der Quelle.Führen Sie den 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);
- Stellen Sie mit einem SQL-Client eine Verbindung zur Cloud SQL-Zielinstanz her. Sie können die folgenden Methoden verwenden:
Nächste Schritte
Nachdem Sie den Konvertierungsworkflow mit dem Legacy-Arbeitsbereich ausgeführt haben, können Sie mit den Standardmigrationsverfahren fortfahren. Weitere Informationen finden Sie unter Migrationsjob erstellen.