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 têm suporte para recursos de conversão aprimorados pelo Gemini ou para o editor de SQL interativo. Eles só podem ser usados 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 para o fluxo de trabalho de conversão:
Espaço de trabalho de conversão interativo | Espaço de trabalho de conversão legado |
---|---|
A conversão de objetos de esquema e 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 origens convertidas ao banco de dados de destino diretamente 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. |
É possível testar o esquema e o código do 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 colunas rowid ausentes para tabelas que
não têm chaves primárias e restrições exclusivas. |
É necessário adicionar chaves primárias ausentes às tabelas de destino depois de aplicar o esquema. |
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:
Escreva um arquivo de configuração do Ora2Pg.
Consulte a documentação do Ora2Pg para saber como usar a ferramenta de conversão do Ora2Pg. Abra as seções a seguir para conferir a lista completa de diretivas compatíveis com o Database Migration Service.
Configuração do Ora2Pg com suporte no 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. Portanto, 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.- Crie um espaço de trabalho de conversão legado e faça upload do arquivo Ora2Pg para converter o esquema.
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 diretamente no banco de dados de destino.
Migrar 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 que não têm chaves primárias, crie 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:
- Conecte-se à instância de destino do Cloud SQL com um cliente SQL. Você
pode usar os seguintes métodos:
-
psql
cliente. É possível usar esse método para se conectar ao IP particular da instância, mas talvez seja necessário criar uma máquina virtual do Compute Engine. - Comando
gcloud sql connect
. Esse comando só funciona em instâncias do Cloud SQL com um endereço IP público ativado.
-
- 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 abrir as seções a seguir para conferir exemplos de comandos SQL:
Criar chaves primárias usando colunas atuais
Talvez sua tabela já tenha uma chave primária lógica baseada em uma coluna ou uma combinação de colunas. Por exemplo, pode haver colunas com uma restrição ou í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 pré-existente que possa servir como chave primária, crie chaves primárias usando todas as colunas da tabela. Confira se você não excede o comprimento 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 extrair todos os nomes de colunas para essa finalidade.
Criar uma restrição exclusiva com a pseudocoluna
ROWID
Os bancos de dados Oracle usam a pseudocoluna
ROWID
para armazenar a localização de cada linha em uma tabela. Para migrar tabelas do Oracle que não têm chaves primárias, adicione uma colunaROWID
no banco de dados PostgreSQL de destino. O Database Migration Service preenche a coluna com os valores numéricos correspondentes da pseudocolunaROWID
do Oracle de origem.Para adicionar a coluna e defini-la como chave primária, 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);
- Conecte-se à instância de destino do Cloud SQL com um cliente SQL. Você
pode usar os seguintes métodos:
A seguir
Depois de executar o fluxo de trabalho de conversão com o espaço de trabalho legada, prossiga com os procedimentos de migração padrão. Consulte Criar um job de migração.