Informazioni sugli spazi di lavoro di conversione legacy

I workspace di conversione legacy sono un tipo di workspace di conversione precedente e più limitato. I workspace di conversione legacy non supportano le funzionalità di conversione ottimizzate da Gemini o l'editor SQL interattivo. Puoi utilizzarli solo per convertire lo schema di origine con lo strumento di migrazione Ora2Pg.

Non consigliamo di utilizzare il tipo legacy di workspace di conversione per le migrazioni, in quanto presenta diverse altre limitazioni al flusso di lavoro di conversione:

Workspace di conversione interattivoWorkspace di conversione legacy
La conversione di schemi e oggetti di codice avviene in Database Migration Service. Esegui le conversioni di schemi e oggetti di codice al di fuori Database Migration Service utilizzando lo strumento di migrazione Ora2Pg.
Puoi applicare le origini convertite al database di destinazione direttamente in Database Migration Service. Hai la responsabilità di applicare lo schema convertito al database di destinazione nell'istanza di destinazione Cloud SQL per PostgreSQL.
Puoi testare la bozza di schema e codice direttamente in Database Migration Service per assicurarti che possano essere applicati correttamente all'istanza di destinazione. Non puoi testare la bozza di schema e codice senza influire sull'istanza di destinazione.
Aggiunge automaticamente le colonne rowid mancanti per le tabelle che non hanno chiavi primarie e vincoli univoci. Devi aggiungere le chiavi primarie mancanti alle tabelle di destinazione dopo aver applicato lo schema.
Tabella 1: confronto delle funzionalità del workspace di conversione

Utilizzare i workspace di conversione legacy

Se il tuo scenario richiede l'utilizzo di workspace di conversione legacy, modifica il processo di migrazione con le seguenti azioni:

  1. Scrivi un file di configurazione Ora2Pg.

    Consulta la documentazione di Ora2Pg per indicazioni su come utilizzare lo strumento di conversione Ora2Pg. Espandi le seguenti sezioni per l'elenco completo delle direttive supportate in Database Migration Service.

    Configurazione Ora2Pg supportata in Database Migration Service

    Database Migration Service supporta i seguenti elementi di configurazione per i file Ora2Pg:

    • 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 utilizza i profili di connessione per definire i dettagli di connettività, quindi non devi definire le seguenti informazioni nel file di configurazione Or2Pg:

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

    Inoltre, Database Migration Service non utilizza la direttiva di configurazione WHERE per limitare i record di cui eseguire la migrazione.

  2. Crea un workspace di conversione legacy e carica il file Ora2Pg per convertire lo schema.
  3. Applica manualmente lo schema convertito al database di destinazione.

    Dopo aver creato la configurazione Ora2Pg e il workspace, devi applicare il codice generato direttamente sul database di destinazione.

  4. Esegui la migrazione delle tabelle senza chiavi primarie.

    Database Migration Service esegue la migrazione solo delle tabelle con chiavi primarie. Se il database di origine include tabelle senza chiavi primarie, devi creare manualmente chiavi primarie o vincoli univoci nelle tabelle convertite nel database di destinazione dopo aver applicato lo schema convertito. Espandi la sezione seguente per maggiori dettagli.

    Aggiungere vincoli di chiave primaria nel database di destinazione

    Per eseguire la migrazione delle tabelle Oracle senza chiavi primarie:

    1. Connettiti all'istanza Cloud SQL di destinazione con un client SQL. Puoi utilizzare i seguenti metodi:
      • Clientpsql. Puoi utilizzare questo metodo per connetterti all'IP privato dell'istanza, ma potrebbe essere necessario creare una macchina virtuale Compute Engine.
      • gcloud sql connect comando. Questo comando funziona solo per le istanze Cloud SQL con un indirizzo IP pubblico abilitato.
    2. Crea i vincoli di chiave primaria mancanti per le tabelle. Per saperne di più sulle chiavi primarie, consulta Chiavi primarie nella documentazione di PostgreSQL.

      Puoi anche espandere le seguenti sezioni per visualizzare i comandi SQL di esempio:

      Creare chiavi primarie utilizzando le colonne esistenti

      La tabella potrebbe già avere una chiave primaria logica basata su una colonna o una combinazione di colonne. Ad esempio, potrebbero essere colonne con un vincolo o un indice univoco. Utilizza queste colonne per generare una nuova chiave primaria per le tabelle nel database di origine. Ad esempio:

      ALTER TABLE TABLE_NAME
      ADD PRIMARY KEY (COLUMN_NAME);

      Creare una chiave primaria utilizzando tutte le colonne

      Se non hai un vincolo preesistente che potrebbe fungere da chiave primaria, crea chiavi primarie utilizzando tutte le colonne della tabella. Assicurati di non superare la lunghezza massima della chiave primaria consentita dall'istanza PostgreSQL. Ad esempio:

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

      Quando crei una chiave primaria composta come questa, devi elencare esplicitamente tutti i nomi delle colonne che vuoi utilizzare. Non è possibile utilizzare un'istruzione per recuperare tutti i nomi delle colonne a questo scopo.

      Creare un vincolo univoco con la pseudocolonna ROWID

      I database Oracle utilizzano la ROWID pseudocolonna per memorizzare la posizione di ogni riga in una tabella. Per eseguire la migrazione delle tabelle Oracle senza chiavi primarie, puoi aggiungere una ROWID colonna nel database PostgreSQL di destinazione. Database Migration Service popola la colonna con i valori numerici corrispondenti della pseudocolonna ROWID Oracle di origine.

      Per aggiungere la colonna e impostarla come chiave primaria, esegui il comando seguente:

      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);

Passaggi successivi

Dopo aver eseguito il flusso di lavoro di conversione con il workspace legacy, puoi procedere con le procedure di migrazione standard. Consulta Creare un job di migrazione.