Use o Data Transmission Service (DTS) para migrar dados de um banco de dados Oracle autogerenciado para uma instância ApsaraDB RDS for MySQL. O DTS oferece suporte à migração de esquema, migração completa de dados e migração incremental de dados. Para garantir a continuidade do serviço durante a migração, selecione os três tipos de migração.
O que o DTS migra
|
Categoria |
Suporte |
Observações |
|
Migração de esquema |
Sim |
Converte tabelas clusterizadas e tabelas organizadas por índice (IOTs) em tabelas comuns. Não há suporte para tabelas aninhadas, índices baseados em função, índices de domínio, índices bitmap ou índices reversos. Também não há suporte para views, sinônimos, stored procedures, funções, pacotes ou tipos definidos pelo usuário. |
|
Migração completa de dados |
Sim |
Migra todos os dados existentes do banco de dados Oracle de origem. |
|
Migração incremental de dados |
Sim |
Lê arquivos de redo log do banco de dados Oracle de origem após a conclusão da migração completa de dados. Oferece suporte a operações INSERT, UPDATE e DELETE (DML) e a um subconjunto de operações DDL. |
|
Tabelas externas |
Não |
— |
Faturamento
| Tipo de migração | Taxa de configuração da instância | Taxa de tráfego de Internet |
|---|---|---|
| Migração de esquema e migração completa de dados | Gratuito | Cobrado apenas quando o Access Method está definido como Public IP Address. Para mais detalhes, consulte Visão geral do faturamento. |
| Migração incremental de dados | Pago. Para mais detalhes, consulte Visão geral do faturamento. |
Operações SQL com suporte para migração incremental
|
Tipo |
Operações |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
CREATE TABLE (exceto tabelas com funções aninhadas), ALTER TABLE, ADD COLUMN, DROP COLUMN, RENAME COLUMN, ADD INDEX, DROP TABLE, RENAME TABLE, TRUNCATE TABLE, CREATE INDEX (apenas dentro da conta atual do banco de dados) |
Pré-requisitos
Antes de começar, verifique se você tem:
Um banco de dados Oracle autogerenciado executando no modo ARCHIVELOG, com arquivos de log arquivados acessíveis e um período de retenção adequado configurado. Consulte Gerenciando arquivos de redo log arquivados.
Logging suplementar ativado no banco de dados Oracle de origem, com
SUPPLEMENTAL_LOG_DATA_PKeSUPPLEMENTAL_LOG_DATA_UIdefinidos como Yesconfigurações de notificação de alerta. Consulte Logging suplementar.Uma instância ApsaraDB RDS for MySQL criada. Consulte Criar uma instância ApsaraDB RDS for MySQL.
Para versões de bancos de dados de origem e destino com suporte, consulte Visão geral dos cenários de migração de dados.
Limitações
Nota
Durante a migração de esquema, o DTS migra chaves estrangeiras do banco de dados de origem para o destino. Nas migrações completa e incremental de dados, o DTS desativa temporariamente as verificações de restrição de chave estrangeira e as operações em cascata no nível da sessão. Se você executar operações de atualização ou exclusão em cascata no banco de dados de origem durante a migração, poderá ocorrer inconsistência de dados.
Requisitos do banco de dados de origem
O servidor do banco de dados de origem deve ter largura de banda de saída suficiente. Largura de banda insuficiente reduz a velocidade da migração.
Se o banco de dados de origem for um banco de dados Oracle RAC conectado via Express Connect, VPN Gateway, Smart Access Gateway, Database Gateway ou Cloud Enterprise Network (CEN), especifique um endereço IP virtual (VIP) em vez de um endereço IP Single Client Access Name (SCAN). Após especificar o VIP, não há suporte para failover de nó no banco de dados Oracle RAC.
Se um campo VARCHAR2 no banco de dados Oracle de origem contiver uma string vazia (avaliada como nula no Oracle) e o campo correspondente no banco de dados de destino tiver uma restrição NOT NULL, a tarefa de migração falhará.
-
Os objetos a serem migrados devem atender aos seguintes requisitos:
As tabelas devem ter restrições PRIMARY KEY ou UNIQUE com todos os campos únicos. Caso contrário, o banco de dados de destino poderá conter registros duplicados.
Para Oracle 12c e posteriores: os nomes das tabelas não podem exceder 30 bytes.
Se você selecionar tabelas individuais e precisar renomeá-las no banco de dados de destino, uma única tarefa de migração suporta até 1.000 tabelas. Para mais de 1.000 tabelas, configure várias tarefas ou migre o banco de dados inteiro.
-
Para migração incremental de dados:
O registro de redo e o arquivamento devem estar ativados.
Se executar apenas migração incremental: retenha redo logs e archive logs por mais de 24 horas.
Se executar migração completa e incremental: retenha redo logs e archive logs por pelo menos 7 dias. Após a conclusão da migração completa, reduza o período de retenção para mais de 24 horas.
AvisoSe o período de retenção for muito curto, o DTS poderá falhar ao obter os logs necessários, causando falha na tarefa ou, em casos extremos, inconsistência ou perda de dados. Os acordos de nível de serviço (SLAs) do DTS não garantem confiabilidade se os requisitos de retenção de logs não forem atendidos.
Durante a migração de esquema e a migração completa de dados: não execute operações DDL no banco de dados de origem.
Apenas durante a migração completa de dados: não grave dados no banco de dados de origem. Para manter a consistência dos dados, selecione migração de esquema, migração completa de dados e migração incremental de dados juntas.
Durante a migração de dados: não atualize campos LONGTEXT.
Outras limitações
Durante a migração incremental de dados: não use o Oracle Data Pump para gravar dados no banco de dados de origem, pois isso pode causar perda de dados.
Agende a migração fora dos horários de pico. A migração completa de dados utiliza recursos de leitura e gravação nos bancos de dados de origem e destino, aumentando a carga do servidor.
Após a conclusão da migração completa de dados, o tablespace utilizado no banco de dados de destino será maior do que no banco de dados de origem, devido à fragmentação de tabela causada por operações INSERT simultâneas.
O DTS tenta automaticamente repetir uma tarefa de migração com falha por até 7 dias. Antes de alternar as cargas de trabalho para o banco de dados de destino, pare ou libere quaisquer tarefas com falha. Alternativamente, execute
REVOKEpara remover as permissões de gravação do DTS no banco de dados de destino — caso contrário, a tarefa retomada poderá sobrescrever os dados de destino com dados de origem.Se instruções DDL falharem no banco de dados de destino, a tarefa do DTS continuará em execução. Revise as instruções DDL com falha nos logs da tarefa. Consulte Visualizar logs da tarefa.
Os conjuntos de caracteres dos bancos de dados de origem e destino devem ser compatíveis.
Use o recurso de migração de esquema do DTS para evitar falhas na tarefa causadas por tipos de dados incompatíveis.
Os bancos de dados de origem e destino devem usar o mesmo fuso horário.
Se os nomes das colunas na tabela MySQL de destino diferirem apenas na capitalização, os resultados da migração poderão não corresponder às expectativas, pois os nomes das colunas do MySQL não diferenciam maiúsculas de minúsculas.
Após a conclusão da migração (quando o Status mudar para Completed), execute
ANALYZE TABLE <table_name>no destino para verificar se os dados foram gravados corretamente. Isso é especialmente importante após um failover de alta disponibilidade (HA), onde os dados podem residir apenas na memória.Se uma tarefa do DTS falhar, o suporte técnico do DTS tentará restaurá-la dentro de 8 horas. Durante a restauração, a tarefa poderá ser reiniciada e parâmetros da tarefa (não parâmetros do banco de dados) poderão ser modificados.
Casos especiais para destinos ApsaraDB RDS for MySQL
Sensibilidade a maiúsculas e minúsculas em nomes de tabela: Os nomes de tabelas do ApsaraDB RDS for MySQL não diferenciam maiúsculas de minúsculas. Letras maiúsculas do Oracle são convertidas para minúsculas quando uma tabela é criada. Se o banco de dados Oracle de origem contiver nomes de tabelas que diferem apenas na capitalização, eles serão tratados como duplicatas, e um erro "The object already exists" poderá aparecer durante a migração de esquema. Para evitar conflitos, use o recurso de mapeamento de nomes de objetos para padronizar a capitalização dos nomes das tabelas. Consulte Mapeamento de nomes de objetos.
Criação de banco de dados: O DTS cria automaticamente o banco de dados de destino na instância RDS. Se o nome do banco de dados de origem for inválido, crie o banco de dados manualmente antes de configurar a tarefa de migração. Consulte Gerenciar bancos de dados.
Mapeamentos de tipos de dados
Para mapeamentos de tipos de dados de Oracle para MySQL, consulte Mapeamentos de tipos de dados entre bancos de dados heterogêneos.
Os bancos de dados de origem e destino são heterogêneos. A migração de esquema pode resultar em diferenças de esquema entre eles. Avalie o impacto da conversão de tipos de dados em suas cargas de trabalho antes da migração.
Preparações
Crie uma conta de banco de dados no banco de dados Oracle de origem e conceda as permissões necessárias. Se já existir uma conta com as permissões necessárias, pule esta etapa.
| Banco de dados | Migração de esquema | Migração completa de dados | Migração incremental de dados |
|---|---|---|---|
| Banco de dados Oracle autogerenciado | Permissões de proprietário do esquema | Permissões de proprietário do esquema | Permissões refinadas |
| Instância ApsaraDB RDS for MySQL | Permissões de gravação no banco de dados de destino | ||
Para criar a conta do banco de dados e conceder permissões:
Banco de dados Oracle autogerenciado: Consulte Preparar uma conta de banco de dados, CREATE USER e GRANT.
Instância ApsaraDB RDS for MySQL: Consulte Criar uma conta e Modificar permissões da conta.
Para migração incremental de dados, ative também o arquivamento e o logging suplementar no banco de dados Oracle de origem. Consulte Configurar um banco de dados Oracle.
Configurar a tarefa de migração
Etapa 1: Acessar a página Data Migration
Use um dos seguintes consoles:
Console do DTS
Faça login no console do DTS.
No painel de navegação à esquerda, clique em Data Migration.
No canto superior esquerdo, selecione a região onde a instância de migração reside.
Console do DMS
Nota
A navegação real pode variar dependendo do modo e layout do console DMS. Consulte Modo simples e Personalizar o layout e o estilo do console DMS.
Faça login no console do DMS.
Na barra de navegação superior, acesse Data + AI > DTS (DTS) > Data Migration.
Na lista suspensa ao lado de Data Migration Tasks, selecione a região onde a instância de migração reside.
Etapa 2: Criar uma tarefa
Clique em Create Task para abrir a página de configuração da tarefa.
Etapa 3: Configurar bancos de dados de origem e destino
Leia os Limits exibidos na parte superior da página após configurar os bancos de dados de origem e destino. Pular esta etapa pode causar falhas na tarefa ou inconsistência de dados.
Source database
|
Parâmetro |
Descrição |
|
Task Name |
Um nome para a tarefa do DTS. O DTS gera um nome padrão. Especifique um nome descritivo para facilitar a identificação. O nome não precisa ser único. |
|
Database Type |
Selecione Oracle. |
|
Access Method |
O método de acesso ao banco de dados de origem. Este exemplo usa Public IP Address. Para outros métodos de acesso, configure o ambiente necessário primeiro. Consulte Visão geral da preparação. |
|
Instance Region |
A região onde o banco de dados Oracle de origem reside. |
|
Hostname or IP address |
O endpoint para conexão ao banco de dados Oracle de origem. |
|
Port Number |
A porta de serviço do banco de dados Oracle de origem. Padrão: 1521. A porta deve estar acessível pela Internet ao usar Public IP Address. |
|
Oracle Type |
A arquitetura do banco de dados Oracle de origem. Selecione Non-RAC Instance (requer SID) ou RAC or PDB Instance (requer Service Name). Este exemplo usa Non-RAC Instance. |
|
Database Account |
A conta para o banco de dados Oracle de origem. Consulte Preparações para ver as permissões necessárias. |
|
Database Password |
A senha da conta do banco de dados. |
Destination database
|
Parâmetro |
Descrição |
|
Database Type |
Selecione MySQL. |
|
Access Method |
Selecione Alibaba Cloud Instance. |
|
Instance Region |
A região onde a instância ApsaraDB RDS for MySQL de destino reside. |
|
RDS Instance ID |
O ID da instância ApsaraDB RDS for MySQL de destino. |
|
Database Account |
A conta para a instância RDS de destino. Consulte Preparações para ver as permissões necessárias. |
|
Database Password |
A senha da conta do banco de dados. |
|
Connection Method |
Selecione Non-encrypted ou SSL-encrypted conforme seus requisitos. Para criptografia SSL, ative-a na instância RDS antes de configurar a tarefa do DTS. Consulte Usar um certificado de nuvem para ativar criptografia SSL. |
Etapa 4: Testar conectividade
Na parte inferior da página, clique em Test Connectivity and Proceed. Na caixa de diálogo CIDR Blocks of DTS Servers, clique em Test Connectivity.
Nota
Certifique-se de que os blocos CIDR dos servidores DTS foram adicionados às configurações de segurança dos bancos de dados de origem e destino. Consulte
Adicionar os blocos CIDR dos servidores DTS
.
Etapa 5: Configurar objetos para migração
Na página Configure Objects, defina os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
| Migration Types | Selecione os tipos de migração: Schema Migration e Full Data Migration para uma migração única, ou adicione Incremental Data Migration para sincronização contínua durante a migração. Nota
Se você não selecionar Schema Migration, crie o banco de dados e as tabelas de destino manualmente e ative o mapeamento de nomes de objetos. Se não selecionar Incremental Data Migration, não grave dados no banco de dados de origem durante a migração. |
| Processing Mode for Existing Destination Tables | Precheck and Report Errors: verifica se existem tabelas com o mesmo nome na origem e no destino. A tarefa não pode iniciar se houver duplicatas. Para resolver conflitos sem excluir ou renomear tabelas de destino, use o mapeamento de nomes de objetos. Consulte Mapear nomes de objetos. Ignore Errors and Proceed: ignora a pré-verificação de nomes duplicados. Durante a migração completa, os registros existentes no destino são mantidos (não sobrescritos). Durante a migração incremental, os registros existentes são sobrescritos. Se os esquemas forem diferentes, apenas colunas parciais poderão ser migradas ou a tarefa poderá falhar. Use esta opção com cautela. |
| Source Objects | Selecione objetos em Source Objects e clique no ícone de seta para adicioná-los aos Selected Objects. |
| Selected Objects | Para renomear um único objeto, clique com o botão direito nele em Selected Objects. Consulte Mapear o nome de um único objeto. Para renomear vários objetos, clique em Batch Edit no canto superior direito. Consulte Mapear vários nomes de objetos de uma vez. Nota
Renomear um objeto pode fazer com que outros objetos dependentes dele falhem na migração. Para filtrar linhas, clique com o botão direito em uma tabela e especifique condições WHERE. Consulte Especificar condições de filtro. Para selecionar operações SQL específicas para migração incremental em uma tabela, clique com o botão direito nela em Selected Objects e escolha as operações. |
Clique em Next: Advanced Settings.
Etapa 6: Configurar definições avançadas
| Parâmetro | Descrição |
|---|---|
| Dedicated Cluster for Task Scheduling | Por padrão, o DTS usa o cluster compartilhado. Para maior estabilidade da tarefa, adquira um cluster dedicado. Consulte O que é um cluster dedicado do DTS. |
| Retry Time for Failed Connections | Tempo durante o qual o DTS tenta reconectar após uma falha de conexão. Intervalo válido: 10–1.440 minutos. Padrão: 720. Defina como pelo menos 30. O DTS retoma a tarefa se a reconexão ocorrer dentro desta janela; caso contrário, a tarefa falha. Nota
Se várias tarefas compartilharem o mesmo banco de dados de origem ou destino, o tempo de repetição definido mais recentemente se aplica a todas. O DTS cobra pela instância durante os períodos de nova tentativa. |
| Retry Time for Other Issues | Tempo durante o qual o DTS tenta novamente após falhas em operações DDL ou DML. Intervalo válido: 1–1.440 minutos. Padrão: 10. Defina como pelo menos 10. Deve ser menor que Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Limita a carga de leitura/gravação durante a migração completa. Configure Queries per second (QPS) to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s). Disponível apenas quando Full Data Migration estiver selecionado. |
| Enable Throttling for Incremental Data Migration | Limita a carga durante a migração incremental. Configure RPS of Incremental Data Migration e Data migration speed for incremental migration (MB/s). Disponível apenas quando Incremental Data Migration estiver selecionado. |
| Environment Tag | Uma tag para identificar a instância do DTS. Opcional. |
| Actual Write Code | O formato de codificação para gravação de dados no banco de dados de destino. |
| Configure ETL | Define se deve ativar extração, transformação e carregamento (ETL). Selecione Yes para inserir instruções de processamento de dados, ou No para pular. Consulte Configurar ETL em uma tarefa de migração ou sincronização de dados. |
| Monitoring and Alerting | Define se deve configurar alertas. Selecione Yes para definir limiares de alerta e contatos de notificação. Consulte Configurar monitoramento e alertas. |
Etapa 7: Configurar verificação de dados (opcional)
Clique em Next Step: Data Verification para configurar uma tarefa de verificação de dados. Consulte Configurar uma tarefa de verificação de dados.
Etapa 8: Salvar configurações e executar a pré-verificação
Para visualizar os parâmetros da API antes de salvar, passe o mouse sobre Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters.
Clique em Next: Save Task Settings and Precheck.
Nota
O DTS executa uma pré-verificação antes de iniciar a tarefa de migração. A tarefa inicia somente após passar na pré-verificação.
Se a pré-verificação falhar, clique em View Details ao lado de cada item com falha, corrija os problemas e execute a pré-verificação novamente.
Se a pré-verificação gerar alertas: para alertas que não podem ser ignorados, clique em View Details e corrija os problemas. Para alertas ignoráveis, clique em Confirm Alert Details, depois em Ignore, em seguida OK, e clique em Precheck Again.
Etapa 9: Adquirir a instância
Aguarde até que a Success Rate atinja 100%, então clique em Next: Purchase Instance.
-
Na página Purchase Instance, configure o seguinte:
Seção Parâmetro Descrição New Instance Class Resource Group O grupo de recursos para a instância de migração. Padrão: default resource group. Consulte O que é Resource Management? Instance Class A classe da instância determina a velocidade da migração. Consulte Classes de instâncias de migração de dados. Marque a caixa de seleção Data Transmission Service (Pay-as-you-go) Service Terms.
Clique em Buy and Start, depois clique em OK na caixa de diálogo de confirmação.
Monitorar a tarefa de migração
Após o início da tarefa, acesse a página Data Migration para monitorar o progresso.
Migração de esquema e migração completa de dados: a tarefa para automaticamente quando concluída. O Status mostra Completed.
Incremental data migration: a tarefa executa continuamente e não para automaticamente. O Status mostra Running.
Verificar resultados da migração
Depois que o Status mostrar Completed, execute o seguinte comando no banco de dados de destino para verificar se os dados foram gravados corretamente:
ANALYZE TABLE <table_name>;
Esta etapa é especialmente importante após um failover de alta disponibilidade (HA) na instância RDS de destino, onde os dados podem residir temporariamente apenas na memória.