Ações do espaço de trabalho de conversão

Com os espaços de trabalho de conversão, você pode corrigir problemas de conversão, modificar seus objetos com o editor interativo e aplicar o esquema convertido ao banco de dados de destino. Esta página oferece uma visão geral de todas as ações que você pode realizar com os espaços de trabalho de conversão.

Remover objetos do esquema de origem

Remova objetos do esquema de origem para excluí-los da conversão. Se necessário, você pode adicionar objetos removidos mais tarde.

  1. No console do Google Cloud, acesse Espaços de trabalho de conversão e selecione seu espaço de trabalho.

    Acesse os espaços de trabalho de conversão

  2. Na guia Oracle, ao lado do objeto que você quer remover, selecione Mais > Remover.
  3. Na caixa de diálogo de confirmação Remover objeto, clique em Remover.
  4. Atualize o esquema convertido. Clique em Converter origem. O Database Migration Service agora analisa suas mudanças e gera o esquema atualizado do PostgreSQL.

    É possível inspecionar o esquema convertido na guia Rascunho do AlloyDB para PostgreSQL.

Adicionar objetos ao esquema de origem

É possível adicionar objetos removidos anteriormente do esquema de origem para incluí-los na conversão.

  1. No console do Google Cloud, acesse Espaços de trabalho de conversão e selecione seu espaço de trabalho.

    Acesse os espaços de trabalho de conversão

  2. Na guia Oracle, clique em Adicionar objetos.
  3. Na seção Adicionar objetos, use a lista de origem para selecionar todas as entidades que você quer adicionar ao esquema de origem.

    Use o botão Filtrar objetos para reduzir o número de objetos mostrados. Consulte Filtrar objetos na visualização do esquema de origem

  4. Clique em Adicionar objetos.
  5. Atualize o esquema convertido. Clique em Converter origem. O Database Migration Service agora analisa suas mudanças e gera o esquema atualizado do PostgreSQL.

    É possível inspecionar o esquema convertido na guia Rascunho do AlloyDB para PostgreSQL.

Extrair o esquema de origem e o snapshot do código

É possível extrair o esquema e o código do banco de dados de origem para o espaço de trabalho de conversão a qualquer momento. Com a extração da fonte, você pode adicionar novos objetos ou atualizar os existentes na conversão.

A extração do esquema e do código atualizado do banco de dados não redefine os mapeamentos personalizados que existem no espaço de trabalho de conversão, a menos que você escolha explicitamente remover os mapeamentos personalizados.

Além disso, a extração da origem não substitui as mudanças do SQL nos objetos de código. É possível redefinir essas mudanças diretamente no nível do objeto.

  1. No console do Google Cloud, acesse Espaços de trabalho de conversão e selecione seu espaço de trabalho.

    Acesse os espaços de trabalho de conversão

  2. Clique em Editar configuração > Extrair snapshot do esquema de origem outra vez.
  3. Na caixa de diálogo:
    1. (Opcional) Selecione Redefinir mapeamento personalizado para remover os mapeamentos personalizados e as modificações DDL.
    2. Clique em Extrair snapshot do esquema.

      O Database Migration Service extrai o novo snapshot do banco de dados de origem.

  4. Atualize o esquema convertido. Clique em Converter origem. O Database Migration Service agora analisa suas mudanças e gera o esquema atualizado do PostgreSQL.

    É possível inspecionar o esquema convertido na guia Rascunho do AlloyDB para PostgreSQL.

Usar mapeamentos de conversão personalizadas

É possível personalizar a lógica de conversão com um arquivo de mapeamento de conversão. O arquivo de mapeamento de conversão é um arquivo de texto que contém instruções precisas (chamadas de diretivas de conversão) sobre como os objetos do Oracle precisam ser convertidos em objetos do PostgreSQL.

Gravar um arquivo de mapeamento personalizado

Para gravar seus arquivos de mapeamento personalizados:

  1. Consulte a lista de diretivas de conversão compatíveis.

  2. Use o exemplo de arquivo de configuração como referência.

  3. Escreva seus mapeamentos de conversão personalizados em um editor de texto e faça o upload deles para o espaço de trabalho de conversão.

Adicionar arquivos de mapeamento personalizados

Para adicionar um arquivo de mapeamento de conversão personalizada ao seu espaço de trabalho, faça o seguinte:

  1. No console do Google Cloud, acesse Espaços de trabalho de conversão e selecione seu espaço de trabalho.

    Acesse os espaços de trabalho de conversão

  2. Na página do editor de conversões, selecione Editar configuração > Personalizar mapeamento com um arquivo de configuração.
  3. Na caixa Configuration file, clique em Browse e use o seletor de arquivos do sistema para selecionar o arquivo de configuração.
  4. Clique em Adicionar arquivo > Criar mapeamento.

Remover arquivos de mapeamento personalizado

Para remover um arquivo de mapeamento de conversão personalizada do seu espaço de trabalho, faça o seguinte:

  1. No console do Google Cloud, acesse Espaços de trabalho de conversão e selecione seu espaço de trabalho.

    Acesse os espaços de trabalho de conversão

  2. Na página do editor de conversão, selecione Editar configuração > Remover mapeamento personalizado.

Analisar os resultados da conversão

Depois de realizar a conversão de origem, você pode analisar os resultados da conversão e possíveis problemas para cada objeto convertido na área do editor do espaço de trabalho. Também é possível usar a CLI do Google Cloud para salvar todos os resultados e problemas em massa em um arquivo de texto.

Console

  1. No console do Google Cloud, acesse Espaços de trabalho de conversão.

    Acessar os espaços de trabalho de conversão

  2. Clique no nome de exibição do espaço de trabalho da conversão com que você quer trabalhar.

    O editor do espaço de trabalho de conversão é aberto.

  3. Selecione a guia Oracle e localize o objeto para o qual você quer analisar os resultados de conversão na tabela de visualização em árvore.

  4. Selecione o objeto. Use as guias SQL e Problemas de conversão para analisar a conversão.

gcloud

Com a Google Cloud CLI, é possível imprimir todos os resultados ou problemas de conversão no terminal. Redirecione a saída para um arquivo para facilitar as análises de objetos em massa.

Conferir uma lista de resultados de conversão

A gcloud CLI mostra os resultados da conversão no terminal na forma de instruções de linguagem de definição de dados (DDL). Para salvar os resultados de conversão em um arquivo, execute o seguinte comando:

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

Substitua:

  • CONVERSION_WORKSPACE_ID com o identificador do espaço de trabalho de conversão. Para saber como recuperar identificadores de espaços de trabalho de conversão, consulte Conferir detalhes do espaço de trabalho de conversão.
  • REGION_ID pelo nome da região em que o espaço de trabalho da conversão está localizado.
  • OUTPUT_FILE_PATH pelo caminho para o arquivo de texto em que você quer salvar a saída.

    Exemplo:

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

    Resultado:

    Os resultados da conversão de esquema são salvos em um formato de texto em que a primeira linha diz DDLs e as linhas seguintes são ocupadas por instruções 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;
    

Conferir uma lista de problemas de conversão

Para salvar problemas de conversão em um arquivo, execute o seguinte comando:

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

Substitua:

  • CONVERSION_WORKSPACE_ID com o identificador do espaço de trabalho de conversão. Para saber como recuperar identificadores de espaços de trabalho de conversão, consulte Conferir detalhes do espaço de trabalho de conversão.
  • REGION_ID pelo nome da região em que o espaço de trabalho de conversão está localizado.
  • OUTPUT_FILE_PATH pelo caminho para o arquivo de texto em que você quer salvar a saída.

Exemplo:

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

Resultado:

Todos os problemas de conversão contidos no seu espaço de trabalho são salvos em um formato de texto, em que a primeira linha contém cabeçalhos de coluna e cada linha subsequente contém um problema de conversão separado:

  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.

Corrigir problemas de conversão

O Database Migration Service talvez não consiga converter toda a origem automaticamente. Para a maioria dos objetos do Oracle, é possível usar o editor de conversão diretamente no Database Migration Service para ajustar o SQL gerado. Para outros, talvez seja necessário mudar o objeto diretamente no banco de dados de origem e, em seguida, extrair o snapshot de origem novamente.

Para conferir uma lista completa de objetos que o Database Migration Service oferece suporte para edição diretamente no espaço de trabalho de conversão, consulte Objetos editáveis do Oracle.

Corrigir problemas com objetos compatíveis com o editor integrado

Para corrigir problemas encontrados com objetos que não têm suporte no editor do espaço de trabalho, faça o seguinte:

  1. Analise os resultados da conversão e identifique possíveis problemas.

    Use o console do Google Cloud para analisar objetos individuais ou a gcloud CLI para analisar todos os objetos em massa.

  2. Na guia AlloyDB para PostgreSQL, use o editor SQL para atualizar o código gerado.
  3. Teste seu esquema para verificar se o Database Migration Service pode aplicar corretamente o código ao banco de dados de destino.

Correção de problemas com objetos que não têm suporte do editor integrado

Para corrigir problemas encontrados com objetos que não têm suporte no editor do espaço de trabalho, faça o seguinte:

Atualizar objetos com falhas na sua origem
Para alguns problemas, talvez seja necessário mudar a instrução do Oracle diretamente no banco de dados de origem. Faça o seguinte:
  1. Atualize o esquema e o código diretamente no banco de dados de origem.
  2. Extraia as origens atualizadas para o Database Migration Service.
  3. Converta as fontes novamente e verifique se os problemas persistem.
Fornecer outros mapeamentos com um arquivo de mapeamento de conversão

Você pode usar um arquivo de mapeamento de conversão para fornecer definições precisas sobre como o Database Migration Service deve converter determinados objetos do PostgreSQL. Para usar um arquivo de mapeamento de conversão, faça o seguinte:

  1. Crie um arquivo de mapeamento de conversão.
  2. Adicione o arquivo de configuração ao espaço de trabalho.
Tente remover o objeto da guia "Origens"
O Database Migration Service permite converter . Para desbloquear o processo de conversão, você pode analisar melhor o objeto com falha mais tarde. Remova o objeto da guia "Origens".

Testar o esquema no destino

Antes de aplicar o esquema ao banco de dados de destino, você pode realizar uma execução de teste para verificar proativamente possíveis problemas. Para realizar o teste, o Database Migration Service cria um banco de dados temporário. A execução de teste não afeta o cluster de destino do AlloyDB para PostgreSQL.

  1. Verifique se o usuário de migração dedicado tem a permissão CREATEDB. Para mais informações, consulte Criar e configurar o cluster de destino do AlloyDB para PostgreSQL.

  2. No console do Google Cloud, acesse Espaços de trabalho de conversão.

    Acessar os espaços de trabalho de conversão

  3. Clique no nome de exibição do espaço de trabalho da conversão com que você quer trabalhar.

    O editor do espaço de trabalho de conversão é aberto.

  4. Clique em Aplicar à origem > Testar (recomendado).

    O assistente para aplicar o esquema ao banco de dados de destino aparece.

  5. Na seção Definir destino, selecione o perfil de conexão que aponta para o banco de dados de destino.

  6. Clique em Definir e continuar.

  7. Na seção Selecionar objetos e aplicativo de teste, selecione os esquemas das entidades do banco de dados que você quer testar no banco de dados de destino.

    Use o botão Filtrar objetos para reduzir o número de objetos mostrados. Consulte Filtrar objetos na visualização do esquema de origem.

  8. Clique em Testar aplicativo.

    É possível analisar o status do aplicativo na guia AlloyDB para PostgreSQL.

Aplicar o esquema ao destino

Quando o esquema que você quer usar no banco de dados de destino é convertido de acordo com seus requisitos e mapeamentos, é possível aplicar os resultados ao banco de dados de destino. Aplicar o esquema no destino não altera nenhum dado no banco de dados de origem.

  1. No console do Google Cloud, acesse Espaços de trabalho de conversão.

    Acessar os espaços de trabalho de conversão

  2. Clique no nome de exibição do espaço de trabalho da conversão com que você quer trabalhar.

    O editor do espaço de trabalho de conversão é aberto.

  3. Clique em Aplicar à página de destino > Aplicar.

    O assistente para aplicar o esquema ao banco de dados de destino aparece.

  4. Na seção Definir destino, selecione o perfil de conexão que aponta para o banco de dados de destino.

  5. Clique em Definir e continuar.

  6. Na seção Analisar objetos e aplicar a conversão ao destino, selecione os esquemas das entidades que você quer criar no banco de dados de destino.

    Use o botão Filtrar objetos para reduzir o número de objetos mostrados. Consulte Filtrar objetos na visualização do esquema de origem.

  7. Clique em Aplicar ao destino.

    É possível analisar o status do aplicativo na guia AlloyDB para PostgreSQL.

Criar um job de migração no editor de conversão

É possível criar um job de migração que use seu espaço de trabalho de conversão diretamente na interface do editor de conversão.

  1. No console do Google Cloud, acesse Espaços de trabalho de conversão.

    Acessar os espaços de trabalho de conversão

  2. Clique no nome de exibição do espaço de trabalho da conversão com que você quer trabalhar.

    O editor do espaço de trabalho de conversão é aberto.

  3. Clique em Criar job de migração.

  4. Siga as etapas padrão do job de migração, conforme descrito em Criar um job de migração.

Filtrar objetos na visualização do esquema de origem

Os esquemas de banco de dados geralmente contêm milhares de objetos, o que dificulta a divisão do trabalho de conversão. Ao adicionar objetos do snapshot do esquema à visualização do esquema de origem, é possível usar filtros para limitar o número de objetos exibidos. Os filtros permitem adicionar objetos de maneira mais granular e se concentrar na conversão de um subconjunto selecionado do esquema.

Use a visualização filtrada ao adicionar objetos à visualização do esquema de origem:

  1. No campo Filtro, use um dos seguintes métodos de filtragem:
  2. Na lista Propriedades, selecione uma das opções sugeridas automaticamente:
    1. Nome do objeto para filtrar os objetos por um nome, por exemplo, ADMIN.
    2. Tipo de objeto para filtrar os objetos por vários tipos, como Função ou Tabela.
    3. Status da conversão para filtrar os objetos por status da conversão, como Ação necessária ou Nenhum problema.

      É possível combinar propriedades de filtro com operadores lógicos.

  3. Digite sua consulta. Por exemplo, type=table.

    Para mais informações sobre a sintaxe de filtragem, consulte Sintaxe de filtragem com suporte.

  4. Selecione os objetos que você quer adicionar à visualização do esquema de origem.

Sintaxe de filtragem aceita

É possível filtrar objetos por nome com a pesquisa de texto livre básica ou usar uma propriedade type dedicada. Ambas as abordagens oferecem suporte à especificação formal da API do Google para filtragem, o que significa que você pode usar literais com caracteres curinga, além de operadores lógicos e de comparação.

Use texto livre para filtrar os objetos por nome. Essa abordagem diferencia maiúsculas de minúsculas e aceita caracteres curinga.

Exemplo:

A consulta *JOB* usa caracteres curinga para procurar entidades que contêm a substring JOB. A visualização filtrada retorna algumas tabelas e um procedimento armazenado:

Captura de tela de resultados de exemplo para filtrar objetos por nome.
Filtrar usando a propriedade type

É possível filtrar objetos por todos os tipos padrão aceitos no Serviço de migração de banco de dados.

A propriedade type oferece suporte aos seguintes literais com os operadores de igualdade (=) e desigualdade (!=): database, schema, table, column, index, sequence, stored_procedure, function, view, synonym, materialized_view, udt, constraint, database_package, trigger e event_trigger.

Exemplo:

O filtro type=table retorna apenas as tabelas presentes no seu esquema:

Captura de tela de resultados de exemplo para a filtragem de objetos por propriedade de tipo.
Combinar condições de filtragem

É possível especificar várias condições combinando-as com operadores lógicos.

Por exemplo, para pesquisar apenas tabelas com nomes que contêm as substrings JOB ou EMPLOYEE, use esta consulta:

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

Como resultado, o filtro mostra todas as tabelas correspondentes:

Captura de tela de resultados de exemplo para a filtragem de objetos por uma combinação de
  propriedades de tipo e nome.