Todos os produtos
Search
Central de documentação

Data Transmission Service:Sincronizar dados de um banco de dados Oracle auto-gerenciado para um projeto do MaxCompute

Última atualização: Oct 26, 2026

Use o Data Transmission Service (DTS) para sincronizar dados de um banco de dados Oracle auto-gerenciado com um projeto do MaxCompute. O DTS oferece suporte à sincronização de schema, sincronização completa de dados e sincronização incremental de dados (captura de alterações via redo logs e archived logs).

Como funciona

O DTS sincroniza dados em três fases sequenciais:

  1. Schema synchronization — O DTS cria as tabelas de destino no MaxCompute. Cada nome de tabela recebe o sufixo _base. Por exemplo, se a tabela de origem for customer, o DTS criará a tabela customer_base no MaxCompute.

  2. Full data synchronization — O DTS copia todas as linhas existentes do banco de dados Oracle de origem para as tabelas correspondentes com sufixo _base no MaxCompute.

  3. Incremental data synchronization — O DTS lê os redo logs e archived logs do Oracle e grava os registros de alteração em uma tabela separada de dados incrementais no MaxCompute. O nome da tabela de dados incrementais recebe o sufixo _log. Por exemplo, as alterações na tabela customer são gravadas em customer_log.

Faturamento

Tipo de sincronização

Taxa

Sincronização de schema e sincronização completa de dados

Gratuito

Sincronização incremental de dados

Pago. Para mais informações, consulte Visão geral do faturamento.

Operações SQL suportadas

Tipo de operação

Instruções SQL

DML (linguagem de manipulação de dados)

INSERT, UPDATE, DELETE

DDL (linguagem de definição de dados)

ADD COLUMN (colunas de atributo não suportadas)

Nota

O DTS não sincroniza chaves estrangeiras. As operações em cascata e de exclusão no banco de dados de origem não são replicadas para o destino.

Pré-requisitos

Antes de começar, certifique-se de ter:

Limitações

Requisitos do banco de dados de origem

  • As tabelas devem possuir uma chave primária ou chave única, com todos os campos únicos. Caso contrário, linhas duplicadas poderão aparecer no destino.

  • Oracle 12c e versões posteriores: os nomes das tabelas não podem exceder 30 bytes.

  • Ao renomear tabelas ou colunas no destino (Selected Objects > clique com o botão direito), uma única tarefa suporta até 1,000 tables. Para cargas de trabalho maiores, divida as tabelas em várias tarefas ou sincronize todo o banco de dados sem renomeação.

  • Oracle Real Application Cluster (RAC): utilize um endereço IP virtual (VIP), e não um endereço IP Single Client Access Name (SCAN). Após especificar o VIP, o failover de nó não é suportado.

  • Se o banco de dados Oracle RAC se conectar via Express Connect, especifique um VIP ao configurar a tarefa.

Requisitos de retenção de logs

Os redo logs e archived logs devem atender aos seguintes períodos mínimos de retenção:

Modo de sincronização

Período mínimo de retenção

Apenas sincronização incremental de dados

24 horas

Sincronização completa de dados + sincronização incremental de dados

7 dias

Se os logs forem limpos antes que o DTS possa lê-los, a tarefa falhará. Em casos extremos, pode ocorrer inconsistência ou perda de dados. Após a conclusão da sincronização completa de dados, você poderá reduzir o período de retenção para 24 horas.

Importante

Períodos de retenção inferiores a esses mínimos podem fazer com que o DTS perca dados de log, o que pode comprometer as garantias do Acordo de Nível de Serviço (SLA).

Outras limitações

  • Não execute um failover entre primário e secundário enquanto a tarefa estiver em execução, pois isso causará falha na tarefa.

  • Strings VARCHAR2 vazias (tratadas como NULL pelo Oracle) causam falhas se a coluna correspondente no destino tiver uma restrição NOT NULL.

  • Tabelas com a política Fine-Grained Audit (FGA) habilitada: o DTS não consegue ler a pseudocoluna ORA_ROWSCN e a tarefa falha. Desative a política FGA nas tabelas afetadas ou exclua-as da sincronização.

  • Evite atualizar campos LONGTEXT durante a execução da sincronização.

  • Não execute operações DDL durante a sincronização de schema ou a sincronização inicial completa de dados.

  • Não utilize o Oracle Data Pump para gravar no banco de dados de origem durante a sincronização incremental de dados, pois isso pode resultar em perda de dados.

  • Tabelas externas não podem ser sincronizadas.

  • O MaxCompute não suporta restrições de chave primária. Se ocorrerem erros de rede durante a sincronização, o DTS poderá gravar linhas duplicadas no MaxCompute.

  • Grave no projeto MaxCompute de destino apenas por meio do DTS para evitar inconsistência de dados.

  • Caso o DTS precise recuperar uma instância com falha, o processo pode levar até 8 horas e envolver a reinicialização da instância ou o ajuste de parâmetros da instância DTS (parâmetros do banco de dados não são modificados). Para visualizar os parâmetros que podem ser alterados, consulte Modificar parâmetros da instância.

Considerações de desempenho

  • Realize a sincronização de dados fora dos horários de pico. A sincronização completa de dados consome recursos de leitura e gravação tanto nos bancos de dados de origem quanto nos de destino.

  • Após a sincronização completa de dados, o tablespace de destino pode ficar maior que o de origem devido à fragmentação causada por operações INSERT concorrentes.

  • A latência de sincronização é calculada com base no timestamp do registro sincronizado mais recente no destino em comparação com o timestamp atual na origem. Se nenhuma operação DML for executada na origem por um longo período, a leitura da latência pode ser imprecisa. Execute uma operação DML na origem para atualizá-la ou ative uma tabela de heartbeat caso esteja sincronizando um banco de dados inteiro.

Permissões necessárias para a conta do banco de dados

Banco de dados

Permissões necessárias

Referência

Banco de dados Oracle auto-gerenciado

Permissões refinadas

Prepare a database account, CREATE USER, GRANT

Importante

Para sincronizar dados incrementais, o archive logging e o supplemental logging devem estar habilitados no banco de dados Oracle. Consulte Configure an Oracle database.

Criar uma tarefa de sincronização de dados

Etapa 1: Abrir a página Data Synchronization

Utilize um dos consoles a seguir para iniciar:

Console do DTS

  1. Faça login no console do DTS.console do DTS

  2. No painel de navegação à esquerda, clique em Data Synchronization.

  3. No canto superior esquerdo, selecione a região onde a tarefa de sincronização de dados será executada.

Console do DMS

Nota

O caminho exato de navegação pode variar dependendo do modo do console do DMS. Consulte Modo simples e Personalizar o layout e o estilo do console do DMS.

  1. Faça login no console do DMS.console do DMS

  2. Na barra de navegação superior, passe o ponteiro sobre Data + AI e escolha DTS (DTS) > Data Synchronization.

  3. Na lista suspensa ao lado de Data Synchronization Tasks, selecione a região onde a tarefa será executada.

Etapa 2: Configurar os bancos de dados de origem e de destino

Clique em Create Task para abrir a página de configuração da tarefa. Configure os parâmetros conforme descrito abaixo:

Seção Parâmetro Descrição
N/A Task Name Nome da tarefa do DTS. O DTS gera um nome automaticamente. Especifique um nome descritivo para facilitar a identificação. Os nomes das tarefas não precisam ser únicos.
Source Database Select Existing Connection Selecione uma instância de banco de dados registrada na lista suspensa para preencher automaticamente os parâmetros de conexão. Se a instância não estiver registrada, configure os parâmetros manualmente.
Database Type Selecione Oracle.
Access Method Selecione o método correspondente ao local onde o banco de dados Oracle está implantado. Este exemplo utiliza Self-managed Database on ECS. Para outros métodos de acesso, consulte Preparation overview.
Instance Region Região onde reside o banco de dados Oracle de origem.
ECS Instance ID ID da instância ECS que executa o banco de dados Oracle de origem.
Port Number Porta de service do Oracle. Padrão: 1521.
Oracle Type Non-RAC Instance: requer o SID (ID do sistema). RAC or PDB Instance: requer o Service Name. Este exemplo utiliza RAC or PDB Instance com um Service Name.
Database Account Conta do Oracle. Para as permissões necessárias, consulte Required database account permissions.
Database Password Senha da conta do Oracle.
Destination Database Select Existing Connection Selecione uma instância de banco de dados registrada na lista suspensa para preencher automaticamente os parâmetros de conexão. Se a instância não estiver registrada, configure os parâmetros manualmente.
Database Type Selecione MaxCompute.
Access Method Selecione Alibaba Cloud Instance.
Instance Region Região onde reside o projeto MaxCompute de destino.
Project Nome do projeto MaxCompute de destino.
AccessKey ID of Alibaba Cloud Account AccessKey ID do par de AccessKey preparado na seção de pré-requisitos.
AccessKey Secret of Alibaba Cloud Account AccessKey secret do par de AccessKey preparado na seção de pré-requisitos.

Etapa 3: Testar a 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

Os blocos CIDR dos servidores DTS devem ser adicionados às configurações de segurança dos bancos de dados de origem e de destino. Isso pode ser feito automática ou manualmente. Consulte Adicionar endereços IP de servidores DTS a uma lista de permissões.

Clique em OK para conceder permissões à sua conta do MaxCompute e, em seguida, clique em Test Connectivity and Proceed.

Etapa 4: Configurar objetos para sincronização

Na etapa Configure Objects, defina os seguintes parâmetros:

Parâmetro

Descrição

Synchronization Types

A opção Incremental Data Synchronization vem selecionada por padrão. Selecione também Schema Synchronization e Full Data Synchronization para executar todas as três fases.

Naming Rules of Additional Columns

O DTS adiciona colunas extras às tabelas de destino. Se o nome de uma coluna adicional entrar em conflito com uma coluna existente, a tarefa falhará e poderá ocorrer perda de dados. Escolha New Rule ou Previous Rule conforme suas necessidades. Verifique se há conflitos de nomenclatura antes de definir este parâmetro. Consulte Naming rules for additional columns.

Partition Definition of Incremental Data Table

Selecione os nomes das partições de acordo com seus requisitos. Consulte Partition.

Processing Mode of Conflicting Tables

Precheck and Report Errors (padrão): verifica se existem nomes de tabelas idênticos na origem e no destino. A pré-verificação falha se houver conflitos. Para resolver conflitos, utilize o recurso de mapeamento de nomes de objetos para renomear as tabelas de destino. Consulte Mapear nomes de objetos. Ignore Errors and Proceed: ignora a verificação de conflitos. Durante a sincronização completa, os registros existentes no destino são mantidos; durante a sincronização incremental, os registros existentes são sobrescritos. Se os schemas forem diferentes, a inicialização poderá falhar ou apenas algumas colunas serão sincronizadas.

Capitalization of Object Names in Destination Instance

Controla o uso de maiúsculas e minúsculas nos nomes de bancos de dados, tabelas e colunas no destino. Padrão: DTS default policy. Consulte Especificar o uso de maiúsculas e minúsculas nos nomes de objetos na instância de destino.

Source Objects

Selecione uma ou mais tabelas e clique em 向右 para adicioná-las aos Selected Objects. Apenas tabelas podem ser sincronizadas.

Selected Objects

Para renomear um único objeto: clique com o botão direito nele e especifique um novo nome. Consulte Mapear o nome de um único objeto. Para renomear vários objetos: clique em Batch Edit. Consulte Mapear vários nomes de objetos de uma vez. Para filtrar linhas: clique com o botão direito na tabela e defina as condições de filtro. Consulte Specify filter conditions. Renomear um objeto pode causar falha na sincronização de outros objetos dependentes.

Etapa 5: Configurar definições avançadas

Clique em Next: Advanced Settings e configure os itens a seguir:

Parâmetro

Descrição

Dedicated Cluster for Task Scheduling

Por padrão, o DTS agenda tarefas em um cluster compartilhado. Adquira um cluster dedicado para obter maior estabilidade. 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. Valores válidos: 10–1440 minutos. Padrão: 720 minutos. Defina este valor para pelo menos 30 minutos. Se várias tarefas compartilharem o mesmo banco de dados de origem ou de destino, o menor tempo de nova tentativa será aplicado. O DTS cobra pela instância durante as novas tentativas.

Retry Time for Other Issues

Tempo durante o qual o DTS tenta novamente após uma falha de DDL ou DML. Valores válidos: 1–1440 minutos. Padrão: 10 minutos. Defina este valor como superior a 10 minutos e inferior ao valor de Retry Time for Failed Connections.

Enable Throttling for Full Data Synchronization

Limite a velocidade da sincronização completa para reduzir a carga nos servidores de banco de dados. Configure QPS (queries per second) to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s). Disponível apenas quando Full Data Synchronization estiver selecionado.

Enable Throttling for Incremental Data Synchronization

Limite a velocidade da sincronização incremental configurando RPS of Incremental Data Synchronization e Data synchronization speed for incremental synchronization (MB/s).

Actual Write Code

Formato de codificação para os dados gravados no destino. Selecione conforme suas necessidades.

Environment Tag

Uma tag opcional para identificar a instância do DTS.

Configure ETL

Habilita o recurso de extração, transformação e carregamento (ETL). Selecione Yes para inserir instruções de processamento de dados no editor de código. Consulte Configurar ETL em uma tarefa de migração ou sincronização de dados. Selecione No para pular. Consulte também O que é ETL?

Monitoring and Alerting

Configure alertas para falhas de tarefa ou alta latência de sincronização. Selecione Yes e defina o limiar de alerta e os contatos de notificação. Consulte Configurar monitoramento e alertas ao criar uma tarefa do DTS.

Etapa 6: Executar a pré-verificação

Clique em Next: Save Task Settings and Precheck.

Nota

Para visualizar os parâmetros da API desta configuração de tarefa, passe o mouse sobre o botão e clique em Preview OpenAPI parameters.

O DTS executa uma pré-verificação antes que a tarefa possa ser iniciada. Se a pré-verificação falhar:

  • Clique em View Details ao lado de cada item com falha, resolva o problema e clique em Precheck Again.

  • Para itens de alerta que podem ser ignorados: clique em Confirm Alert Details, depois em Ignore na caixa de diálogo, em seguida em OK e finalmente em Precheck Again. Alertas ignorados podem resultar em inconsistência de dados.

Etapa 7: Adquirir uma instância de sincronização de dados

  1. Aguarde até que a Success Rate atinja 100% e clique em Next: Purchase Instance.

  2. Na página buy, configure os seguintes itens:

    Seção Parâmetro Descrição
    New Instance Class Billing Method Subscription: pagamento antecipado por um período fixo — mais econômico para uso de longo prazo. Pay-as-you-go: faturamento por hora — adequado para uso de curto prazo. Libere a instância quando não for mais necessária para interromper as cobranças.
    Resource Group Settings Grupo de recursos da instância. Padrão: default resource group. Consulte O que é Resource Management?
    Instance Class Classe de throughput de sincronização. Consulte Classes de instâncias de sincronização de dados.
    Subscription Duration Disponível para o método de faturamento Subscription. Opções: 1–9 meses, 1 ano, 2 anos, 3 anos ou 5 anos.
  3. Leia e aceite os Data Transmission Service (Pay-as-you-go) Service Terms.

  4. Clique em Buy and Start e, em seguida, clique em OK na caixa de diálogo de confirmação.

A tarefa aparecerá na lista de tarefas. Acompanhe o progresso por meio dessa lista.

Schema da tabela de dados incrementais

Nota

Execute set odps.sql.allow.fullscan=true; no MaxCompute para permitir varreduras completas de tabela no projeto.

O DTS grava registros de alterações incrementais na tabela _log no MaxCompute. Cada linha na tabela de dados incrementais representa um evento de alteração e inclui os seguintes campos de metadados, além das colunas da tabela de origem:

Campo

Descrição

record_id

Identificador exclusivo para a entrada de log. Incrementa automaticamente para cada nova entrada. Para uma operação UPDATE, o DTS gera duas entradas (valores pré-atualização e pós-atualização) com o mesmo record_id.

operation_flag

Tipo de operação: I (INSERT), D (DELETE) ou U (UPDATE).

utc_timestamp

Timestamp da operação em UTC. Também corresponde ao timestamp do arquivo de binary log.

before_flag

Indica se a linha contém valores pré-atualização: Y ou N.

after_flag

Indica se a linha contém valores pós-atualização: Y ou N.

Próximos passos