O Data Transmission Service (DTS) migra dados de um banco de dados Oracle autogerenciado para um cluster AnalyticDB for MySQL V3.0 em três fases: migração de schema, migração completa de dados e migração incremental de dados. A execução conjunta dessas três fases mantém o service ativo, sem tempo de inatividade durante a migração.
Como funciona
O DTS extrai dados da source Oracle e os grava no AnalyticDB for MySQL em três fases sequenciais:
Migração de schema — O DTS converte e cria as estruturas de tabelas no cluster de destino. As chaves estrangeiras não são migradas.
Migração completa de dados — O DTS copia todos os dados existentes da source para o destino. Operações INSERT simultâneas podem causar fragmentação de tabelas no cluster de destino.
Migração incremental de dados — O DTS lê redo logs e archive logs do Oracle para capturar alterações contínuas e aplicá-las ao destino quase em tempo real. Apenas operações DML (INSERT, UPDATE, DELETE) são capturadas.
Ao gravar no AnalyticDB for MySQL V3.0, o DTS converte automaticamente instruções UPDATE em REPLACE INTO. Operações UPDATE em uma chave primária são convertidas em DELETE + INSERT.
Pré-requisitos
Antes de começar, certifique-se de ter:
Um cluster AnalyticDB for MySQL V3.0 com armazenamento disponível superior ao tamanho total do banco de dados Oracle de source. Consulte Create a cluster.
O banco de dados Oracle de source executando no modo ARCHIVELOG, com arquivos de archive log acessíveis e um período de retenção adequado configurado. Consulte Managing archived redo log files.
-
Supplemental logging ativado no banco de dados Oracle de source, com
SUPPLEMENTAL_LOG_DATA_PKeSUPPLEMENTAL_LOG_DATA_UIdefinidos comoYes. Execute os seguintes comandos SQL no banco de dados Oracle de source para ativar o archive logging e o supplemental logging:-- Enable archive logging (requires ARCHIVELOG mode) -- Verify current mode: SELECT LOG_MODE FROM V$DATABASE; -- Enable supplemental logging at the database level ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; -- Enable primary key supplemental logging ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; -- Enable unique index supplemental logging ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS; -- Verify supplemental logging status SELECT SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI FROM V$DATABASE; -- Expected: SUPPLEMENTAL_LOG_DATA_PK = YES, SUPPLEMENTAL_LOG_DATA_UI = YESPara mais informações, consulte Supplemental logging e Configure an Oracle database.
Familiaridade com os recursos e limites do DTS para migração de bancos de dados Oracle. O Advanced Database & Application Migration (ADAM) é utilizado na avaliação do banco de dados para ajudar a garantir uma migração tranquila para a cloud. Consulte Prepare an Oracle database e Overview.
Uma conta de banco de dados no Oracle de source com as permissões necessárias. Consulte Permissões necessárias.
Uma conta de banco de dados no cluster AnalyticDB for MySQL V3.0 de destino com permissões de leitura e escrita.
Para versões suportadas do banco de dados Oracle, consulte Overview of data migration scenarios.
Permissões necessárias
Crie uma conta de banco de dados para cada banco e conceda as seguintes permissões antes de configurar a tarefa de migração. Pule esta etapa se as contas já existirem com essas permissões.
| Banco de dados | Migração de schema | Migração completa de dados | Migração incremental de dados |
|---|---|---|---|
| Banco de dados Oracle autogerenciado | Permissões de proprietário do schema | Permissões de proprietário do schema | Permissões refinadas |
| Cluster AnalyticDB for MySQL V3.0 | Permissões de leitura e escrita no banco de dados de destino | ||
Para criar uma conta e conceder permissões:
Banco de dados Oracle autogerenciado: Consulte Prepare a database account, CREATE USER e GRANT.
Cluster AnalyticDB for MySQL V3.0: Consulte Create a database account.
Limitações
Revise as limitações a seguir antes de configurar a tarefa.
Durante a migração de schema, o DTS não migra chaves estrangeiras da source para o destino.
Nas fases de migração completa e incremental de dados, o DTS desativa temporariamente as verificações de restrições e operações em cascata de chaves estrangeiras no nível da sessão. Operações de atualização e exclusão em cascata na source durante a migração podem causar inconsistência de dados.
Limitações do banco de dados de source
|
Categoria |
Limitação |
|
Largura de banda |
O servidor de source deve ter largura de banda de saída suficiente; caso contrário, a velocidade de migração diminui. |
|
Oracle RAC via Express Connect |
Especifique um endereço IP virtual (VIP) para o banco de dados. |
|
Oracle RAC via Express Connect, VPN Gateway, Smart Access Gateway, Database Gateway ou Cloud Enterprise Network (CEN) |
Use um único VIP em vez de um endereço IP Single Client Access Name (SCAN). Após especificar o VIP, o failover de nó não é suportado para o banco de dados Oracle RAC. |
|
String vazia VARCHAR2 |
O Oracle avalia uma string VARCHAR2 vazia como nula. Se o campo de destino tiver uma restrição NOT NULL, a tarefa de migração falhará. |
|
Restrições de tabela |
As tabelas devem ter restrições PRIMARY KEY ou UNIQUE com todos os campos únicos. Sem essas restrições, o destino poderá conter registros duplicados. |
|
Oracle 12c e posteriores |
Os nomes das tabelas não podem exceder 30 bytes. |
|
Limite de renomeação de tabela |
Se você selecionar tabelas como objetos de migração e precisar renomear tabelas ou colunas: uma única tarefa suporta até 1.000 tabelas. Para mais de 1.000 tabelas, configure várias tarefas ou migre o banco de dados inteiro. |
|
Migração incremental: retenção de log |
Redo logs e archive logs devem ser retidos por pelo menos 7 dias. Períodos de retenção menores podem causar falha na tarefa e, em casos excepcionais, inconsistência ou perda de dados. Se o período de retenção for insuficiente, o acordo de nível de service (SLA) do DTS não garante confiabilidade ou desempenho. |
|
Migração incremental: operações na source |
Não use o Oracle Data Pump para gravar dados na source durante a migração incremental. Pode ocorrer perda de dados. |
|
DDL durante a migração |
Não execute operações DDL que alterem schemas de banco de dados ou tabelas durante a migração de schema ou a migração completa de dados. A tarefa falhará. |
|
Migração completa de dados: gravações na source |
Não grave dados na source durante apenas a migração completa de dados (sem migração incremental). Pode ocorrer inconsistência de dados entre source e destino. |
Limitações do cluster de destino
|
Categoria |
Limitação |
|
Uso de disco |
Se o uso de disco em qualquer nó do cluster AnalyticDB for MySQL V3.0 exceder 80%, ocorrerá uma exceção na tarefa do DTS e a tarefa será atrasada. Estime o espaço necessário antes de iniciar e garanta que o cluster de destino tenha armazenamento suficiente. |
|
Chave primária |
Especifique uma chave primária personalizada no banco de dados de destino ou configure Primary Key Column durante a configuração dos campos da tabela. A ausência de chaves primárias pode causar falhas na migração. |
|
Conflito de backup |
Se o cluster de destino executar um backup enquanto a tarefa do DTS estiver ativa, a tarefa falhará. |
|
Tabelas externas |
Tabelas externas não podem ser migradas. |
|
Conjunto de caracteres |
Os conjuntos de caracteres dos bancos de dados de source e destino devem ser compatíveis. Conjuntos incompatíveis podem causar inconsistência de dados ou falha na tarefa. |
|
Fuso horário |
Os fusos horários dos bancos de dados de source e destino devem ser iguais. |
|
Recuperação de tarefa com falha |
O DTS tenta retomar tarefas com falha nos últimos 7 dias. Antes de alternar cargas de trabalho para o cluster de destino, pare ou libere tarefas com falha, ou execute a instrução |
|
Falhas na execução de DDL |
Se uma instrução DDL falhar no destino, a tarefa do DTS continuará em execução. Visualize as instruções com falha nos logs da tarefa. Consulte View task logs. |
|
Migração de schema |
Use o recurso de migração de schema do DTS para evitar falhas na tarefa causadas por tipos de dados incompatíveis. |
|
Impacto no desempenho |
A migração completa de dados aumenta a carga nos servidores de source e destino. Execute a migração fora do horário de pico. |
|
Fragmentação de tabela |
Operações INSERT simultâneas durante a migração completa de dados causam fragmentação de tabelas. Após a migração completa, o tablespace usado no destino será maior do que na source. |
|
Suporte técnico do DTS |
Se uma tarefa do DTS falhar, o suporte técnico tentará restaurá-la em até 8 horas. Durante a restauração, a tarefa pode ser reiniciada e parâmetros da tarefa (não parâmetros do banco de dados) podem ser modificados. Consulte Modify instance parameters para ver os parâmetros que podem ser modificados. |
Quando o AnalyticDB for MySQL é o destino, o DTS suporta a gravação dos tipos de dados básicos e complexos (ARRAY, MAP e JSON) do AnalyticDB for MySQL. Se a tabela de destino contiver colunas com tipos de dados não suportados pelo DTS, como MULTIVALUE, a tarefa de sincronização ou migração de dados poderá falhar. Para mais informações, consulte Basic data types.
Faturamento
|
Tipo de migração |
Taxa de configuração da instância |
Taxa de tráfego de Internet |
|
Migração de schema e migração completa de dados |
Gratuita |
Cobrada quando o Access Method do destino está definido como Public IP Address. Consulte Billing overview. |
|
Migração incremental de dados |
Cobrada. Consulte Billing overview. |
— |
Operações SQL suportadas para migração incremental
|
Tipo de operação |
Instruções SQL |
|
DML |
INSERT, UPDATE, DELETE |
Instruções UPDATE são convertidas em REPLACE INTO ao serem gravadas no AnalyticDB for MySQL V3.0. Operações UPDATE em chaves primárias são convertidas em DELETE + INSERT.
Mapeamentos de tipos de dados
Para mapeamentos de tipos de dados de Oracle para MySQL, consulte Data type mappings between heterogeneous databases.
Criar uma tarefa de migração
Este procedimento possui cinco etapas:
Acesse a página Data Migration.
Configure os bancos de dados de source e destino.
Configure os objetos de migração e as configurações avançadas.
Execute a pré-verificação e adquira a instância.
Monitore a tarefa de migração.
Etapa 1: Acessar a página Data Migration
Use um dos seguintes métodos para abrir a página Data Migration.
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
A operação real pode variar dependendo do modo e layout do console do DMS. Consulte Simple mode e Customize the layout and style of the DMS console .
Faça login no console do DMS.
Na barra de navegação superior, mova o ponteiro sobre Data + AI > DTS (DTS) > Data Migration.
Na lista suspensa à direita de Data Migration Tasks, selecione a região onde a instância de migração reside.
Etapa 2: Configurar os bancos de dados de source e destino
Clique em Create Task.
-
Configure o nome da tarefa e o banco de dados de source.
AvisoApós configurar os bancos de dados de source e destino, leia os Limits exibidos no topo da página antes de prosseguir.
Parâmetro
Descrição
Task Name
O DTS gera um nome automaticamente. Especifique um nome descritivo para identificar a tarefa. O nome não precisa ser único.
Select Existing Connection
Selecione uma instância de banco de dados registrada na lista ou configure a conexão manualmente.
Database Type
Selecione Oracle.
Access Method
Selecione o método de acesso para o banco de dados de source. Este exemplo usa Self-managed Database on ECS. Para outros métodos de acesso, consulte Preparation overview.
Instance Region
A região onde o banco de dados Oracle de source reside.
ECS Instance ID
O ID da instância Elastic Compute Service (ECS) que hospeda o banco de dados Oracle de source.
Port Number
A porta de service do banco de dados Oracle de source. Padrão: 1521.
Oracle Type
Selecione a arquitetura do banco de dados: Non-RAC Instance (requer SID) ou RAC or PDB Instance (requer Service Name). Este exemplo usa RAC or PDB Instance.
Database Account
A conta do banco de dados Oracle de source com as permissões necessárias.
Database Password
A senha da conta do banco de dados de source.
-
Configure o banco de dados de destino.
Parâmetro
Descrição
Select Existing Connection
Selecione uma instância de banco de dados registrada ou configure a conexão manualmente.
Database Type
Selecione AnalyticDB for MySQL 3.0.
Access Method
Selecione Alibaba Cloud Instance.
Instance Region
A região onde o cluster AnalyticDB for MySQL V3.0 de destino reside.
Instance ID
O ID do cluster de destino.
Database Account
A conta do banco de dados do cluster de destino com permissões de leitura e escrita.
Database Password
A senha da conta do banco de dados de destino.
-
Clique em Test Connectivity and Proceed, depois clique em Test Connectivity na caixa de diálogo CIDR Blocks of DTS Servers.
Certifique-se de que os blocos CIDR dos servidores DTS foram adicionados às configurações de segurança dos bancos de dados de source e destino. Consulte Add the CIDR blocks of DTS servers .
Etapa 3: Configurar objetos de migração e configurações avançadas
-
Na página Configure Objects, defina os parâmetros de migração.
Parâmetro Descrição Migration Types Selecione os tipos de migração conforme seus requisitos:
-
Schema Migration + Full Data Migration: migra dados existentes sem alterações incrementais.
-
Schema Migration + Full Data Migration + Incremental Data Migration: mantém o destino sincronizado durante a migração, permitindo uma transição suave sem tempo de inatividade.
NotaSe você pular a Schema Migration, crie as tabelas de destino manualmente e ative o mapeamento de nomes de objetos. Se pular a Incremental Data Migration, não grave na source durante a migração.
DDL and DML Operations to Be Synchronized As operações DDL ou DML a serem migradas. Para selecionar operações de uma tabela específica, clique com o botão direito na tabela em Selected Objects. Merge Tables No (padrão): migra tabelas sem mesclagem. Yes: adiciona uma coluna __dts_data_sourcea cada tabela e mescla todas as tabelas de source selecionadas em uma única tabela de destino. Consulte Enable the multi-table merging feature.AvisoNão execute alterações de schema DDL nas tabelas de source quando Merge Tables estiver ativado.
Processing Mode of Conflicting Tables Precheck and Report Errors (padrão): falha na pré-verificação se as tabelas de destino compartilharem nomes com as tabelas de source. Ignore Errors and Proceed: ignora a verificação de conflito de nomes. AvisoSelecionar Ignore Errors and Proceed pode resultar em inconsistência de dados. Durante a migração completa, registros conflitantes são mantidos no destino sem atualização. Durante a migração incremental, registros conflitantes são sobrescritos.
Capitalization of Object Names in Destination Instance Controla a capitalização dos nomes de bancos de dados, tabelas e colunas no destino. Padrão: DTS default policy. Consulte Specify the capitalization of object names in the destination instance. Source Objects Selecione os objetos a serem migrados e clique em
para movê-los para Selected Objects. Colunas, tabelas e bancos de dados são suportados.Selected Objects Clique com o botão direito em um objeto individual para renomeá-lo. Clique em Edit no canto superior direito para renomear vários objetos de uma vez. Consulte Database, table, and column name mapping. NotaRenomear um objeto pode fazer com que objetos dependentes falhem na migração. Para filtrar dados da tabela por condição, clique com o botão direito na tabela e especifique condições WHERE. Consulte Specify filter conditions.
-
-
Clique em Next: Advanced Settings e configure os parâmetros avançados.
Parâmetro Descrição Dedicated Cluster for Task Scheduling O DTS usa um cluster compartilhado por padrão. Para usar um cluster dedicado, adquira-o separadamente. Consulte What is a DTS dedicated cluster? Retry Time for Failed Connections Tempo durante o qual o DTS tenta reconectar após uma falha de conexão iniciada a tarefa. Valores válidos: 10–1.440 minutos. Padrão: 720 minutos. Defina como mais de 30 minutos. Se o DTS reconectar dentro desse período, a tarefa será retomada. Caso contrário, ela falhará. NotaQuando várias tarefas compartilham a mesma source ou destino, o último tempo de tentativa configurado se aplica a todas. O DTS cobra pela instância durante as tentativas.
Retry Time for Other Issues Tempo durante o qual o DTS tenta repetir operações DDL ou DML com falha. Valores válidos: 1–1.440 minutos. Padrão: 10 minutos. Defina como mais de 10 minutos. Deve ser menor que Retry Time for Failed Connections. Enable Throttling for Full Data Migration Limita o uso de recursos de leitura/escrita durante a migração completa de dados. 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 o uso de recursos 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 opcional para identificar a instância do DTS. Actual Write Code O formato de codificação para dados gravados no destino. Configure ETL Ativa o recurso de extração, transformação e carga (ETL). Consulte What is ETL? e Configure ETL in a data migration or data synchronization task. Monitoring and Alerting Configura alertas para falhas de tarefa ou latência acima de um limiar. Quando ativado, especifique o limiar de alerta e as configurações de notificação. Consulte Configure monitoring and alerting when you create a DTS task. Clique em Next Step: Data Verification para configurar a tarefa de verificação de dados. Consulte Configure a data verification task.
-
(Opcional) Clique em Next: Configure Database and Table Fields para definir o Type, Primary Key Column, Distribution Key, Partition Key, Partitioning Rules e Partition Lifecycle para cada tabela no cluster de destino.
Esta etapa está disponível apenas quando Schema Migration estiver selecionado. Defina Definition Status como All para visualizar e modificar todos os campos. A Primary Key Column suporta chaves primárias compostas (várias colunas). Especifique pelo menos uma coluna de chave primária como Distribution Key e Partition Key . Consulte CREATE TABLE .
Etapa 4: Executar a pré-verificação e adquirir a instância
-
Clique em Next: Save Task Settings and Precheck. O DTS executa uma pré-verificação antes de iniciar a migração. Resolva quaisquer falhas antes de prosseguir:
Para itens com falha, clique em View Details para ver a causa, corrija o problema e clique em Precheck Again.
Para itens de alerta que não podem ser ignorados, clique em View Details, corrija o problema e execute a pré-verificação novamente.
Para itens de alerta que podem ser ignorados, clique em Confirm Alert Details > Ignore > OK, depois clique em Precheck Again. Ignorar alertas pode resultar em inconsistência de dados.
Para visualizar os parâmetros da API desta configuração, passe o mouse sobre Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters .
Aguarde até que Success Rate atinja 100%, depois clique em Next: Purchase Instance.
-
Na página Purchase Instance, configure a classe da instância.
Parâmetro
Descrição
Resource Group
O grupo de recursos para a instância de migração. Padrão: default resource group. Consulte What is Resource Management?
Instance Class
A classe da instância determina a velocidade da migração. Consulte Instance classes of data migration instances.
Leia e aceite os Data Transmission Service (Pay-as-you-go) Service Terms, depois clique em Buy and Start > OK.
Etapa 5: Monitorar a tarefa de migração
Visualize o progresso da tarefa na página Data Migration.
Apenas migração completa (sem incremental): a tarefa para automaticamente quando concluída. O status mostra Completed.
Com migração incremental: a tarefa executa continuamente e não para automaticamente. O status mostra Running. Pare a tarefa manualmente após verificar a consistência dos dados e antes de alternar as cargas de trabalho para o cluster de destino.
Verificar resultados da migração
Depois que a tarefa atingir o status Completed ou antes de alternar para o cluster de destino, verifique se os dados foram migrados corretamente.
Conecte-se ao cluster AnalyticDB for MySQL V3.0 de destino.
-
Compare a contagem de linhas das tabelas principais entre a source e o destino:
-- Run on source Oracle database SELECT COUNT(*) FROM <schema_name>.<table_name>; -- Run on destination AnalyticDB for MySQL V3.0 cluster SELECT COUNT(*) FROM <table_name>; Verifique uma amostra de registros para confirmar a precisão dos dados.
Revise os logs da tarefa do DTS em busca de avisos ou erros. Consulte View task logs.
Para migrações heterogêneas que envolvem conversão de tipos de dados, sempre verifique tabelas críticas antes de realizar a transição.