Utilizzare gli spazi di lavoro di conversione

Questo documento spiega come utilizzare diverse aree di lavoro di conversione in Database Migration Service.

Utilizzare gli spazi di lavoro di conversione con l'editor integrato

Un'area di lavoro di conversione consente di trasformare lo schema e gli oggetti del database di origine in un formato compatibile per il tuo database di destinazione. L'area di lavoro ti consente di esaminare, modificare e applicare la struttura generale delle conversioni, ma non altera i dati nel database di origine.

Converti lo schema e il codice di origine

Quando configuri uno spazio di lavoro, Database Migration Service esegue il recupero iniziale dello schema e degli oggetti di codice del database di origine, dopodiché selezioni quelli da convertire (puoi aggiungere altri oggetti in un secondo momento). Questi oggetti ora vengono visualizzati nella scheda Oracle. Il riquadro Bozza Cloud SQL per PostgreSQL mostra lo schema e il codice PostgreSQL risultanti generati da Database Migration Service.

A questo punto, Database Migration Service mostra gli oggetti post-conversione previsti, non gli oggetti effettivi nell'istanza di destinazione.

  1. Nella console Google Cloud , vai a Spazi di lavoro di conversione.

    Vai ad Aree di lavoro della conversione

  2. Nell'elenco degli spazi di lavoro della conversione disponibili, seleziona quello con cui vuoi lavorare.

    Viene visualizzato l'editor dello spazio di lavoro della conversione.

  3. (Facoltativo) Carica un file di configurazione Ora2Pg per fornire mappature aggiuntive per l'SQL generato:

    1. Fai clic su Modifica configurazione > Personalizza la mappatura con un file di configurazione.

    2. Nella casella File di configurazione Ora2Pg, fai clic su Sfoglia e utilizza il selettore file di sistema per selezionare il file di configurazione.

    3. Fai clic su Aggiungi file > Genera.

  4. (Facoltativo) Se hai già uno schema e un codice convertiti, ma vuoi aggiustare manualmente il codice SQL generato prima di eseguire di nuovo la conversione, svolgi i seguenti passaggi:

    1. Nel riquadro Oracle, seleziona l'oggetto per cui vuoi modificare il codice SQL generato.

    2. Vai alla scheda SQL ed esamina le istruzioni.

    3. Modifica gli script in base alle esigenze del tuo scenario e fai clic su Salva.

  5. Al termine di tutte le modifiche, fai clic su Converti origine.

  6. Nella finestra di dialogo di conferma, fai clic su Converti.

Rimuovi gli oggetti dallo schema di origine

Rimuovi gli oggetti dallo schema di origine per escluderli dalla conversione. Se necessario, puoi aggiungere gli oggetti rimossi in un secondo momento.

  1. Nella console Google Cloud , vai a Spazi di lavoro di conversione.

    Vai ad Aree di lavoro della conversione

  2. Nell'elenco degli spazi di lavoro della conversione disponibili, seleziona quello con cui vuoi lavorare.

    Viene visualizzato l'editor dello spazio di lavoro della conversione.

  3. Nella scheda Oracle, accanto all'oggetto da rimuovere, seleziona Altro > Rimuovi.

  4. Nella finestra di dialogo di conferma Rimuovi oggetto, fai clic su Rimuovi.

  5. Esegui di nuovo la conversione dell'origine in modo che rifletta gli aggiornamenti nella scheda Bozza Cloud SQL per PostgreSQL.

Aggiungere oggetti allo schema di origine

Puoi aggiungere oggetti rimossi in precedenza dallo schema di origine per aggiungerli alla conversione.

  1. Nella console Google Cloud , vai a Spazi di lavoro di conversione.

    Vai ad Aree di lavoro della conversione

  2. Nell'elenco degli spazi di lavoro della conversione disponibili, seleziona quello con cui vuoi lavorare.

    Viene visualizzato l'editor dello spazio di lavoro della conversione.

  3. Nella scheda Oracle, fai clic su Aggiungi oggetti.

  4. Nella sezione Aggiungi oggetti, utilizza l'elenco di origine per selezionare tutte le entità da aggiungere allo schema di origine.

    Puoi utilizzare il campo Filtro per ridurre il numero di oggetti visualizzati. Consulta Filtrare gli oggetti nella visualizzazione dello schema di origine.

  5. Fai clic su Aggiungi oggetti.

  6. Esegui di nuovo la conversione dell'origine in modo che rifletta gli aggiornamenti nella scheda Bozza di Cloud SQL per PostgreSQL.

Esegui il pull dello snapshot dello schema e del codice di origine

Puoi estrarre lo schema e il codice dal database di origine nell'area di lavoro di conversione in qualsiasi momento. L'estrazione dell'origine ti offre l'opportunità di aggiungere nuovi oggetti o di aggiornare quelli esistenti nella conversione.

L'estrazione dello schema e del codice del database aggiornato non reimposta le eventuali mappature aggiuntive esistenti nello spazio di lavoro di conversione dai file di configurazione Ora2Pg, a meno che non scelga esplicitamente di rimuovere le mappature personalizzate.

Inoltre, il recupero del codice sorgente non sostituisce le modifiche SQL agli oggetti del codice. Puoi reimpostare queste modifiche direttamente a livello di oggetto.

  1. Nella console Google Cloud , vai a Spazi di lavoro di conversione.

    Vai ad Aree di lavoro della conversione

  2. Fai clic su Modifica configurazione > Esegui di nuovo il pull dello snapshot dello schema di origine.

  3. Nella finestra di dialogo:

    1. (Facoltativo) Seleziona Reimposta mapping personalizzato per rimuovere le mappature personalizzate e le modifiche DDL esistenti.
    2. Fai clic su Esegui il pull dello snapshot dello schema.

    Database Migration Service estrae il nuovo snapshot dal database di origine. Al termine dell'operazione, converti di nuovo la sorgente.

Esamina i risultati della conversione

Dopo aver eseguito la conversione dell'origine, puoi esaminare i risultati della conversione e i possibili problemi per ogni singolo oggetto convertito nell'area editor dell'area di lavoro. Puoi anche utilizzare Google Cloud CLI per salvare tutti i risultati e i problemi in blocco in un file di testo.

Console

  1. Nella console Google Cloud , vai a Spazi di lavoro di conversione.

    Vai ad Aree di lavoro della conversione

  2. Fai clic sul nome visualizzato dello spazio di lavoro per le conversioni con cui vuoi lavorare.

    Viene visualizzato l'editor dello spazio di lavoro della conversione.

  3. Seleziona la scheda Oracle e individua l'oggetto per cui vuoi esaminare i risultati di conversione nella tabella della visualizzazione ad albero.

  4. Seleziona l'oggetto. Utilizza le schede SQL e Problemi di conversione per esaminare la conversione.

gcloud

Con Google Cloud CLI puoi stampare tutti i risultati o i problemi di conversione sul terminale. Reindirizza l'output a un file per rivedere più facilmente gli oggetti collettivamente.

Visualizzare un elenco di risultati di conversione

gcloud CLI mostra i risultati della conversione nel terminale sotto forma di istruzioni Data Definition Language (DDL). Per salvare i risultati della conversione in un file, esegui il seguente comando:

  gcloud database-migration conversion-workspaces describe-ddls \
  CONVERSION_WORKSPACE_ID \
  --region=REGION_ID \
  > OUTPUT_FILE_PATH

Sostituisci:

  • CONVERSION_WORKSPACE_ID con l'identificatore dell'area di lavoro della conversione. Per informazioni su come recuperare gli identificatori dello spazio di lavoro della conversione, consulta Visualizzare i dettagli dello spazio di lavoro della conversione.
  • REGION_ID con il nome della regione in cui si trova lo spazio di lavoro della conversione.
  • OUTPUT_FILE_PATH con il percorso del file di testo in cui vuoi salvare l'output.

    Esempio:

    gcloud database-migration conversion-workspaces describe-issues \
    my-conversion-workspace \
    --region=us-central1 \
    > ./my-conversion-issues.txt
    

    Risultato:

    I risultati della conversione dello schema vengono salvati in un formato di testo in cui la prima riga è DDLs e le righe successive sono occupate da istruzioni SQL:

    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;
    

Visualizzare un elenco di problemi di conversione

Per salvare i problemi di conversione in un file, esegui il seguente comando:

  gcloud database-migration conversion-workspaces describe-issues \
  CONVERSION_WORKSPACE_ID \
  --region=REGION_ID \
  > OUTPUT_FILE_PATH

Sostituisci:

  • CONVERSION_WORKSPACE_ID con l'identificatore dell'area di lavoro della conversione. Per informazioni su come recuperare gli identificatori dello spazio di lavoro della conversione, consulta Visualizzare i dettagli dello spazio di lavoro della conversione.
  • REGION_ID con il nome della regione in cui si trova lo spazio di lavoro della conversione.
  • OUTPUT_FILE_PATH con il percorso del file di testo in cui vuoi salvare l'output.

Esempio:

  gcloud database-migration conversion-workspaces describe-issues \
  my-conversion-workspace \
  --region=us-central1 \
  > ./my-conversion-issues.txt

Risultato:

Tutti i problemi di conversione contenuti nello spazio di lavoro vengono salvati in un formato di testo in cui la prima riga contiene le intestazioni delle colonne e ogni riga successiva contiene un problema di conversione distinto:

  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.

Risolvi i problemi di conversione

Database Migration Service potrebbe non essere in grado di convertire automaticamente l'intera origine.

Per la maggior parte degli oggetti Oracle, puoi utilizzare l'editor di conversione direttamente in Database Migration Service per modificare il codice SQL generato. Per altri, potresti dover modificare l'oggetto direttamente nel database di origine e poi eseguire nuovamente il pull dello snapshot di origine.

Per un elenco completo degli oggetti che Database Migration Service supporta per la modifica direttamente nell'area di lavoro di conversione, consulta Oggetti Oracle modificabili.

Per risolvere i problemi di conversione riscontrati con gli oggetti che supportano l'editing in tempo reale:

  1. Esamina i risultati della conversione e identifica i possibili problemi.

    Puoi utilizzare la console Google Cloud per esaminare singoli oggetti o gcloud CLI per esaminare tutti gli oggetti collettivamente.

  2. Nella scheda Bozza di Cloud SQL per PostgreSQL, utilizza l'editor SQL per aggiornare il codice generato.

  3. Esegui il test dell'applicazione per verificare che Database Migration Service possa applicare correttamente il codice al database di destinazione.

Per risolvere i problemi di conversione riscontrati con gli oggetti non supportati nell'editor dell'area di lavoro, esegui una delle seguenti operazioni:

Testa l'applicazione nella destinazione

Prima di applicare lo schema al database di destinazione, puoi eseguire un'applicazione di test che non influisce sull'istanza Cloud SQL di destinazione. Il test dell'applicazione dello schema può aiutarti a verificare in modo proattivo la presenza di possibili problemi.

  1. Nella console Google Cloud , vai a Spazi di lavoro di conversione.

    Vai ad Aree di lavoro della conversione

  2. Fai clic sul nome visualizzato dello spazio di lavoro per le conversioni con cui vuoi lavorare.

    Viene visualizzato l'editor dello spazio di lavoro della conversione.

  3. Fai clic su Applica alla destinazione > Esegui test (opzione consigliata).

    Viene visualizzata la procedura guidata per l'applicazione dello schema al database di destinazione.

  4. Nella sezione Definisci destinazione, seleziona il profilo di connessione che fa riferimento al database di destinazione.

  5. Fai clic su Definisci e continua.

  6. Nella sezione Seleziona gli oggetti ed esegui il test dell'applicazione, seleziona gli schemi delle entità di database che vuoi testare per il database di destinazione.

    Puoi utilizzare il campo Filtro per ridurre il numero di oggetti visualizzati. Consulta Filtrare gli oggetti nella visualizzazione dello schema di origine.

  7. Fai clic su Testa applicazione.

    Puoi esaminare lo stato della richiesta nella scheda Bozza Cloud SQL per PostgreSQL.

Applica lo schema alla destinazione

Quando lo schema che vuoi utilizzare nel database di destinazione viene convertito in base ai tuoi requisiti e mapping, puoi applicare i risultati al database di destinazione.

  1. Nella console Google Cloud , vai a Spazi di lavoro di conversione.

    Vai ad Aree di lavoro della conversione

  2. Fai clic sul nome visualizzato dello spazio di lavoro per le conversioni con cui vuoi lavorare.

    Viene visualizzato l'editor dello spazio di lavoro della conversione.

  3. Fai clic su Applica alla destinazione > Applica.

    Viene visualizzata la procedura guidata per l'applicazione dello schema al database di destinazione.

  4. Nella sezione Definisci destinazione, seleziona il profilo di connessione che fa riferimento al database di destinazione.

  5. Fai clic su Definisci e continua.

  6. Nella sezione Esamina gli oggetti e applica la conversione alla destinazione, seleziona gli schemi delle entità di database che vuoi creare nel database di destinazione.

    Puoi utilizzare il campo Filtro per ridurre il numero di oggetti visualizzati. Consulta Filtrare gli oggetti nella visualizzazione dello schema di origine.

  7. Fai clic su Applica alla destinazione.

    Puoi esaminare lo stato della richiesta nella scheda Bozza Cloud SQL per PostgreSQL.

Creare un job di migrazione dall'editor di conversione

Puoi creare un job di migrazione che utilizza lo spazio di lavoro delle conversioni direttamente dall'interfaccia di Editor delle conversioni.

  1. Nella console Google Cloud , vai a Spazi di lavoro di conversione.

    Vai ad Aree di lavoro della conversione

  2. Fai clic sul nome visualizzato dello spazio di lavoro per le conversioni con cui vuoi lavorare.

    Viene visualizzato l'editor dello spazio di lavoro della conversione.

  3. Fai clic su Crea job di migrazione.

  4. Procedi con i passaggi standard del job di migrazione, come descritto in Creare un job di migrazione.

Filtrare gli oggetti nella visualizzazione dello schema di origine

Gli schemi di database spesso contengono migliaia di oggetti, il che rende difficile eseguire la conversione in parti. Quando aggiungi oggetti dall'istantanea dello schema alla visualizzazione dello schema di origine, puoi utilizzare i filtri per limitare il numero di oggetti visualizzati. I filtri ti consentono di aggiungere oggetti in modo più granulare e di concentrarti sulla conversione di un sottoinsieme selezionato dello schema.

Utilizza la visualizzazione filtrata quando aggiungi oggetti alla visualizzazione dello schema di origine:

  1. Nel campo Filtro, utilizza uno dei seguenti metodi di filtro:

    • Nell'elenco Proprietà, seleziona una delle seguenti opzioni suggerite automaticamente:

      • Nome oggetto per filtrare gli oggetti in base a un nome, ad esempio ADMIN.
      • Tipo di oggetto per filtrare gli oggetti in base a diversi tipi, ad esempio Funzione o Tabella.
      • Stato conversione per filtrare gli oggetti in base allo stato di conversione, ad esempio Azione richiesta o Nessun problema.

      Puoi combinare le proprietà filtro con gli operatori logici.

    • Inserisci la query. Ad esempio: type=table.

      Per ulteriori informazioni sulla sintassi di filtro, consulta la sezione Sintassi di filtro supportata.

  2. Seleziona gli oggetti da aggiungere alla visualizzazione dello schema di origine.

Sintassi di filtro supportata

Puoi filtrare gli oggetti per nome con una ricerca di testo libero di base o utilizzare una proprietà type dedicata. Entrambi gli approcci supportano la specifica formale dell'API Google per i filtri, il che significa che puoi utilizzare letterali con caratteri jolly, nonché operatori di confronto e logici.

Utilizza il testo libero per filtrare gli oggetti in base al nome. Questo approccio è sensibile alle maiuscole e supporta i caratteri jolly.

Esempio:

La query *JOB* utilizza i caratteri jolly per cercare le entità che contengono la sottostringa JOB. La visualizzazione filtrata restituisce alcune tabelle e una stored procedure:

Screenshot di risultati di esempio per filtrare gli oggetti per nome.
Filtra utilizzando la proprietà type

Puoi filtrare gli oggetti in base a tutti i tipi standard supportati in Database Migration Service.

La proprietà type supporta i seguenti valori letterali con gli operatori di uguaglianza (=) e di disuguaglianza (!=): database, schema, table, column, index, sequence, stored_procedure, function, view, synonym, materialized_view, udt, constraint, database_package, trigger e event_trigger.

Esempio:

Il filtro type=table restituisce solo le tabelle presenti nel tuo schema:

Screenshot di risultati di esempio per il filtro degli oggetti in base alla proprietà type.
Combinare le condizioni di filtro

Puoi specificare più condizioni combinandole con operatori logici.

Ad esempio, per cercare esclusivamente tabelle i cui nomi contengono le sottostringhe JOB o EMPLOYEE, utilizza questa query:

  type=table AND (*JOB* OR *EMPLOYEE*)

Di conseguenza, il filtro mostra tutte le tabelle corrispondenti:

Screenshot di risultati di esempio per filtrare gli oggetti in base a una combinazione di proprietà di tipo e nome.

Utilizzare gli spazi di lavoro di conversione legacy

Le aree di lavoro di conversione legacy sono aree di lavoro di sola lettura che servono ad accoppiare i file di configurazione Ora2Pg con un profilo di connessione.

Converti lo schema di origine

Per le aree di lavoro legacy, puoi convertire lo schema utilizzando lo strumento di migrazione Ora2Pg direttamente nel database di origine. La conversione dello schema viene gestita al di fuori di Database Migration Service. Consulta Prepararsi alla conversione dello schema.

Database Migration Service esegue la conversione dello schema di origine quando crei l'area di lavoro di conversione precedente. Se vuoi aggiornare le mappature, ricrea l'area di lavoro precedente con il file di configurazione aggiornato.

Applica alla destinazione

Dopo aver creato il file di configurazione Ora2Pg e l'area di lavoro, devi applicare autonomamente il codice generato direttamente al database di destinazione. Se devi modificare la conversione, modifica il file di configurazione Ora2Pg e ricrea l'area di lavoro legacy con nuove impostazioni.