Todos os produtos
Search
Central de documentação

AnalyticDB:Migrar Oracle autogerenciado para o AnalyticDB for PostgreSQL

Última atualização: Jul 05, 2026

Migre dados de um banco de dados Oracle autogerenciado para uma instância do AnalyticDB for PostgreSQL e crie um data warehouse em tempo real.

Pré-requisitos

  • O banco de dados Oracle autogerenciado deve ser da versão 9i, 10g, 11g, 12c, 18c ou 19c.

  • O banco de dados Oracle autogerenciado precisa operar no modo ARCHIVELOG com um período de retenção de logs de arquivamento adequado, e os logs arquivados devem estar acessíveis. Para mais informações, consulte ARCHIVELOG.

  • Ative o Supplemental Logging no banco de dados Oracle autogerenciado, incluindo supplemental_log_data_pk e supplemental_log_data_ui. Para mais informações, consulte Supplemental Logging.

  • Para criar a instância de destino do AnalyticDB for PostgreSQL, consulte Criar uma instância do AnalyticDB for PostgreSQL.

Faturamento

Tipo de migração

Taxa de configuração da tarefa

Taxa de tráfego pela Internet

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

Gratuito.

O DTS cobra uma taxa de tráfego pela Internet quando o Access Method do banco de dados de destino está definido como Public IP Address. Visão geral do faturamento.

Migração incremental de dados

Pago. Visão geral do faturamento.

Observações

  • Durante a migração completa de dados, o DTS consome recursos de leitura e gravação dos bancos de dados de origem e de destino, o que pode aumentar a carga do banco de dados. Avalie o impacto no desempenho antes de iniciar a migração. Recomendamos migrar os dados em horários de baixa demanda.

  • Se uma tarefa de migração de dados falhar, o DTS a retomará automaticamente. Antes de transferir sua carga de trabalho para o banco de dados de destino, pare ou libere a tarefa para evitar que ela seja retomada automaticamente e sobrescreva dados no banco de dados de destino.

  • O DTS suporta apenas migração no nível de tabela. Tabelas otimizadas para anexação (AO) não podem ser usadas como tabelas de destino.

  • Ao usar mapeamento de colunas, se você não migrar todas as colunas ou se os schemas das tabelas forem diferentes, os dados das colunas que existem apenas na tabela de origem serão perdidos.

  • Caso o banco de dados Oracle autogerenciado esteja implantado em uma arquitetura Real Application Cluster (RAC) e conectado ao DTS por meio de uma virtual private cloud (VPC) da Alibaba Cloud, conecte o endereço IP do Single Client Access Name (SCAN) do Oracle RAC e o endereço IP virtual (VIP) de cada nó à VPC e configure as rotas. Essas configurações garantem que sua tarefa do DTS execute conforme o esperado. Para mais informações, consulte Conectar um data center ao DTS via VPN Gateway.

    Importante

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

Tipos de migração

Tipo

Descrição

Migração de schema

O DTS migra os schemas dos objetos — incluindo tabelas, índices, restrições, funções, sequências e views — do banco de dados de origem para o banco de dados de destino.

Aviso
  • Durante a migração de schema entre bancos de dados heterogêneos, o DTS pode não mapear todos os tipos de dados com precisão. Avalie o impacto nos negócios do mapeamento de tipos de dados antes de prosseguir. Para mais informações, consulte Mapeamento de tipos de dados para bancos de dados heterogêneos.

  • Para tabelas particionadas, o DTS descarta as definições de partição. Defina as partições no banco de dados de destino.

Migração completa de dados

O DTS migra todos os dados dos objetos selecionados da origem para o banco de dados de destino.

Nota

Não execute operações DDL nos objetos a serem migrados até que a migração de schema e a migração completa de dados sejam concluídas. Caso contrário, a migração pode falhar.

Migração incremental de dados

Após a conclusão da migração completa de dados, o DTS consulta e captura logs de redo do banco de dados Oracle autogerenciado e migra as alterações incrementais de dados para o banco de dados de destino em tempo real.

Durante a migração incremental de dados, o DTS suporta as seguintes instruções SQL:

  • DML: INSERT, UPDATE e DELETE

  • DDL: ADD COLUMN

A migração incremental de dados minimiza o tempo de inatividade durante a migração das suas aplicações autogerenciadas.

Permissões da conta do banco de dados

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

DBA

AnalyticDB for PostgreSQL

Permissões de leitura e gravação no banco de dados de destino

Permissões de leitura e gravação no banco de dados de destino

Permissões de leitura e gravação no banco de dados de destino

Para saber como criar uma conta de banco de dados e conceder permissões, consulte:

Importante

Se precisar realizar migração incremental de dados, mas não puder conceder permissões de DBA, conceda permissões mais granulares à conta do banco de dados.

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

Importante

Se quiser migrar dados de um banco de dados Oracle, mas não for possível conceder a permissão de administrador de banco de dados (DBA) à conta, ative o archive logging e o supplemental logging e conceda permissões refinadas à conta.

  1. Ative o archive logging e o supplemental logging.

    Tipo

    Procedimento

    Archive logging

    Execute as seguintes instruções para ativar o archive logging:

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

    Supplemental logging

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

    Nota

    Ative o supplemental logging no nível do banco de dados para garantir a estabilidade das tarefas do Data Transmission Service (DTS). Ative o supplemental logging no nível da tabela para reduzir o uso de disco do banco de dados Oracle de origem.

    • Ativar supplemental logging no nível do banco de dados

      1. Execute a seguinte instrução para ativar o supplemental logging mínimo:

        alter database add supplemental log data;
      2. Execute a seguinte instrução para ativar o supplemental logging 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 supplemental logging no nível da tabela

      1. Execute a seguinte instrução para ativar o supplemental logging mínimo:

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

        • Ativar supplemental logging de chave primária no nível da tabela

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

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

    Force logging

    Execute as seguintes instruções para ativar o force logging:

    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 (multitenant)

    # 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 multitenant)

    # 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 multitenant do Oracle, consulte Oracle Multitenant.

Logs do Oracle e permissões refinadas

Importante

Se precisar migrar dados incrementais sem permissões de DBA, ative o archive log e o supplemental log e conceda permissões refinadas à conta do banco de dados Oracle.

  1. Ative o archive logging e o supplemental logging.

    Tipo

    Procedimento

    Archive logging

    Execute as seguintes instruções para ativar o archive logging:

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

    Supplemental logging

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

    Nota

    Ative o supplemental logging no nível do banco de dados para garantir a estabilidade das tarefas do Data Transmission Service (DTS). Ative o supplemental logging no nível da tabela para reduzir o uso de disco do banco de dados Oracle de origem.

    • Ativar supplemental logging no nível do banco de dados

      1. Execute a seguinte instrução para ativar o supplemental logging mínimo:

        alter database add supplemental log data;
      2. Execute a seguinte instrução para ativar o supplemental logging 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 supplemental logging no nível da tabela

      1. Execute a seguinte instrução para ativar o supplemental logging mínimo:

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

        • Ativar supplemental logging de chave primária no nível da tabela

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

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

    Force logging

    Execute as seguintes instruções para ativar o force logging:

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

    Oracle 9i a 11g

    # Create a database account (for example, rdsdt_dtsacct) and grant permissions.
    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 (multitenant)

    # Switch to the PDB, then create a database account (for example, rdsdt_dtsacct) and grant permissions.
    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 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 CDB$ROOT to create a database account and grant permissions.
    ALTER SESSION SET container = CDB$ROOT;
    # Set the required session parameter, then create a database account (e.g., rdsdt_dtsacct) and grant permissions.
    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 multitenant)

    # Create a database account (for example, rdsdt_dtsacct) and grant permissions.
    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 multitenant do Oracle, consulte Oracle Multitenant.

Procedimento

  1. Faça login no console do DTS.

    Nota

    Se for redirecionado automaticamente para o console do Data Management (DMS), clique em jiqiren no canto inferior direito e depois clique em 返回旧版 para retornar ao console clássico do DTS.

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

  3. Na parte superior da página Migration Tasks, selecione a região onde a instância de destino está localizada.

  4. No canto superior direito da página, clique em Create Data Migration Task.

  5. Configure as definições de conexão dos bancos de dados de origem e de destino.

    Categoria

    Parâmetro

    Descrição

    N/A

    Task Name

    O DTS gera automaticamente um nome para a tarefa. Para facilitar a identificação, recomendamos especificar um nome descritivo. O nome não precisa ser único.

    Source Database

    Instance Type

    Selecione uma opção com base no local onde o banco de dados de origem está implantado. Este tópico usa self-managed database on an ECS instance como exemplo.

    Nota

    Se seu banco de dados autogerenciado usar um tipo de instância diferente, preparações adicionais serão necessárias. Para mais informações, consulte Visão geral da preparação.

    Region

    Selecione a região onde a instância ECS que hospeda o banco de dados Oracle está localizada.

    ECS Instance ID

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

    Database Type

    Selecione Oracle.

    Port

    Insira a porta de serviço do banco de dados Oracle autogerenciado. Padrão: 1521.

    Instance Type

    • Non-RAC Instance: Se selecionar esta opção, especifique também o SID.

    • RAC Instance: Se selecionar esta opção, especifique também o Service Name.

    Neste exemplo, Non-RAC Instance está selecionado.

    SID

    Insira o SID do banco de dados Oracle autogerenciado.

    Database Account

    Insira a conta do banco de dados Oracle autogerenciado. Para obter informações sobre as permissões necessárias, consulte Permissões necessárias para contas de banco de dados.

    Database Password

    Insira a senha da conta do banco de dados.

    Nota

    Após inserir as informações do banco de dados de origem, clique em Test Connectivity ao lado de Database Password para verificar se as informações estão corretas. Se estiverem corretas, a mensagem Passed será exibida. Se a mensagem Failed for exibida, clique em Diagnose ao lado da mensagem Failed e ajuste as informações do banco de dados de origem conforme as orientações.

    Destination Database

    Instance Type

    Selecione AnalyticDB for PostgreSQL.

    Region

    Selecione a região onde a instância de destino do AnalyticDB for PostgreSQL está localizada.

    Instance ID

    Selecione o ID da instância de destino do AnalyticDB for PostgreSQL.

    Database

    Insira o nome do banco de dados de destino para a migração de dados.

    Database Account

    Insira a conta do banco de dados da instância de destino do AnalyticDB for PostgreSQL. Para obter informações sobre as permissões necessárias, consulte Permissões necessárias para contas de banco de dados.

    Database Password

    Insira a senha da conta do banco de dados.

  6. Após concluir a configuração, clique em Set Whitelist and Next no canto inferior direito da página.

    Se a origem ou o destino for uma instância de banco de dados da Alibaba Cloud, como ApsaraDB for MySQL ou ApsaraDB for MongoDB, o DTS adiciona automaticamente os endereços IP de seus servidores na região correspondente à lista de permissões da instância. Se a origem ou o destino for um banco de dados autogerenciado em uma instância ECS, o DTS adiciona automaticamente seus endereços IP às regras de segurança da instância ECS. Garanta também que o banco de dados autogerenciado não restrinja o acesso da instância ECS. Se o banco de dados for um cluster implantado em várias instâncias ECS, adicione manualmente os endereços IP do DTS às regras de segurança de cada instância ECS. Se a origem ou o destino for um banco de dados em um data center on-premises ou em outra nuvem, adicione manualmente os endereços IP do DTS da região correspondente para permitir o acesso dos servidores do DTS. Para obter uma lista de endereços IP dos servidores do DTS, consulte Endereços IP dos servidores do DTS.

    Aviso

    Adicionar os blocos CIDR públicos dos servidores do DTS, seja automática ou manualmente, pode introduzir riscos de segurança. Ao usar este produto, você reconhece e aceita esses riscos potenciais. É sua responsabilidade implementar medidas básicas de segurança, incluindo, mas não se limitando a, usar senhas fortes, restringir portas abertas, usar autenticação para chamadas internas de API, revisar e restringir regularmente segmentos de rede desnecessários ou conectar-se por meio de redes privadas como Express Connect, VPN Gateway ou Smart Access Gateway.

  7. Selecione os tipos de migração, tipos de operação e objetos de migração.

    Parâmetro

    Descrição

    Migration Types

    • Se precisar apenas de uma migração completa, selecione Schema Migration e Full Data Migration.

    • Para realizar uma migração sem tempo de inatividade, selecione Schema Migration, Full Data Migration e Incremental Data Migration.

    Nota

    Se Incremental Data Migration não estiver selecionado, evite gravar novos dados no banco de dados de origem durante a migração para garantir a consistência dos dados.

    Operation Types

    Selecione os tipos de operação a serem sincronizados durante a migração incremental de dados conforme seus requisitos de negócio. Todos os tipos de operação são selecionados por padrão.

    Objects to Migrate

    Na caixa Available, clique nos objetos que deseja migrar e depois clique no ícone 向右小箭头 para movê-los para a caixa Selected Objects.

    Nota
    • Selecione objetos para migrar no nível da tabela.

    • Por padrão, os objetos migrados mantêm seus nomes originais no banco de dados de destino. Para renomear um objeto, use o recurso de mapeamento de nomes de objetos. Para mais informações, consulte Mapeamento de nomes de objetos.

    • Se usar o recurso de mapeamento de nomes de objetos, outros objetos que dependem do objeto renomeado podem falhar na migração.

    Object Name Mapping

    Para renomear um objeto migrado na instância de destino, use o recurso de mapeamento de nomes de objetos. Para mais informações, consulte Mapeamento de nomes de objetos.

    Importante

    Se usar mapeamento de colunas para uma migração parcial de tabela ou se os schemas das tabelas de origem e destino forem diferentes, os dados nas colunas que existem na tabela de origem, mas não na tabela de destino, serão perdidos.

    Connection Failure Retry Duration

    A duração padrão de nova tentativa é de 12 horas. Especifique uma duração personalizada. Se o DTS se reconectar aos bancos de dados de origem e destino dentro da duração especificada, a tarefa de migração será retomada automaticamente. Caso contrário, a tarefa falhará.

    Nota

    O DTS cobra pelo tempo de execução da tarefa durante o período de nova tentativa de conexão. Recomendamos personalizar a duração da nova tentativa com base nas necessidades do seu negócio ou liberar a instância do DTS prontamente após a liberação das instâncias dos bancos de dados de origem e destino.

    Enclose Object Names in Quotation Marks

    Especifica se os nomes dos objetos de destino devem ser colocados entre aspas. Se selecionar Yes e uma das seguintes condições for atendida, o DTS adicionará aspas simples ou duplas ao objeto de destino durante a migração de schema e a migração incremental de dados:

    • O ambiente do banco de dados de origem diferencia maiúsculas de minúsculas e os nomes dos objetos usam letras mistas.

    • Um nome de tabela de origem não começa com uma letra e contém caracteres diferentes de letras, dígitos ou caracteres especiais suportados.

      Nota

      Os caracteres especiais suportados são sublinhados (_), sinais de número (#) e cifrões ($).

    • Os nomes de schema, tabela ou coluna a serem migrados são palavras-chave, palavras reservadas ou caracteres inválidos no banco de dados de destino.

  8. Defina a chave primária e a chave de distribuição para as tabelas a serem migradas para a instância do AnalyticDB for PostgreSQL.

    Na página de configuração, defina o Type para cada tabela, como uma tabela distribuída por hash. Após a configuração, a coluna Definition Status exibirá "Defined".

    Nota
    • Para mais informações sobre chaves primárias e chaves de distribuição, consulte Restrições de tabela e Chaves de distribuição de tabela.

    • Se alguma tabela não tiver chave primária, a opção Set Primary Keys and Distribution Keys of All Tables Without Primary Keys to ROWID aparecerá nesta página. Selecionar esta opção adiciona uma coluna ROWID às tabelas de destino como chave primária e chave de distribuição.

  9. Após concluir a configuração, clique em Precheck and Start no canto inferior direito da página.

    Nota
    • Antes do início da tarefa de migração, o DTS executa uma verificação prévia. A tarefa só pode começar após passar nessa verificação.

    • Se a verificação prévia falhar, clique no ícone 提示 ao lado do item com falha para visualizar os detalhes.

      • Corrija os problemas conforme indicado e execute a verificação prévia novamente.

      • Se não precisar corrigir os itens de aviso, selecione Ignore e clique em Ignore Warnings and Rerun Precheck para executar a verificação prévia novamente.

  10. Depois que a tarefa passar na verificação prévia, clique em Next.

  11. Na caixa de diálogo Confirm Settings que aparece, selecione uma Instance Class e marque a caixa de seleção Data Transmission Service (pay-as-you-go) Service Terms.

  12. Clique em Buy and Start para iniciar a migração.

    • Migração de schema + Migração completa de dados

      Permita que a tarefa seja concluída automaticamente. Interrompê-la manualmente pode resultar em dados incompletos.

    • Migração de schema + Migração completa de dados + Migração incremental de dados

      A tarefa de migração não para automaticamente. Interrompa-a manualmente.

      Importante

      Escolha um horário apropriado para interromper a tarefa manualmente, como em horários de baixa demanda ou quando estiver pronto para transferir seus negócios para o cluster de destino.

      1. Aguarde até que a tarefa de migração entre na fase de Incremental Data Migration e o status mostre Undelayed. Em seguida, pare de gravar dados no banco de dados de origem por alguns minutos. Durante esse período, o status de Incremental Data Migration pode apresentar latência.

      2. Aguarde até que o status de Incremental Data Migration mostre Undelayed novamente. Depois, interrompa manualmente a tarefa de migração.结束增量迁移任务