Gli spazi di lavoro della conversione legacy sono un tipo di spazi di lavoro della conversione precedente e più limitato. Le aree di lavoro di conversione precedenti non supportano le funzionalità di conversione migliorate di Gemini o l'editor SQL interattivo. Puoi utilizzarli solo per convertire lo schema di origine con lo strumento di migrazione Ora2Pg.
Sconsigliamo di utilizzare il tipo precedente di aree di lavoro di conversione per le migrazioni, in quanto presentano diverse altre limitazioni al flusso di lavoro di conversione:
Workspace di conversione interattiva | Workspace di conversione legacy |
---|---|
La conversione degli oggetti di schema e codice avviene in Database Migration Service. | Esegui le conversioni di oggetti di schema e codice al di fuori di Database Migration Service utilizzando lo strumento di migrazione Ora2Pg. |
Puoi applicare le origini convertite al database di destinazione direttamente in Database Migration Service. | Sei responsabile dell'applicazione dello schema convertito al database di destinazione nell'istanza di destinazione Cloud SQL per PostgreSQL. |
Puoi testare lo schema e il codice di bozza direttamente in Database Migration Service per assicurarti che possano essere applicati correttamente all'istanza di destinazione. | Non puoi testare lo schema e il codice della bozza 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. |
Utilizzare gli spazi di lavoro di conversione legacy
Se il tuo scenario richiede l'utilizzo di aree di lavoro di conversione precedenti, modifica la procedura di migrazione con le seguenti azioni:
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à, pertanto non è necessario 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 da migrare.- Crea un'area di lavoro di conversione legacy e carica il file Ora2Pg per convertire lo schema.
Applica manualmente lo schema convertito al database di destinazione.
Dopo aver creato la configurazione Ora2Pg e lo spazio di lavoro, devi applicare autonomamente il codice generato direttamente al database di destinazione.
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 ulteriori dettagli.
Aggiungi le limitazioni della chiave primaria nel database di destinazione
Per eseguire la migrazione delle tabelle Oracle senza chiavi primarie:
- Connettiti all'istanza Cloud SQL di destinazione con un client SQL. Puoi
utilizzare i seguenti metodi:
-
psql
client. Puoi utilizzare questo metodo per connetterti all'IP privato della tua istanza, ma potrebbe essere necessario creare una macchina virtuale Compute Engine. -
Comando
gcloud sql connect
. Questo comando funziona solo per le istanze Cloud SQL in cui è attivato un indirizzo IP pubblico.
-
- Crea i vincoli di chiave primaria mancanti per le tabelle. Per ulteriori informazioni sulle chiavi primarie, consulta
chiavi primarie nella documentazione di PostgreSQL.
Puoi anche espandere le seguenti sezioni per visualizzare comandi SQL di esempio:
Creare chiavi principali utilizzando colonne esistenti
La tabella potrebbe già avere una chiave primaria logica basata su una colonna o una combinazione di colonne. Ad esempio, potrebbero essere presenti colonne con un vincolo o un indice univoco configurato. 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);
Crea una chiave primaria utilizzando tutte le colonne
Se non hai un vincolo preesistente che possa fungere da chiave primaria, crea le 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 di colonna che vuoi utilizzare. Non è possibile utilizzare un'istruzione per recuperare tutti i nomi di colonna a questo scopo.
Crea un vincolo univoco con la pseudocolonna
ROWID
I database Oracle utilizzano la pseudocolonna
ROWID
per memorizzare la posizione di ogni riga in una tabella. Per eseguire la migrazione delle tabelle Oracle che non hanno chiavi primarie, puoi aggiungere una colonnaROWID
nel database PostgreSQL di destinazione. Database Migration Service compila la colonna con i valori numerici corrispondenti della pseudocolonnaROWID
di Oracle di origine.Per aggiungere la colonna e impostarla come chiave primaria, esegui il seguente comando:
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);
- Connettiti all'istanza Cloud SQL di destinazione con un client SQL. Puoi
utilizzare i seguenti metodi:
Passaggi successivi
Dopo aver eseguito il flusso di lavoro di conversione con lo spazio di lavoro precedente, puoi procedere con le procedure di migrazione standard. Consulta Creare un job di migrazione.