Trabalhar com espaços de trabalho de conversão

Este documento explica como usar diferentes espaços de trabalho de conversão no Database Migration Service.

Usar espaços de trabalho de conversão com o editor integrado

Um espaço de trabalho de conversão ajuda a converter o esquema e os objetos do banco de dados de origem em um formato compatível com o banco de dados de destino. O espaço de trabalho permite analisar, modificar e aplicar a estrutura geral de conversão, mas não altera nenhum dado no banco de dados de origem.

Converter o esquema e o código de origem

Quando você configura um espaço de trabalho, o Database Migration Service executa o pull inicial do esquema do banco de dados de origem e dos objetos de código. Em seguida, você seleciona quais deles quer converter. É possível adicionar mais objetos mais tarde. Esses objetos agora aparecem na guia Oracle. O painel Rascunho do Cloud SQL para PostgreSQL mostra o esquema e o código do PostgreSQL gerados pelo Database Migration Service.

Nesse ponto, o Database Migration Service mostra os objetos esperados após a conversão, não os objetos reais na instância de destino.

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

    Acessar os espaços de trabalho de conversão

  2. Na lista de espaços de trabalho de conversão disponíveis, selecione o que você quer usar.

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

  3. Opcional: faça upload de um arquivo de configuração do Ora2Pg para fornecer mapeamentos adicionais para o SQL gerado:

    1. Clique em Editar configuração > Personalizar mapeamento com um arquivo de configuração

    2. Na caixa Arquivo de configuração do Ora2Pg, clique em Procurar e use o seletor de arquivos do sistema para selecionar o arquivo de configuração.

    3. Clique em Adicionar arquivo > Gerar.

  4. Opcional: se você já tem um esquema e um código convertidos, mas quer ajustar manualmente o SQL gerado antes de executar a conversão novamente, siga estas etapas:

    1. No painel Oracle, selecione o objeto para o qual você quer ajustar o SQL gerado.

    2. Navegue até a guia SQL e inspecione as instruções.

    3. Ajuste os scripts conforme necessário para seu cenário e clique em Salvar.

  5. Quando terminar os ajustes, clique em Converter fonte.

  6. Na caixa de diálogo de confirmação, clique em Converter.

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.

    Acessar os espaços de trabalho de conversão

  2. Na lista de espaços de trabalho de conversão disponíveis, selecione o que você quer usar.

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

  3. Na guia Oracle, ao lado do objeto que você quer remover, selecione Mais > Remover.

  4. Na caixa de diálogo de confirmação Remover objeto, clique em Remover.

  5. Converta a origem novamente para refletir as atualizações na guia Rascunho do Cloud SQL 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.

    Acessar os espaços de trabalho de conversão

  2. Na lista de espaços de trabalho de conversão disponíveis, selecione o que você quer usar.

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

  3. Na guia Oracle, clique em Adicionar objetos.

  4. 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 campo Filtrar para reduzir o número de objetos mostrados. Consulte Filtrar objetos na visualização do esquema de origem.

  5. Clique em Adicionar objetos.

  6. Converta a origem novamente para refletir as atualizações na guia Rascunho do Cloud SQL 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 do banco de dados atualizado não redefine nenhum mapeamento adicional que exista no espaço de trabalho de conversão dos arquivos de configuração do Ora2Pg, a menos que você escolha explicitamente remover 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.

    Acessar 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. Quando a operação for concluída, converta a fonte novamente.

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 Google Cloud CLI 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 da 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

CLI gcloud 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 do espaço 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 do 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 do espaço 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 aceita para edição diretamente no espaço de trabalho de conversão, consulte Objetos editáveis do Oracle.

Para corrigir problemas de conversão encontrados com objetos que oferecem suporte à edição em tempo real:

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

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

  2. Na guia Rascunho do Cloud SQL para PostgreSQL, use o editor SQL para atualizar o código gerado.

  3. Teste o aplicativo para verificar se o Database Migration Service pode aplicar corretamente o código ao banco de dados de destino.

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

  • Atualize sua fonte:

    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.
  • Forneça mapeamentos adicionais usando a ferramenta de configuração do Ora2Pg:

    1. Configure o Ora2Pg e crie um arquivo de mapeamento para o objeto com falha.
    2. Adicione o arquivo de configuração ao espaço de trabalho. Consulte Modificar espaços de trabalho de conversão.
  • Tente remover o objeto da guia "Origens" e converter o esquema novamente.

  • Modifique o código diretamente na instância de destino. Não atualize objetos que possam afetar seus mapeamentos.

Testar o aplicativo para o destino

Antes de aplicar o esquema ao banco de dados de destino, você pode executar um aplicativo de teste que não afete a instância de destino do Cloud SQL. Testar a aplicação do esquema pode ajudar a verificar proativamente possíveis problemas.

  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 à origem > Testar (recomendado).

    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 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 campo Filtrar para reduzir o número de objetos mostrados. Consulte Filtrar objetos na visualização do esquema de origem.

  7. Clique em Testar aplicativo.

    É possível analisar o status do aplicativo na guia Rascunho do Cloud SQL 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.

  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 campo Filtrar 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 Rascunho do Cloud SQL 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, você pode 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:

    • Na lista Propriedades, selecione uma das opções sugeridas automaticamente:

      • Nome do objeto para filtrar os objetos por um nome, por exemplo, ADMIN.
      • Tipo de objeto para filtrar os objetos por vários tipos, como Função ou Tabela.
      • 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.

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

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

  2. 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, bem como 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 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 filtrar 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.

Usar espaços de trabalho de conversão legados

Os espaços de trabalho de conversão legados são espaços de trabalho somente leitura que servem para parear os arquivos de configuração do Ora2Pg com um perfil de conexão.

Converter o esquema de origem

Para espaços de trabalho legados, converta o esquema usando a ferramenta de migração Ora2Pg diretamente no banco de dados de origem. A conversão de esquema é gerenciada fora do Database Migration Service. Consulte Preparar-se para a conversão de esquema.

O Database Migration Service executa a conversão do esquema de origem quando você cria o espaço de trabalho de conversão legado. Se você quiser atualizar os mapeamentos, recree o espaço de trabalho legados com o arquivo de configuração atualizado.

Aplicar ao destino

Depois de criar o arquivo de configuração do Ora2Pg e o espaço de trabalho, você precisa aplicar o código gerado diretamente no banco de dados de destino. Se você precisar mudar a conversão, ajuste o arquivo de configuração do Ora2Pg e recree o espaço de trabalho legado com novas configurações.