Esta página descreve as limitações conhecidas (incluindo considerações especiais para processar entidades como chaves primárias ou chaves estrangeiras e acionadores), 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 de esquema e depois atualize os jobs de migração relevantes. Para mais informações, consulte Adicionar esquemas ou tabelas atualizados ao job de migração.
-
As instruções
SAVEPOINT
não têm suporte e podem causar discrepância de dados em caso de reversão. -
O Database Migration Service replica tipos de dados definidos pelo usuário, mas armazena apenas o tipo de dados de base a partir do qual você deriva os tipos definidos pelo usuário.
Por exemplo, se você definir um tipo de dados
USERNAME
com base noVARCHAR2
, os dados serão armazenados no destino comoVARCHAR
.
Banco de dados, transações e consistência de dados
- A migração é 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 alinha novamente 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 serviço de migração de banco de dados oferece suporte à arquitetura de vários locatários (CDB/PDB) do Oracle, mas você só pode migrar um único banco de dados plugável por job de migração.
- O Oracle Label Security (OLS) não é replicado.
- O banco de dados de destino precisa ter o mesmo nome do nome de usuário usado para se conectar a ele.
- Todas as transações que forem revertidas no banco de dados de origem durante o processo de migração poderão ficar visíveis no destino temporariamente (quando a transação for longa o suficiente).
- O Database Migration Service não oferece suporte à conectividade direta com bancos de dados que usam o recurso Single Client Access Name (SCAN) em ambientes do Oracle Real Application Clusters (RAC). Para possíveis soluções de uso de conectividade de lista de permissões de IP público com esses ambientes, consulte Solução de problemas de erros do Oracle SCAN.
Codificação de dados
- O Database Migration Service oferece suporte apenas a codificações de conjunto
UTF8
para o banco de dados de destino. Não é possível usar nomes de esquemas e tabelas que incluem caracteres que não fazem parte do conjunto de codificaçãoUTF8
. - O Database Migration Service oferece suporte às seguintes codificações de conjunto 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 mudanças na 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.
- Não é possível usar nomes de colunas de tabela que incluam caracteres
diferentes de alfanuméricos ou sublinhado (
_
). - O comprimento máximo do nome de tabelas ou colunas é de 30 caracteres. o Database Migration Service não poderá replicar tabelas que excedam esse limite ou tabelas 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 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 da 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. Após a conclusão da migração, atualize os valores da sequência na instância de destino para que eles correspondam 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 após o início da migração não são migradas automaticamente. Primeiro, é necessário extrair o esquema no espaço de trabalho de conversão, aplicar as definições convertidas ao destino e atualizar o job de migração.
Limitações do tipo de dados
Os seguintes tipos de dados não são compatíveis com as migrações do Oracle:
ANYDATA
(no Oracle 11g, as tabelas comANYDATA
não têm suporte e não são replicadas.)BFILE
INTERVAL DAY TO SECOND
INTERVAL YEAR TO MONTH
LONG/LONG RAW
SDO_GEOMETRY
UDT
UROWID
XMLTYPE
- Datas zeradas em
TIMESTAMP
Considerações sobre chaves primárias
As tabelas sem chaves primárias não garantem a 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 primarias ausentes nas tabelas de destino quando você converter o código-fonte e o esquema.
Se você usa 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 externas e acionadores
Chaves externas e gatilhos presentes no banco de dados de origem podem causar
problemas de integridade de dados ou até mesmo falhar na migração.
É possível evitar esses problemas pulando chaves externas e gatilhos
usando a opção REPLICATION
para o usuário da migração.
Como alternativa, você também pode excluir todas as chaves externas e gatilhos no banco de dados de destino e recriar quando a migração for concluída.
Gatilhos
Os dados replicados pelo Database Migration Service já incorporam todas as mudanças feitas por acionadores 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.
Chaves externas
O Database Migration Service não replica dados de maneira transacional. Portanto, as tabelas podem ser migradas fora de ordem. Se as chaves estrangeiras estiverem presentes e uma tabela filha que usa uma chave estrangeira for migrada antes da mãe, você poderá encontrar 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 que tenha pelo menos uma CPU com 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 é gravável 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.