Todos os produtos
Search
Central de documentação

Data Transmission Service:Migrar dados de um banco de dados Oracle autogerenciado para o PolarDB-X 2.0

Última atualização: Jun 27, 2026

O Data Transmission Service (DTS) migra dados de um banco de dados Oracle autogerenciado para uma instância do PolarDB-X 2.0 usando migração completa de dados, migração incremental de dados ou ambas. A combinação dos dois tipos de migração mantém o banco de dados source online durante todo o processo.

Pré-requisitos

Antes de começar, verifique se:

  • A versão do banco de dados Oracle é 9i, 10g, 11g, 12c, 18c ou 19c

  • O log suplementar (SUPPLEMENTAL_LOG_DATA_PK e SUPPLEMENTAL_LOG_DATA_UI) está ativado no banco de dados Oracle. Para mais informações, consulte Supplemental Logging

  • O banco de dados Oracle opera no modo ARCHIVELOG, os arquivos de log arquivados estão acessíveis e há um período de retenção adequado configurado. Para mais informações, consulte Managing Archived Redo Log Files

  • A porta de serviço do banco de dados Oracle está acessível pela Internet

  • A instância de destino PolarDB-X 2.0 foi criada e o mecanismo de banco de dados é MySQL 5.x. Para mais informações, consulte Criar instâncias do PolarDB-X

  • Os bancos de dados na instância de destino PolarDB-X 2.0 foram criados com base em instâncias do ApsaraDB RDS for MySQL. O DTS não suporta bancos de dados PolarDB-X 2.0 criados com base em clusters do PolarDB for MySQL

  • O espaço de armazenamento disponível nas instâncias do ApsaraDB RDS for MySQL é maior que o tamanho total dos dados do banco de dados Oracle

  • Bancos de dados e tabelas foram criados manualmente na instância de destino PolarDB-X 2.0 com base nos tipos de dados das tabelas a serem migradas do banco de dados Oracle source. Não há suporte para migração de esquema entre bancos de dados Oracle e instâncias do PolarDB-X 2.0. Para mais informações, consulte Criar um banco de dados e Operações básicas de SQL

Os tipos de dados do Oracle e do PolarDB-X não possuem correspondência direta. Defina os tipos de dados correspondentes na instância de destino PolarDB-X antes da migração. Para mais informações, consulte Mapeamento de tipos de dados entre bancos de dados heterogêneos .

Limitações

  • Impacto no desempenho: Durante a migração completa de dados, o DTS consome recursos de leitura e gravação em ambos os bancos de dados. Execute a migração em horários de baixa demanda, quando a utilização da CPU estiver abaixo de 30% em ambos os bancos de dados.

  • Chave primária ou restrição única obrigatória: As tabelas a serem migradas devem ter restrições PRIMARY KEY ou UNIQUE, e todos os campos devem ser únicos. Caso contrário, o banco de dados de destino poderá conter registros duplicados.

  • Oracle RAC com VPC: Se o banco de dados Oracle utilizar uma arquitetura Real Application Cluster (RAC) e se conectar ao DTS por meio de uma virtual private cloud (VPC), conecte o endereço IP do Single Client Access Name (SCAN) e o endereço IP virtual (VIP) de cada nó RAC à VPC e configure as rotas. Para mais informações, consulte Conectar um data center ao DTS usando o VPN Gateway.

    Importante

    Ao configurar o banco de dados Oracle source no console do DTS, especifique o endereço IP SCAN como o endpoint ou endereço IP do banco de dados.

  • Risco de retomada automática: Se uma tarefa de migração falhar e o DTS a retomar automaticamente, pare ou libere a tarefa antes de alternar as cargas de trabalho para o destino. Caso contrário, a atividade da tarefa retomada sobrescreverá os dados de destino com os dados do source.

  • String vazia VARCHAR2: Se um campo VARCHAR2 no Oracle contiver uma string vazia (avaliada como nula no Oracle) e o campo correspondente no destino tiver uma restrição NOT NULL, a tarefa de migração falhará.

  • Chaves estrangeiras: A migração de esquema transfere chaves estrangeiras do source para o destino. Durante a migração 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 source durante a migração, poderá ocorrer inconsistência de dados.

Faturamento

Tipo de migração

Taxa de configuração da tarefa

Taxa de tráfego na Internet

Migração de esquema e migração completa de dados

Gratuita

Cobrada apenas ao migrar da Alibaba Cloud pela Internet. Consulte Visão geral do faturamento.

Migração incremental de dados

Paga. Consulte Visão geral do faturamento.

—

Escolher um caminho de migração

Selecione um caminho de migração com base na tolerância a tempo de inatividade:

Caminho

Tipos de migração a selecionar

Quando usar

Apenas migração completa

Migração de Esquema + Migração Completa de Dados

Tempo de inatividade aceitável; interrompa as gravações no source antes de migrar

Migração sem tempo de inatividade

Migração de Esquema + Migração Completa de Dados + Migração Incremental de Dados

O source deve permanecer online durante toda a migração

A migração incremental de dados suporta apenas operações INSERT, DELETE e UPDATE. Não é possível migrar operações DDL incrementalmente.

Como funciona a migração incremental de dados

O DTS recupera arquivos de redo log do banco de dados Oracle e aplica as alterações ao PolarDB-X 2.0 em tempo real. Isso mantém o destino sincronizado enquanto o source continua a atender tráfego, permitindo um corte com tempo de inatividade próximo de zero.

Para migração completa sem migração incremental, evite gravar no banco de dados Oracle source durante a migração para manter a consistência dos dados entre o source e o destino.

Permissões necessárias

Permissões da conta do banco de dados Oracle

Tipo de migração

Permissão necessária

Migração completa de dados

Permissões de proprietário do esquema

Migração incremental de dados

Permissões de administrador de banco de dados (DBA)

Para obter instruções sobre como criar uma conta Oracle e conceder permissões, consulte CREATE USER e GRANT.

Permissões da conta do PolarDB-X 2.0

Tanto para a migração completa quanto para a incremental, a conta do banco de dados deve ter permissões de gravação no banco de dados de destino. Para mais informações, consulte Gerenciar contas.

Criar uma tarefa de migração

  1. Acesse a página Data Migration Tasks.

    1. Faça login no console do Data Management (DMS).

    2. Na barra de navegação superior, passe o ponteiro sobre DTS.

    3. Escolha DTS (DTS) > Data Migration.

    As opções de navegação variam conforme o modo e o layout do console DMS. Para mais informações, consulte Modo simples e Personalizar o layout e o estilo do console DMS . Você também pode acessar diretamente a página Data Migration do console DTS .
  2. Na lista suspensa no lado direito de Data Migration Tasks, selecione a região onde reside sua instância de migração.

    No novo console do DTS, selecione a região no canto superior esquerdo.
  3. Clique em Create Task e configure os bancos de dados source e de destino.

    Source Database

    Parâmetro

    Descrição

    Task Name

    Nome da tarefa do DTS. O DTS gera um nome automaticamente. Use um nome descritivo para facilitar a identificação. O nome não precisa ser único.

    Database Type

    Selecione Oracle.

    Access Method

    Selecione o método de acesso com base no local de implantação do banco de dados source. Este exemplo usa Self-managed Database on ECS. Para requisitos de rede de implantação, consulte Visão geral da preparação.

    Instance Region

    Região onde reside o banco de dados Oracle source.

    ECS Instance ID

    ID da instância ECS que hospeda o banco de dados Oracle.

    Port Number

    Porta de serviço do banco de dados Oracle. Padrão: 1521.

    Oracle Type

    Tipo de arquitetura Oracle. Este exemplo usa RAC or PDB Instance. Selecione Non-RAC Instance para especificar um SID, ou RAC or PDB Instance para especificar um Service Name.

    Database Account

    Conta do banco de dados Oracle source.

    Database Password

    Senha da conta do banco de dados.

    Destination Database

    Parâmetro

    Descrição

    Database Type

    Selecione PolarDB-X 2.0.

    Access Method

    Selecione Alibaba Cloud Instance.

    Instance Region

    Região onde reside a instância de destino PolarDB-X 2.0.

    Instance ID

    ID da instância de destino PolarDB-X 2.0.

    Database Account

    Conta do banco de dados da instância de destino.

    Database Password

    Senha da conta do banco de dados.

  4. Clique em Test Connectivity and Proceed.

    Aviso

    O DTS adiciona automaticamente seus blocos CIDR de servidor às configurações de segurança das instâncias de banco de dados da Alibaba Cloud e aos grupos de segurança do ECS. Para bancos de dados autogerenciados em data centers ou nuvens de terceiros, adicione manualmente os blocos CIDR do servidor DTS à lista de permissões do banco de dados. Para os blocos CIDR a serem adicionados, consulte Adicionar os blocos CIDR dos servidores DTS. Adicionar blocos CIDR do DTS a listas de permissões ou grupos de segurança introduz exposição de segurança. Antes de prosseguir, tome medidas preventivas, como fortalecer credenciais de conta, limitar portas expostas, autenticar chamadas de API e auditar regras de lista de permissões regularmente. Você também pode conectar o banco de dados ao DTS usando Express Connect, VPN Gateway ou Smart Access Gateway. Após a conclusão ou liberação da tarefa de migração, remova os blocos CIDR do DTS das regras da lista de permissões ou do grupo de segurança.

  5. Selecione os objetos a serem migrados e defina as configurações da tarefa.

    Configurações básicas

    Parâmetro

    Descrição

    Synchronization Types

    Selecione os tipos de migração com base no caminho escolhido: Schema Migration + Full Data Migration para apenas migração completa, ou adicione Incremental Data Migration para migração sem tempo de inatividade.

    Processing Mode of Conflicting Tables

    Precheck and Report Errors: Verifica se existem tabelas no destino com os mesmos nomes das tabelas do source. A pré-verificação falha se houver conflitos, impedindo o início da tarefa. Use o recurso de mapeamento de nomes de objetos para renomear tabelas conflitantes. Ignore Errors and Proceed: Ignora a verificação de conflito de nomes. Durante a migração completa, registros conflitantes são ignorados e os registros existentes no destino são mantidos. Durante a migração incremental, registros conflitantes sobrescrevem os registros de destino. Use com cautela.

    Source Objects

    Selecione objetos na seção Source Objects e clique no ícone de seta para movê-los para Selected Objects.

    Selected Objects

    Para renomear um único objeto, clique com o botão direito nele em Selected Objects. Para renomear vários objetos de uma vez, clique em Batch Edit. Para detalhes, consulte Mapear nomes de objetos. Renomear um objeto pode causar falha na migração de objetos dependentes.

    Configurações avançadas

    Parâmetro

    Descrição

    Monitoring and Alerting

    Selecione Yes para receber notificações quando a tarefa falhar ou a latência da migração exceder o limiar. Configure o limiar de alerta e as configurações de notificação. Selecione No para ignorar alertas. Para detalhes de configuração, consulte Configurar monitoramento e alertas.

    Retry Time for Failed Connections

    Intervalo de tempo durante o qual o DTS tenta reconectar após falhas. Faixa: 10–1440 minutos. Padrão: 120 minutos. Recomendamos definir este parâmetro com um valor superior a 30 minutos. Se o DTS reconectar dentro da janela de tentativas, a tarefa será retomada automaticamente; caso contrário, ela falhará. Diferentes configurações de tentativa em tarefas que compartilham uma instância source ou de destino utilizam o valor definido mais recentemente. O DTS cobra pela instância durante os períodos de tentativa.

    Configure ETL

    Selecione Yes para configurar o processamento de extração, transformação e carga (ETL) e inserir instruções de processamento de dados. Selecione No para ignorar o ETL. Para mais informações, consulte O que é ETL? e Configurar ETL em uma tarefa de migração ou sincronização de dados.

  6. Clique em Next: Save Task Settings and Precheck.

    O DTS executa uma pré-verificação antes de iniciar a migração. Se algum item falhar, clique em View Details para identificar a causa, corrigir o problema e executar a pré-verificação novamente. Se um item gerar um alerta que possa ser ignorado com segurança, clique em Confirm Alert Details , depois em Ignore na caixa de diálogo e clique em Precheck Again . Ignorar itens de alerta pode causar inconsistência de dados.
  7. Aguarde até que a Success Rate atinja 100% e clique em Next: Purchase Instance.

  8. Na página Purchase Instance, configure a classe da instância.

    Parâmetro

    Descrição

    Resource Group

    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. Escolha com base no volume de dados e nos requisitos de desempenho. Consulte Classes de instâncias de migração de dados.

  9. Leia e selecione Data Transmission Service (Pay-as-you-go) Service Terms.

  10. Clique em Buy and Start. Na caixa de diálogo de confirmação, clique em OK.

Acompanhe o progresso da tarefa na página Data Migration.

Próximos passos

As contas de banco de dados usadas para migração possuem permissões de leitura e gravação. Após a conclusão da migração, exclua as contas tanto do banco de dados Oracle source quanto da instância de destino PolarDB-X 2.0 para reduzir a exposição de segurança.

Ativar logs e conceder permissões refinadas a uma conta de banco de dados Oracle

Importante

Se você deseja migrar dados de um banco de dados Oracle, mas não é possível conceder a permissão de administrador de banco de dados (DBA) à conta, ative o log de arquivamento e o log suplementar e conceda permissões refinadas à conta.

  1. Ative o log de arquivamento e o log suplementar.

    Tipo

    Procedimento

    Log de arquivamento

    Execute as seguintes instruções para ativar o log de arquivamento:

    shutdown immediate;
    startup mount;
    alter database archivelog;
    alter database open;
    archive log list;

    Log suplementar

    Ative o log suplementar no nível do banco de dados ou da tabela conforme seus requisitos de negócio:

    Nota

    Você pode ativar o log suplementar no nível do banco de dados para garantir a estabilidade das tarefas do Data Transmission Service (DTS). É possível ativar o log suplementar no nível da tabela para reduzir o uso de disco do banco de dados Oracle source.

    • Ativar log suplementar no nível do banco de dados

      1. Execute a seguinte instrução para ativar o log suplementar mínimo:

        alter database add supplemental log data;
      2. Execute a seguinte instrução para ativar o log suplementar de chave primária e chave única no nível do banco de dados:

        alter database add supplemental log data (primary key,unique index) columns;
    • Ativar log suplementar no nível da tabela

      1. Execute a seguinte instrução para ativar o log suplementar mínimo:

        alter database add supplemental log data;
      2. Ative o log suplementar no nível da tabela usando um dos seguintes métodos:

        • Ativar log suplementar de chave primária no nível da tabela

          alter table table_name add supplemental log data (primary key) columns;
        • Ativar log suplementar no nível da tabela para todas as colunas

          alter table tb_name add supplemental log data (all) columns;

    Log forçado

    Execute as seguintes instruções para ativar o log forçado:

    alter database force logging;
  2. Conceda permissões refinadas a uma conta de banco de dados Oracle.

    Oracle versões 9i a 11g

    # Create a database account named rdsdt_dtsacct and grant permissions to the account.
    create user rdsdt_dtsacct IDENTIFIED BY rdsdt_dtsacct;
    grant create session to rdsdt_dtsacct;
    grant connect to rdsdt_dtsacct;
    grant resource to rdsdt_dtsacct;
    grant execute on sys.dbms_logmnr to rdsdt_dtsacct;
    grant select on V_$LOGMNR_LOGS to rdsdt_dtsacct;
    grant select on  all_objects to rdsdt_dtsacct;
    grant select on  all_tab_cols to rdsdt_dtsacct;
    grant select on  dba_registry to rdsdt_dtsacct;
    grant select any table to rdsdt_dtsacct;
    grant select any transaction to rdsdt_dtsacct;
    -- v$log privileges
    grant select on v_$log to rdsdt_dtsacct;
    -- v$logfile privileges
    grant select on v_$logfile to rdsdt_dtsacct;
    -- v$archived_log privileges
    grant select on v_$archived_log to rdsdt_dtsacct;
    -- v$parameter privileges
    grant select on v_$parameter to rdsdt_dtsacct;
    -- v$database privileges
    grant select on v_$database to rdsdt_dtsacct;
    -- v$active_instances privileges
    grant select on v_$active_instances to rdsdt_dtsacct;
    -- v$instance privileges
    grant select on v_$instance to rdsdt_dtsacct;
    -- v$logmnr_contents privileges
    grant select on v_$logmnr_contents to rdsdt_dtsacct;
    -- system tables
    grant select on sys.USER$ to rdsdt_dtsacct;
    grant select on SYS.OBJ$ to rdsdt_dtsacct;
    grant select on SYS.COL$ to rdsdt_dtsacct;
    grant select on SYS.IND$ to rdsdt_dtsacct;
    grant select on SYS.ICOL$ to rdsdt_dtsacct;
    grant select on SYS.CDEF$ to rdsdt_dtsacct;
    grant select on SYS.CCOL$ to rdsdt_dtsacct;
    grant select on SYS.TABPART$ to rdsdt_dtsacct;
    grant select on SYS.TABSUBPART$ to rdsdt_dtsacct;
    grant select on SYS.TABCOMPART$ to rdsdt_dtsacct;
    grant select_catalog_role TO rdsdt_dtsacct;

    Oracle 12c a 19c (multilocatário)

    # Switch to the pluggable database (PDB). Create a database account named rdsdt_dtsacct and grant permissions to the account.
    ALTER SESSION SET container = ORCLPDB1;
    create user rdsdt_dtsacct IDENTIFIED BY rdsdt_dtsacct;
    grant create  session to rdsdt_dtsacct;
    grant connect  to rdsdt_dtsacct;
    grant resource to rdsdt_dtsacct;
    grant execute on sys.dbms_logmnr to rdsdt_dtsacct;
    grant select on  all_objects to rdsdt_dtsacct;
    grant select on  all_tab_cols to rdsdt_dtsacct;
    grant select on  dba_registry to rdsdt_dtsacct;
    grant select any table to rdsdt_dtsacct;
    grant select any transaction to rdsdt_dtsacct;
    -- v$log privileges
    grant select on v_$log to rdsdt_dtsacct;
    -- v$logfile privileges
    grant select on v_$logfile to rdsdt_dtsacct;
    -- v$archived_log privileges
    grant select on v_$archived_log to rdsdt_dtsacct;
    -- v$parameter privileges
    grant select on v_$parameter to rdsdt_dtsacct;
    -- v$database privileges
    grant select on v_$database to rdsdt_dtsacct;
    -- v$active_instances privileges
    grant select on v_$active_instances to rdsdt_dtsacct;
    -- v$instance privileges
    grant select on v_$instance to rdsdt_dtsacct;
    -- v$logmnr_contents privileges
    grant select on v_$logmnr_contents to rdsdt_dtsacct;
    grant select on sys.USER$ to rdsdt_dtsacct;
    grant select on SYS.OBJ$ to rdsdt_dtsacct;
    grant select on SYS.COL$ to rdsdt_dtsacct;
    grant select on SYS.IND$ to rdsdt_dtsacct;
    grant select on SYS.ICOL$ to rdsdt_dtsacct;
    grant select on SYS.CDEF$ to rdsdt_dtsacct;
    grant select on SYS.CCOL$ to rdsdt_dtsacct;
    grant select on SYS.TABPART$ to rdsdt_dtsacct;
    grant select on SYS.TABSUBPART$ to rdsdt_dtsacct;
    grant select on SYS.TABCOMPART$ to rdsdt_dtsacct;
    -- V$PDBS privileges
    grant select on V_$PDBS to rdsdt_dtsacct;
    grant select on v$database to rdsdt_dtsacct;
    grant select on dba_objects to rdsdt_dtsacct;
    grant select on DBA_TAB_COMMENTS to rdsdt_dtsacct;
    grant select on dba_tab_cols to rdsdt_dtsacct;
    grant select_catalog_role TO rdsdt_dtsacct;
    
    # Switch to the CDB$ROOT, which is the root container of the container database (CDB). Create a database account and grant permissions to the account.
    ALTER SESSION SET container = CDB$ROOT;
    # Create a database account named rdsdt_dtsacct and grant permissions to the account. You must modify the default parameters of the Oracle database. 
    alter session set "_ORACLE_SCRIPT"=true;
    create user rdsdt_dtsacct IDENTIFIED BY rdsdt_dtsacct;
    grant create session to rdsdt_dtsacct;
    grant connect to rdsdt_dtsacct;
    grant select on v_$logmnr_contents to rdsdt_dtsacct;
    grant LOGMINING TO rdsdt_dtsacct;
    grant EXECUTE_CATALOG_ROLE to rdsdt_dtsacct;
    grant execute on sys.dbms_logmnr to rdsdt_dtsacct;

    Oracle 12c a 19c (não multilocatário)

    # Create a database account named rdsdt_dtsacct and grant permissions to the account.
    create user rdsdt_dtsacct IDENTIFIED BY rdsdt_dtsacct;
    grant create  session to rdsdt_dtsacct;
    grant connect  to rdsdt_dtsacct;
    grant resource to rdsdt_dtsacct;
    grant select on V_$LOGMNR_LOGS to rdsdt_dtsacct;
    grant select on  all_objects to rdsdt_dtsacct;
    grant select on  all_tab_cols to rdsdt_dtsacct;
    grant select on  dba_registry to rdsdt_dtsacct;
    grant select any table to rdsdt_dtsacct;
    grant select any transaction to rdsdt_dtsacct;
    grant select on v$database to rdsdt_dtsacct;
    grant select on dba_objects to rdsdt_dtsacct;
    grant select on DBA_TAB_COMMENTS to rdsdt_dtsacct;
    grant select on dba_tab_cols to rdsdt_dtsacct;
    -- v$log privileges
    grant select on v_$log to rdsdt_dtsacct;
    -- v$logfile privileges
    grant select on v_$logfile to rdsdt_dtsacct;
    -- v$archived_log privileges
    grant select on v_$archived_log to rdsdt_dtsacct;
    -- v$parameter privileges
    grant select on v_$parameter to rdsdt_dtsacct;
    -- v$database privileges
    grant select on v_$database to rdsdt_dtsacct;
    -- v$active_instances privileges
    grant select on v_$active_instances to rdsdt_dtsacct;
    -- v$instance privileges
    grant select on v_$instance to rdsdt_dtsacct;
    -- v$logmnr_contents privileges
    grant select on v_$logmnr_contents to rdsdt_dtsacct;
    grant select on sys.USER$ to rdsdt_dtsacct;
    grant select on SYS.OBJ$ to rdsdt_dtsacct;
    grant select on SYS.COL$ to rdsdt_dtsacct;
    grant select on SYS.IND$ to rdsdt_dtsacct;
    grant select on SYS.ICOL$ to rdsdt_dtsacct;
    grant select on SYS.CDEF$ to rdsdt_dtsacct;
    grant select on SYS.CCOL$ to rdsdt_dtsacct;
    grant select on SYS.TABPART$ to rdsdt_dtsacct;
    grant select on SYS.TABSUBPART$ to rdsdt_dtsacct;
    grant select on SYS.TABCOMPART$ to rdsdt_dtsacct;
    grant LOGMINING TO rdsdt_dtsacct;
    grant EXECUTE_CATALOG_ROLE to rdsdt_dtsacct;
    grant execute on sys.dbms_logmnr to rdsdt_dtsacct;
    grant select_catalog_role TO rdsdt_dtsacct;
    Nota

    Para mais informações sobre a arquitetura multilocatário do Oracle, consulte Oracle Multitenant.