Nesta página, descrevemos as limitações conhecidas (incluindo considerações especiais para processar entidades como chaves primárias ou chaves estrangeiras e triggers), além de práticas recomendadas para migrações heterogêneas do Oracle com o Database Migration Service.
O que não é migrado
- Os usuários e as permissões não são migrados.
- As mudanças de esquema que ocorrem durante um job de migração ativo não são migradas automaticamente. Se você mudar o esquema durante a migração, primeiro atualize o espaço de trabalho de conversão com as mudanças e depois atualize os jobs de migração relevantes. Para mais informações, consulte Adicionar esquema ou tabelas atualizados ao job de migração.
-
As instruções
SAVEPOINT
não são compatíveis e podem causar discrepância de dados em caso de rollback. -
O Database Migration Service replica tipos de dados definidos pelo usuário, mas armazena apenas o tipo de dados básicos de que você deriva seus tipos definidos pelo usuário.
Por exemplo, se você definir um tipo de dados
USERNAME
com base no tipoVARCHAR2
, os dados serão armazenados no destino comoVARCHAR
.
Banco de dados, transações e consistência de dados
- A migração é eventualmente consistente, já que o Database Migration Service não replica cada transação conforme ela acontece. A migração traz dados de várias tabelas. A ordem em que os dados são carregados no destino pode variar, mas se realinha com a origem depois que as gravações na origem são interrompidas e o buffer de migração é limpo.
- Para migrações heterogêneas do Oracle, o Database Migration Service só pode migrar um banco de dados por job de migração.
- O Database Migration Service é compatível com a arquitetura multilocatária da Oracle (CDB/PDB), mas só é possível migrar um único banco de dados plugável por job de migração.
- O Oracle Label Security (OLS) não é replicado.
- As transações revertidas no banco de dados de origem durante o processo de migração podem ficar visíveis temporariamente no destino (quando a transação é longa o suficiente).
- O Database Migration Service não oferece suporte à conectividade direta com bancos de dados usando o recurso Single Client Access Name (SCAN) em ambientes Oracle Real Application Clusters (RAC). Para possíveis soluções de uso da conectividade de lista de permissões de IP público com esses ambientes, consulte Solução de problemas de erros de SCAN do Oracle.
Codificação de dados
- O Database Migration Service só é compatível com codificações de conjunto
UTF8
para o banco de dados de destino. Nomes de esquemas e tabelas que incluem caracteres que não fazem parte do conjunto de codificaçãoUTF8
não são compatíveis. - O Database Migration Service é compatível com as seguintes codificações de conjuntos de caracteres para bancos de dados Oracle:
AL16UTF16
AL32UTF8
IN8ISCII
JA16SJIS
US7ASCII
UTF8
WE8ISO8859P1
WE8ISO8859P9
WE8ISO8859P15
WE8MSWIN1252
ZHT16BIG5
Tabelas, esquemas e outros objetos
- Durante uma migração, não há suporte para alterações de linguagem de definição de dados (DDL) em dados, esquemas e metadados. Se você atualizar o esquema durante a migração, será necessário extrair as mudanças para o espaço de trabalho de conversão, converter o código, limpar o destino e executar o job de migração novamente.
- Nomes de colunas de tabelas que incluem caracteres diferentes de alfanuméricos ou um sublinhado (
_
) não são aceitos. - O comprimento máximo do nome para tabelas ou colunas é de 30 caracteres. o Database Migration Service não poderá replicar tabelas que excedam esse limite ou que contenham colunas com nomes que excedam esse limite.
- As tabelas organizadas pelo índice (IOTs) não são compatíveis.
- As tabelas temporárias globais exigem que a extensão
pgtt
do PostgreSQL seja instalada e criada no destino. - Para colunas do tipo
BFILE
, somente o caminho para o arquivo será replicado. O conteúdo do arquivo não será replicado. - Para o Oracle 11g, as tabelas com colunas de tipos de dados
ANYDATA
ouUDT
não são compatíveis, e a tabela inteira não será replicada. - Os jobs programados usando
dbms_job
oudbms_scheduler
não são migrados. - As definições de visualizações materializadas são migradas, mas os dados materializados não são. Depois de concluir a migração, atualize as visualizações materializadas para preenchê-las com dados das tabelas migradas.
- Os valores de sequência são migrados, mas os valores no banco de dados de origem podem continuar avançando antes da conclusão da migração. Depois de concluir a migração, atualize os valores de sequência na instância de destino para corresponder aos do banco de dados de origem.
- Os jobs de migração são limitados a 10.000 tabelas.
- As linhas têm uma limitação de tamanho de 100 MB. As linhas que excedem o limite de 100 MB não são migradas e aparecem como erros no job de migração.
- As tabelas criadas depois do início da migração não serão migradas automaticamente. Primeiro, extraia o esquema no espaço de trabalho de conversão, aplique as definições convertidas ao destino e atualize o job de migração.
Limitações do tipo de dados
Os seguintes tipos de dados não são compatíveis com migrações do Oracle:
ANYDATA
(para o Oracle 11g, as tabelas comANYDATA
não são compatíveis e não são replicadas).BFILE
INTERVAL DAY TO SECOND
INTERVAL YEAR TO MONTH
LONG/LONG RAW
SDO_GEOMETRY
UDT
UROWID
XMLTYPE
- Datas iguais a zero em
TIMESTAMP
Considerações sobre chaves primárias
Tabelas sem chaves primárias não garantem uma replicação consistente. O Database Migration Service migra apenas tabelas com chaves primárias. Se o banco de dados de origem incluir tabelas sem chaves primárias, os espaços de trabalho de conversão do Database Migration Service vão criar automaticamente as chaves primárias ausentes nas tabelas de destino quando você converter o código-fonte e o esquema.
Se você usa os espaços de trabalho de conversão legados, é necessário criar manualmente restrições de chave primária nas tabelas convertidas no banco de dados de destino antes de iniciar a migração. Para mais informações, consulte Espaços de trabalho de conversão legados.
Considerações sobre chaves estrangeiras e triggers
Chaves externas e triggers presentes no banco de dados de origem podem causar problemas de integridade de dados ou até mesmo fazer com que o job de migração falhe.
É possível evitar esses problemas se você pular chaves externas e gatilhos
usando a opção REPLICATION
para o usuário da migração.
Como alternativa, você também pode descartar todas as chaves externas e gatilhos no banco de dados de destino e recriá-los quando a migração for concluída.
Gatilhos
Os dados replicados pelo Database Migration Service já incorporam as mudanças feitas por gatilhos no banco de dados de origem. Se os gatilhos estiverem ativados no destino, eles poderão ser acionados novamente e manipular dados, resultando em problemas de integridade ou duplicação de dados.
Chaves externas
O Database Migration Service não replica dados de maneira transacional, então as tabelas podem ser migradas fora de ordem. Se houver chaves estrangeiras e uma tabela filha que usa uma chave externa for migrada antes da mãe, poderão ocorrer erros de replicação.
Recomendações
- Ao
criar o banco de dados de destino do Cloud SQL,
use recursos de computação e memória suficientes para atender às suas
necessidades de migração. Recomendamos um tipo de máquina com pelo menos uma CPU de dois núcleos.
Por exemplo, se o nome da máquina for
db-custom
e ela tiver 2 CPUs e 3.840 MB de RAM, o formato do nome do tipo de máquina serádb-custom-2-3840
. - O banco de dados de destino do Cloud SQL pode ser gravado durante a migração para permitir que as mudanças na linguagem de manipulação de dados (DML) sejam aplicadas, se necessário. Tenha cuidado para não fazer mudanças na configuração do banco de dados ou nas estruturas de tabelas que possam interromper o processo de migração ou afetar a integridade dos dados.
Cotas
- É possível ter a qualquer momento até 2.000 perfis de conexão e 1.000 jobs de migração. Se você quiser criar mais espaço para esses itens, os jobs de migração (incluindo os concluídos) e os perfis de conexão podem ser excluídos.