Acerca dos espaços de trabalho de conversão antigos

Os espaços de trabalho de conversão antigos são um tipo de espaços de trabalho de conversão mais antigo e limitado. Os espaços de trabalho de conversão antigos não suportam funcionalidades de conversão melhoradas pelo Gemini nem o editor de SQL interativo. Só pode usá-los para converter o esquema de origem com a ferramenta de migração Ora2Pg.

Não recomendamos a utilização do tipo de espaços de trabalho de conversão antigos para as suas migrações, uma vez que apresentam várias outras limitações ao fluxo de trabalho de conversão:

Espaço de trabalho de conversão interativoEspaço de trabalho de conversão antigo
A conversão de esquemas e objetos de código ocorre no Database Migration Service. Realiza conversões de esquemas e objetos de código fora do Database Migration Service através da ferramenta de migração Ora2Pg.
Pode aplicar origens convertidas diretamente à base de dados de destino no serviço de migração de bases de dados. É responsável por aplicar o esquema convertido à base de dados de destino na instância de destino do Cloud SQL para PostgreSQL.
Pode testar o esquema e o código de rascunho diretamente no serviço de migração de base de dados para garantir que podem ser aplicados com êxito à instância de destino. Não pode testar o esquema e o código de rascunho sem afetar a instância de destino.
Adiciona automaticamente colunas rowid em falta para tabelas que não têm chaves primárias nem restrições únicas. Tem de adicionar as chaves principais em falta às tabelas de destino depois de aplicar o esquema.
Tabela 1: comparação de funcionalidades do espaço de trabalho de conversão

Use espaços de trabalho de conversão antigos

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

  1. Escrever um ficheiro de configuração do Ora2Pg.

    Consulte a documentação do Ora2Pg para ver orientações sobre como usar a ferramenta de conversão Ora2Pg. Expanda as secções seguintes para ver a lista completa de diretivas suportadas no Database Migration Service.

    Configuração do Ora2Pg suportada no serviço de migração de base de dados

    O Serviço de migração de base de dados suporta os seguintes itens de configuração para ficheiros 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 serviço de migração de bases de dados usa perfis de ligação para definir detalhes de conetividade, pelo que não precisa de definir as seguintes informações no seu ficheiro de configuração do Or2Pg:

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

    Além disso, o serviço de migração de bases de dados não usa a diretiva de configuração WHERE para limitar os registos a migrar.

  2. Crie um espaço de trabalho de conversão antigo e carregue o ficheiro Ora2Pg para converter o seu esquema.
  3. Aplique manualmente o esquema convertido à base de dados de destino.

    Depois de criar a configuração do Ora2Pg e criar o espaço de trabalho, tem de aplicar o código gerado diretamente na base de dados de destino.

  4. Migre tabelas sem chaves primárias.

    O Database Migration Service migra apenas tabelas que tenham chaves principais. Se a base de dados de origem incluir tabelas que não tenham chaves primárias, tem de criar manualmente chaves primárias ou restrições exclusivas nas tabelas convertidas na base de dados de destino depois de aplicar o esquema convertido. Expanda a secção seguinte para ver mais detalhes.

    Adicione restrições de chave primária na base de dados de destino

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

    1. Estabeleça ligação à instância do Cloud SQL de destino com um cliente SQL. Pode usar os seguintes métodos:
      • psql cliente. Pode usar este método para estabelecer ligação ao IP privado da sua instância, mas pode ter de criar uma máquina virtual do Compute Engine.
      • gcloud sql connect. Este comando só funciona para instâncias do Cloud SQL com um endereço IP público ativado.
    2. Crie as restrições de chave primária em falta para as suas tabelas. Para mais informações sobre chaves primárias, consulte Chaves primárias na documentação do PostgreSQL.

      Também pode expandir as secções seguintes para ver exemplos de comandos SQL:

      Crie chaves principais com colunas existentes

      A sua tabela pode já ter uma chave principal lógica baseada numa coluna ou numa combinação de colunas. Por exemplo, podem existir colunas com uma restrição ou um índice único configurado. Use estas colunas para gerar uma nova chave primária para as tabelas na base de dados de origem. Por exemplo:

      ALTER TABLE TABLE_NAME
      ADD PRIMARY KEY (COLUMN_NAME);

      Crie uma chave principal com todas as colunas

      Se não tiver uma restrição pré-existente que possa servir como chave primária, crie chaves primárias com todas as colunas da tabela. Certifique-se de que não excede o comprimento máximo da chave primária permitido pela sua instância do PostgreSQL. Por exemplo:

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

      Quando cria uma chave principal composta como esta, tem de listar explicitamente todos os nomes das colunas que quer usar. Não é possível usar uma declaração para obter todos os nomes das colunas para este fim.

      Crie uma restrição única com a pseudocoluna ROWID

      As bases de dados Oracle usam a pseudocoluna ROWID para armazenar a localização de cada linha numa tabela. Para migrar tabelas do Oracle que não tenham chaves primárias, pode adicionar uma coluna ROWID na base de dados PostgreSQL de destino. O serviço de migração de base de dados preenche a coluna com os valores numéricos correspondentes da pseudocoluna ROWID do Oracle de origem.

      Para adicionar a coluna e defini-la como a chave principal, execute o seguinte:

      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);

O que se segue?

Depois de executar o fluxo de trabalho de conversão com o espaço de trabalho antigo, pode avançar com os procedimentos de migração padrão. Consulte o artigo Crie uma tarefa de migração.