Sobre os espaços de trabalho de conversão legados

Os espaços de trabalho de conversão legados são um tipo mais antigo e limitado de espaços de trabalho de conversão. Os espaços de trabalho de conversão legados não são compatíveis com os recursos de conversão aprimorados com o Gemini nem com o editor interativo de SQL. Você só pode usá-los para converter o esquema de origem com a ferramenta de migração Ora2Pg.

Não recomendamos usar o tipo legado de espaços de trabalho de conversão para suas migrações, porque eles apresentam várias outras limitações no fluxo de trabalho de conversão:

Espaço de trabalho de conversão interativoEspaço de trabalho de conversão legado
A conversão de esquema e objeto de código acontece no Database Migration Service. Você realiza conversões de esquema e objeto de código fora do Database Migration Service usando a ferramenta de migração Ora2Pg.
É possível aplicar fontes convertidas diretamente ao banco de dados de destino no Database Migration Service. Você é responsável por aplicar o esquema convertido ao banco de dados de destino na instância de destino do Cloud SQL para PostgreSQL.
Você pode testar o esquema e o código de rascunho diretamente no Database Migration Service para garantir que eles possam ser aplicados à instância de destino. Não é possível testar o esquema e o código de rascunho sem afetar a instância de destino.
Adiciona automaticamente as colunas rowid ausentes para tabelas que não têm chaves primárias e restrições exclusivas. Você precisa adicionar as chaves primárias ausentes às tabelas de destino depois de aplicar o esquema.
Tabela 1: comparação de recursos do espaço de trabalho de conversão

Usar espaços de trabalho de conversão legados

Se o seu cenário exigir o uso de espaços de trabalho de conversão legados, modifique o processo de migração com as seguintes ações:

  1. Crie um arquivo de configuração do Ora2Pg.

    Consulte a documentação do Ora2Pg para saber como usar a ferramenta de conversão do Ora2Pg. Expanda as seções a seguir para conferir a lista completa de diretivas compatíveis com o Database Migration Service.

    Configuração do Ora2Pg compatível com o Database Migration Service

    O Database Migration Service oferece suporte aos seguintes itens de configuração para arquivos 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

    O Database Migration Service usa perfis de conexão para definir detalhes de conectividade. Assim, não é necessário definir as seguintes informações no arquivo de configuração do Or2Pg:

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

    Além disso, o Database Migration Service não usa a diretiva de configuração WHERE para limitar os registros a serem migrados.

  2. Crie um espaço de trabalho de conversão legado e faça upload do arquivo Ora2Pg para converter seu esquema.
  3. Aplique manualmente o esquema convertido ao banco de dados de destino.

    Depois de criar a configuração do Ora2Pg e o espaço de trabalho, aplique o código gerado por conta própria diretamente no banco de dados de destino.

  4. Migre tabelas sem chaves primárias.

    O Database Migration Service migra apenas tabelas com chaves primárias. Se o banco de dados de origem incluir tabelas sem chaves primárias, será necessário criar manualmente chaves primárias ou restrições exclusivas nas tabelas convertidas no banco de dados de destino depois de aplicar o esquema convertido. Abra a seção a seguir para mais detalhes.

    Adicionar restrições de chave primária no banco de dados de destino

    Para migrar tabelas do Oracle sem chaves primárias, faça o seguinte:

    1. Conecte-se à instância de destino do Cloud SQL com um cliente SQL. É possível usar os seguintes métodos:
      • psql client. É possível usar esse método para se conectar ao IP privado da instância, mas talvez seja necessário criar uma máquina virtual do Compute Engine.
      • Comando gcloud sql connect. Esse comando funciona apenas para instâncias do Cloud SQL com um endereço IP público ativado.
    2. Crie as restrições de chave primária ausentes para suas tabelas. Para mais informações sobre chaves primárias, consulte Chaves primárias na documentação do PostgreSQL.

      Você também pode expandir as seções a seguir para ver exemplos de comandos SQL:

      Criar chaves primárias usando colunas atuais

      Sua tabela já pode ter uma chave primária lógica com base em uma coluna ou uma combinação de colunas. Por exemplo, pode haver colunas com uma restrição ou um índice exclusivo configurado. Use essas colunas para gerar uma nova chave primária para tabelas no banco de dados de origem. Exemplo:

      ALTER TABLE TABLE_NAME
      ADD PRIMARY KEY (COLUMN_NAME);

      Criar uma chave primária usando todas as colunas

      Se você não tiver uma restrição preexistente que possa servir como uma chave primária, crie chaves primárias usando todas as colunas da tabela. Verifique se você não excedeu o tamanho máximo da chave primária permitido pela instância do PostgreSQL. Exemplo:

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

      Ao criar uma chave primária composta como essa, é necessário listar explicitamente todos os nomes de coluna que você quer usar. Não é possível usar uma instrução para recuperar todos os nomes de coluna para essa finalidade.

      Criar uma restrição exclusiva com a pseudocoluna ROWID

      Os bancos de dados Oracle usam a pseudocoluna ROWID para armazenar o local de cada linha em uma tabela. Para migrar tabelas do Oracle que não têm chaves primárias, adicione uma coluna ROWID no banco de dados PostgreSQL de destino. O Database Migration Service preenche a coluna com os valores numéricos correspondentes da pseudocoluna ROWID do Oracle de origem.

      Para adicionar a coluna e defini-la como chave primária, execute o seguinte 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);

A seguir

Depois de realizar o fluxo de trabalho de conversão com o espaço de trabalho legado, siga os procedimentos padrão de migração. Consulte Criar um job de migração.