Todos os produtos
Search
Central de documentação

Data Transmission Service:Sincronizar PostgreSQL auto-gerenciado com PolarDB for PostgreSQL (Compatível com Oracle)

Última atualização: Oct 16, 2026

Utilize o Data Transmission Service (DTS) para sincronizar dados de um banco de dados PostgreSQL auto-gerenciado para PolarDB for PostgreSQL (Compatible with Oracle).

Pré-requisitos

  • Disponha de um banco de dados PostgreSQL auto-gerenciado de origem e de um cluster PolarDB for PostgreSQL (Compatible with Oracle) de destino.

    Nota
    • Para criar um cluster PolarDB for PostgreSQL (Compatible with Oracle), consulte {{XREF_0}}.

    • Para verificar as versões compatíveis dos bancos de dados de origem e de destino, consulte {{XREF_1}}.

  • O cluster PolarDB for PostgreSQL (Compatible with Oracle) de destino deve possuir mais espaço de armazenamento do que o banco de dados PostgreSQL auto-gerenciado de origem.

Observações de uso

Nota
  • Durante a sincronização de esquema, o DTS sincroniza chaves estrangeiras do banco de dados de origem para o banco de dados de destino.

  • Nas fases de sincronização total e incremental de dados, o DTS desativa temporariamente as verificações de restrições e as operações em cascata de chaves estrangeiras no nível da sessão. Podem ocorrer inconsistências de dados caso operações de atualização ou exclusão em cascata sejam executadas no banco de dados de origem enquanto a tarefa estiver em execução.

Tipo

Descrição

Limites do banco de dados de origem

  • As tabelas sincronizadas devem ter uma chave primária ou uma restrição exclusiva. Caso contrário, podem ocorrer dados duplicados no banco de dados de destino.

    Nota

    Se você criar a tabela de destino manualmente (sem selecionar Synchronization Types como Schema Synchronization), garanta que a tabela de destino tenha a mesma chave primária ou restrição exclusiva não nula da tabela de origem. Do contrário, dados duplicados poderão surgir no banco de dados de destino.

  • Ao sincronizar dados no nível de tabela e precisar editar objetos, como mapear nomes de tabelas ou colunas, para mais de 5.000 tabelas em uma única tarefa de sincronização, recomendamos dividir o processo em várias tarefas ou configurar uma tarefa para sincronizar todo o banco de dados. Caso contrário, a tarefa pode falhar no envio.

  • O nome do banco de dados a ser sincronizado não pode conter hifens (-), por exemplo, dts-testdata.

  • Write-ahead logging (WAL):

    • Ative o WAL definindo o parâmetro wal_level como logical.

    • Para tarefas de sincronização incremental, o DTS exige que o WAL do banco de dados de origem seja retido por mais de 24 horas. Em tarefas que realizam sincronização total e incremental simultaneamente, o WAL deve ser mantido por pelo menos sete dias. Após concluir a sincronização total, altere o período de retenção para mais de 24 horas. Se a tarefa falhar porque o DTS não consegue obter o WAL devido a um período de retenção curto, isso pode causar inconsistência ou perda de dados em casos extremos. Problemas decorrentes de retenção insuficiente do WAL não são cobertos pelo Service Level Agreement (SLA) do DTS.

  • Um failover entre primário e secundário no banco de dados PostgreSQL auto-gerenciado de origem causa falha na tarefa de sincronização de dados.

  • Garanta que os valores dos parâmetros max_wal_senders e max_replication_slots sejam maiores que a soma da quantidade de slots de replicação em uso no banco de dados e o número de instâncias DTS que você pretende criar tendo este banco como origem.

  • Se o banco de dados de origem tiver transações de longa duração e a instância estiver configurada para sincronização incremental, os dados de write-ahead logging (WAL) gerados antes do commit dessas transações não serão limpos. Isso pode acumular dados de WAL e levar à falta de espaço em disco no banco de dados de origem.

  • Caso a origem seja uma instância Cloud SQL for PostgreSQL, insira no campo Database Account uma conta de banco de dados com a permissão cloudsqlsuperuser. Ao selecionar os objetos a sincronizar, escolha apenas aqueles que essa conta tem autorização para gerenciar ou conceda a permissão OWNER sobre os objetos a ela. Por exemplo, execute o comando GRANT <owner_of_objects> TO <source_account_for_task> para permitir que a conta realize operações como proprietária dos objetos.

    Nota

    Uma conta com a permissão cloudsqlsuperuser não pode gerenciar dados pertencentes a outras contas que também possuem a permissão cloudsqlsuperuser.

  • Devido às limitações inerentes das assinaturas lógicas no banco de dados de origem, se um único registro de dados a ser sincronizado exceder 256 MB após uma alteração incremental, a instância de sincronização falhará e precisará ser reconfigurada.

  • Não execute operações DDL que alterem esquemas de banco de dados ou tabelas durante a sincronização de esquema ou a sincronização total. Do contrário, a tarefa de sincronização falhará.

    Nota

    Durante a sincronização total, o DTS consulta o banco de dados de origem. Isso cria bloqueios de metadados que podem impedir operações DDL no banco de dados de origem.

  • Realizar uma atualização de versão principal no banco de dados de origem enquanto uma instância de sincronização está em execução causará falha na instância, exigindo reconfiguração.

  • O DTS reporta checkpoints de consumo ao banco de dados de origem aproximadamente a cada 15 minutos. Nesse intervalo, o banco de dados de origem adia a limpeza dos Write-Ahead Logs (WAL), o que aumenta a métrica de monitoramento logical_rep_latency_in_mb. Trata-se de um comportamento normal relacionado à latência de reporte de checkpoints e não indica atraso real na sincronização do DTS. Consulte o console do DTS para obter o status preciso da sincronização.

Outros limites

  • Na sincronização total ou incremental, se as tabelas sincronizadas contiverem chaves estrangeiras, triggers ou event triggers, o DTS define temporariamente o parâmetro session_replication_role como replica no nível da sessão. Caso a conta do banco de dados de destino não tenha essa permissão, defina manualmente o parâmetro session_replication_role como replica no banco de dados de destino. Durante esse período (enquanto session_replication_role estiver definido como replica), inconsistências de dados podem ocorrer se houver operações de atualização ou exclusão em cascata no banco de dados de origem. Após liberar a tarefa de sincronização do DTS, reverta o parâmetro session_replication_role para origin.

  • Se uma tabela a ser sincronizada contiver uma coluna do tipo SERIAL, o banco de dados de origem cria automaticamente uma sequence para essa coluna. Portanto, ao configurar Source Objects, caso selecione Schema Synchronization em Synchronization Types, recomendamos selecionar também Sequence ou sincronizar todo o esquema. Caso contrário, a instância de sincronização poderá falhar.

  • Uma única tarefa de sincronização de dados sincroniza apenas um banco de dados. Para sincronizar vários bancos, configure uma tarefa separada para cada um.

  • O DTS não suporta a sincronização de tabelas do plug-in TimescaleDB, tabelas com herança entre esquemas ou tabelas com índices exclusivos baseados em expressões.

  • Esquemas criados pela instalação de plug-ins não são suportados para sincronização. Não é possível recuperar informações sobre esses esquemas no console ao configurar uma tarefa.

  • Nos três cenários abaixo, execute o comando ALTER TABLE schema.table REPLICA IDENTITY FULL; nas tabelas de origem antes de gravar dados nelas para garantir a consistência dos dados. Evite operações que bloqueiem a tabela enquanto esse comando estiver em execução para prevenir deadlocks. Se você ignorar essa verificação no pré-check, o DTS executará o comando automaticamente durante a inicialização da instância.

    • Quando a instância é executada pela primeira vez.

    • Ao selecionar objetos no nível de esquema e uma nova tabela for criada no esquema ou reconstruída usando o comando RENAME.

    • Ao utilizar o recurso de modificação de objetos de sincronização.

    Nota
    • Substitua schema e table no comando pelos nomes do esquema e da tabela a serem sincronizados.

    • Execute esta operação fora do horário de pico.

  • O DTS valida o conteúdo dos dados, mas não suporta a validação de metadados como sequences. Valide esses metadados por conta própria.

  • Após migrar seu negócio para o banco de dados de destino, as sequences não continuam automaticamente a partir do valor máximo correspondente no banco de dados de origem. Antes da migração, atualize os valores das sequences no banco de dados de destino. Para mais informações, consulte {{XREF_2}}.

  • O DTS cria as seguintes tabelas temporárias no banco de dados de origem para obter instruções DDL de dados incrementais, o esquema das tabelas incrementais e informações de heartbeat. Não exclua essas tabelas temporárias durante a sincronização, pois a tarefa do DTS poderá falhar. As tabelas temporárias são excluídas automaticamente após a liberação da instância do DTS.

    public.dts_pg_class, public.dts_pg_attribute, public.dts_pg_type, public.dts_pg_enum, public.dts_postgres_heartbeat, public.dts_ddl_command, public.dts_args_session e public.aliyun_dts_instance.

  • Para garantir a precisão da latência de sincronização exibida, o DTS adiciona uma tabela de heartbeat chamada dts_postgres_heartbeat ao banco de dados de origem.

  • Durante a sincronização de dados, o DTS cria um slot de replicação lógica com o prefixo dts_sync_ no banco de dados de origem para ler logs incrementais. Se a sincronização falhar ou a instância for liberada, o DTS tentará limpar proativamente esse slot de replicação.

    Nota
    • Alterar a senha da conta do banco de dados de origem ou excluir a lista de permissões de IP do DTS durante a sincronização impede a limpeza automática do slot de replicação. Limpe manualmente o slot no banco de dados de origem para evitar consumo excessivo de espaço em disco e indisponibilidade do banco.

    • Em caso de failover no banco de dados de origem, faça login no banco de dados standby para realizar a limpeza manualmente.

    Execute a instrução SQL SELECT * FROM pg_replication_slots; para visualizar todos os slots de replicação no banco de dados de origem. Nos resultados, o slot do DTS corresponde ao registro onde o valor de slot_name começa com dts_sync_ e o valor de active é true.

  • Antes de iniciar a sincronização, avalie o desempenho dos bancos de dados de origem e de destino. Realize a sincronização fora do horário de pico. A sincronização total consome recursos de leitura e escrita em ambos os bancos, aumentando a carga sobre eles.

  • A sincronização total executa operações INSERT concorrentes, o que pode fragmentar tabelas no banco de dados de destino. Consequentemente, o tablespace da instância de destino será maior que o da instância de origem após a conclusão da sincronização total.

  • Na sincronização de dados no nível de tabela, se nenhum dado externo ao DTS for gravado no banco de dados de destino, utilize o DMS para realizar alterações DDL online. Para mais detalhes, consulte Alterar esquemas sem bloquear tabelas.

  • Durante a sincronização do DTS, não grave dados no banco de dados de destino provenientes de outras fontes. Isso pode gerar inconsistência de dados. Por exemplo, usar o Data Management (DMS) para alterações DDL online enquanto outros processos escrevem dados pode resultar em perda de dados no destino.

  • Se uma tarefa falhar, a equipe de suporte do DTS tentará restaurá-la em até oito horas. Durante a restauração, eles podem reiniciar a tarefa ou ajustar seus parâmetros.

    Nota

    Apenas parâmetros da tarefa DTS são modificados — não parâmetros do banco de dados. Os parâmetros passíveis de ajuste incluem aqueles listados em {{XREF_3}}.

  • Ao sincronizar tabelas particionadas, inclua tanto a tabela pai quanto suas partições filhas como objetos de sincronização. Do contrário, os dados da tabela particionada podem ficar inconsistentes.

    Importante
    • A tabela pai de uma tabela particionada do PostgreSQL não armazena dados diretamente; todo o conteúdo reside nas partições filhas. Uma tarefa de sincronização deve incluir a tabela pai e todas as suas partições filhas. Caso contrário, dados das partições filhas podem ser ignorados, causando inconsistência entre origem e destino.

    • Não há suporte para sincronização de tabelas particionadas e tabelas de herança (tabelas pai-filho) entre bancos de dados diferentes. Garanta que as tabelas particionadas e todas as suas partições, bem como as tabelas pai e todas as suas tabelas filhas, estejam no mesmo banco de dados.

Preços

Tipo de sincronização

Tarifas

Sincronização de esquema e sincronização total

Gratuito.

Sincronização incremental

Sujeito a tarifas. Consulte {{XREF_4}}.

Topologias de sincronização

  • Sincronização unidirecional um para um

  • Sincronização unidirecional um para muitos

  • Sincronização unidirecional em cascata

  • Sincronização unidirecional muitos para um

Para mais informações sobre topologias de sincronização, consulte {{XREF_5}}.

Objetos suportados

  • SCHEMA, TABLE.

    Nota

    Isso inclui PRIMARY KEY, UNIQUE KEY, FOREIGN KEY, DATATYPE (tipos de dados nativos) e DEFAULT CONSTRAINT.

  • VIEW, PROCEDURE (requer PostgreSQL 11 ou superior), FUNCTION, RULE, SEQUENCE, EXTENSION, TRIGGER, AGGREGATE, INDEX, OPERATOR, DOMAIN.

Operações SQL suportadas

Tipo de operação

Operação SQL

DML

INSERT, UPDATE, DELETE

DDL

  • A sincronização de DDL é suportada apenas para tarefas de sincronização de dados criadas após .

    Importante
    • Para tarefas de sincronização de dados criadas antes de 12 de maio de 2023 (horário de Singapore), crie um trigger e uma function no banco de dados de origem para capturar informações DDL antes de configurar a tarefa. Para mais informações, consulte {{XREF_7}}.

    • O tipo de dados BIT não é suportado durante a sincronização incremental de dados.

  • A tarefa de sincronização suporta as seguintes operações DDL, desde que a conta do banco de dados de origem seja uma conta com altos privilégios.

    • CREATE TABLE, DROP TABLE

    • ALTER TABLE (incluindo RENAME TABLE, ADD COLUMN, ADD COLUMN DEFAULT, ALTER COLUMN TYPE, DROP COLUMN, ADD CONSTRAINT, ADD CONSTRAINT CHECK e ALTER COLUMN DROP DEFAULT)

    • TRUNCATE TABLE (requer PostgreSQL 11 ou superior no banco de dados de origem)

    • CREATE INDEX ON TABLE

    Importante
    • Instruções DDL que incluem informações adicionais, como CASCADE ou RESTRICT, não são suportadas.

    • Instruções DDL em uma sessão que utiliza o comando SET session_replication_role = replica não são sincronizadas.

    • Instruções DDL executadas chamando uma FUNCTION ou um bloco de código anônimo não são suportadas.

    • Se um commit contiver operações DML e DDL simultaneamente, as operações DDL não serão sincronizadas.

    • Se um commit contiver operações DDL em objetos que não estão sendo sincronizados, tais operações não serão sincronizadas.

    • Instruções DDL executadas diretamente dentro de um plug-in via SPI (Server Programming Interface) não são suportadas.

Requisitos de permissão para contas de banco de dados

Banco de dados

Permissões necessárias

Criação e autorização de conta

PostgreSQL auto-gerenciado

Permissão de superusuário.

Use a instrução CREATE USER e gerencie as permissões do usuário.

PolarDB for PostgreSQL (Oracle-compatible)

Permissão de proprietário (owner) no banco de dados.

{{XREF_8}}.

Nota

O proprietário do banco de dados é especificado no momento da criação do banco.

Preparação

Nota

As etapas a seguir aplicam-se a sistemas Linux.

Conclua as seguintes preparações para todas as versões do PostgreSQL auto-gerenciado.

  1. Faça login no servidor que hospeda o banco de dados PostgreSQL auto-gerenciado.

  2. Execute o seguinte comando para verificar a quantidade de slots de replicação atualmente em uso:

    /usr/bin/install -c -m 755  ali_decoding.so '/usr/local/pgsql/lib/ali_decoding.so'
    /usr/bin/install -c -m 644 ./ali_decoding.control '/usr/local/pgsql/share/extension/'
    /usr/bin/install -c -m 644 ./ali_decoding--0.0.1.sql ./ali_decoding--unpackaged--0.0.1.sql  '/usr/local/pgsql/share/extension/'
    /usr/bin/install -c -m 755  ali_decoding.so '/usr/local/pgsql/lib/'
  3. Modifique o arquivo de configuração postgresql.conf: defina wal_level como logical e certifique-se de que max_wal_senders e max_replication_slots sejam maiores que a soma dos slots de replicação já em uso e o número de instâncias DTS que você planeja criar tendo este banco PostgreSQL auto-gerenciado como origem.

    /usr/bin/install -c -m 755  ali_decoding.so '/usr/local/pgsql/lib/ali_decoding.so'
    /usr/bin/install -c -m 644 ./ali_decoding.control '/usr/local/pgsql/share/extension/'
    /usr/bin/install -c -m 644 ./ali_decoding--0.0.1.sql ./ali_decoding--unpackaged--0.0.1.sql  '/usr/local/pgsql/share/extension/'
    /usr/bin/install -c -m 755  ali_decoding.so '/usr/local/pgsql/lib/'
    Nota

    Após modificar o arquivo de configuração, reinicie o banco de dados PostgreSQL auto-gerenciado para aplicar as alterações.

  4. Adicione os endereços IP do DTS ao arquivo de configuração pg_hba.conf do banco de dados PostgreSQL auto-gerenciado. Adicione apenas o intervalo de IPs do DTS correspondente à região onde o banco de dados de destino está localizado. Para mais informações, consulte {{XREF_9}}.

    Nota
    • Após modificar o arquivo de configuração, execute o comando SELECT pg_reload_conf(); ou reinicie o banco de dados PostgreSQL auto-gerenciado para aplicar as alterações.

    • Para mais detalhes sobre o arquivo de configuração, consulte The pg_hba.conf File. Caso já tenha definido o endereço confiável como 0.0.0.0/0 (conforme exemplo abaixo), pule esta etapa.

    /usr/bin/install -c -m 755  ali_decoding.so '/usr/local/pgsql/lib/ali_decoding.so'
    /usr/bin/install -c -m 644 ./ali_decoding.control '/usr/local/pgsql/share/extension/'
    /usr/bin/install -c -m 644 ./ali_decoding--0.0.1.sql ./ali_decoding--unpackaged--0.0.1.sql  '/usr/local/pgsql/share/extension/'
    /usr/bin/install -c -m 755  ali_decoding.so '/usr/local/pgsql/lib/'
  5. Na instância do banco de dados de destino, crie os bancos de dados e esquemas correspondentes aos objetos que você planeja sincronizar.

Se a versão do seu PostgreSQL auto-gerenciado estiver entre 9.4.8 e 10.0, conclua também as seguintes preparações.

  1. Baixe o código-fonte do PostgreSQL e, em seguida, compile-o e instale-o.

    1. Faça login no servidor que hospeda o banco de dados PostgreSQL auto-gerenciado.

    2. Com base na versão do banco de dados PostgreSQL auto-gerenciado de origem, baixe o código-fonte da versão correspondente no site oficial do PostgreSQL.

    3. Execute os comandos sudo ./configure, sudo make e sudo make install em sequência para configurar, compilar e instalar o código-fonte.

      Importante
      • Ao compilar e instalar o PostgreSQL, a versão do sistema operacional do PostgreSQL deve corresponder à versão do GCC (GNU Compiler Collection).

      • Se sudo ./configure falhar, ajuste o comando com base na mensagem de erro. Por exemplo, se o erro for readline library not found. Use --without-readline to disable readline support., altere o comando para sudo ./configure --without-readline.

      • Caso instale o PostgreSQL de outra forma, compile o ali_decoding em um ambiente de teste que possua a mesma versão do sistema operacional e do GCC.

  2. Baixe o plug-in ali_decoding fornecido pelo DTS e, em seguida, compile-o e instale-o.

    1. Baixe o ali_decoding.

    2. Copie todo o diretório ali_decoding para o diretório contrib do PostgreSQL compilado e instalado.

      /usr/bin/install -c -m 755  ali_decoding.so '/usr/local/pgsql/lib/ali_decoding.so'
      /usr/bin/install -c -m 644 ./ali_decoding.control '/usr/local/pgsql/share/extension/'
      /usr/bin/install -c -m 644 ./ali_decoding--0.0.1.sql ./ali_decoding--unpackaged--0.0.1.sql  '/usr/local/pgsql/share/extension/'
      /usr/bin/install -c -m 755  ali_decoding.so '/usr/local/pgsql/lib/'
    3. Acesse o diretório ali_decoding e substitua o conteúdo do Makefile pelo seguinte:

      /usr/bin/install -c -m 755  ali_decoding.so '/usr/local/pgsql/lib/ali_decoding.so'
      /usr/bin/install -c -m 644 ./ali_decoding.control '/usr/local/pgsql/share/extension/'
      /usr/bin/install -c -m 644 ./ali_decoding--0.0.1.sql ./ali_decoding--unpackaged--0.0.1.sql  '/usr/local/pgsql/share/extension/'
      /usr/bin/install -c -m 755  ali_decoding.so '/usr/local/pgsql/lib/'
    4. Acesse o diretório ali_decoding e execute os comandos sudo make e sudo make install em sequência para compilar o ali_decoding e gerar os arquivos necessários à sua instalação.

    5. Copie os seguintes arquivos para os locais especificados.

      /usr/bin/install -c -m 755  ali_decoding.so '/usr/local/pgsql/lib/ali_decoding.so'
      /usr/bin/install -c -m 644 ./ali_decoding.control '/usr/local/pgsql/share/extension/'
      /usr/bin/install -c -m 644 ./ali_decoding--0.0.1.sql ./ali_decoding--unpackaged--0.0.1.sql  '/usr/local/pgsql/share/extension/'
      /usr/bin/install -c -m 755  ali_decoding.so '/usr/local/pgsql/lib/'
  3. Na instância do banco de dados de destino, crie os bancos de dados e esquemas correspondentes aos objetos que você planeja sincronizar.

Procedimento

  1. Acesse a página da lista de tarefas de sincronização da região de destino. Utilize um dos dois métodos abaixo:

    Pelo console do DTS

    1. Faça login no console do Data Transmission Service (DTS).

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

    3. No canto superior esquerdo da página, selecione a região onde a instância de sincronização está localizada.

    Pelo console do DMS

    Nota

    As operações reais podem variar dependendo do modo e layout do console do DMS. Para mais informações, consulte {{XREF_10}} e {{XREF_11}}.

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

    2. Na barra de menu superior, escolha Data + AI > Data Transmission (DTS) > Data Synchronization.

    3. À direita de Data Synchronization Tasks, selecione a região onde a instância de sincronização está localizada.

  2. Clique em Create Task para abrir a página de configuração da tarefa.

  3. Configure os 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. Recomendamos definir um nome descritivo para facilitar a identificação. O nome não precisa ser único.

    Source Database

    Select Existing Connection

    • Para usar uma instância de banco de dados que foi {{XREF_12}} (recém-criada ou salva), selecione-a na lista suspensa. As informações do banco serão configuradas automaticamente.

      Nota

      No console do DMS, este item de configuração chama-se Select a DMS database instance..

    • Se você ainda não adicionou a instância ao sistema ou não deseja usar uma instância já adicionada, configure manualmente as informações do banco de dados abaixo.

    Database Type

    Selecione PostgreSQL.

    Access Method

    Selecione Cloud Enterprise Network (CEN).

    Instance Region

    Selecione a região onde o banco de dados PostgreSQL auto-gerenciado está localizado.

    Cross-account

    Se estiver sincronizando dados dentro da mesma conta Alibaba Cloud, selecione No.

    Connected VPC

    Selecione a VPC conectada ao banco de dados PostgreSQL auto-gerenciado.

    IP address

    Insira o nome de domínio ou endereço IP do banco de dados PostgreSQL auto-gerenciado.

    Port

    Insira o número da porta utilizada pelo banco de dados PostgreSQL auto-gerenciado. O valor padrão é 5432.

    Database Name

    Insira o nome do banco de dados que contém os objetos a serem sincronizados.

    Database Account

    Insira a conta do banco de dados PostgreSQL auto-gerenciado. Para informações sobre as permissões necessárias, consulte {{XREF_13}}.

    Database Password

    Insira a senha correspondente à conta do banco de dados.

    Encryption

    Define se a conexão com o banco de dados de origem será criptografada. Configure este parâmetro conforme suas necessidades de negócio. Neste exemplo, Non-encrypted está selecionado.

    Para estabelecer uma conexão criptografada via SSL com o banco de dados de origem, siga estas etapas: Selecione SSL-encrypted, faça upload do CA Certificate, Client Certificate e Private Key of Client Certificate conforme necessário e, em seguida, especifique a Private Key Password of Client Certificate.

    Nota
    • Se definir Encryption como SSL-encrypted para um banco de dados PostgreSQL auto-gerenciado, você deve fazer upload do CA Certificate.

    • Para utilizar o certificado de cliente, faça upload do Client Certificate e da Private Key of Client Certificate e especifique a Private Key Password of Client Certificate.

    • Para informações sobre como configurar criptografia SSL em uma instância ApsaraDB RDS for PostgreSQL, consulte {{XREF_14}}.

    Destination Database

    Select Existing Connection

    • Para usar uma instância de banco de dados que foi {{XREF_15}} (recém-criada ou salva), selecione-a na lista suspensa. As informações do banco serão configuradas automaticamente.

      Nota

      No console do DMS, este item de configuração chama-se Select a DMS database instance..

    • Se você ainda não adicionou a instância ao sistema ou não deseja usar uma instância já adicionada, configure manualmente as informações do banco de dados abaixo.

    Database Type

    Selecione PolarDB (Compatible with Oracle).

    Connection Type

    Selecione Express Connect, VPN Gateway, or Smart Access Gateway.

    Instance Region

    Selecione a região onde o cluster PolarDB for PostgreSQL (Compatible with Oracle) de destino está localizado.

    Connected VPC

    Selecione a VPC conectada ao cluster PolarDB for PostgreSQL (Compatible with Oracle).

    Domain Name or IP Address

    Insira o endpoint do nó primário no cluster PolarDB for PostgreSQL (Compatible with Oracle) de destino.

    Nota

    Execute o comando ping no seu computador para obter o endereço IP do endpoint de conexão direta do cluster PolarDB for PostgreSQL (Compatible with Oracle) de destino.

    Port

    Insira o número da porta utilizada pelo banco de dados de destino. O valor padrão é 1521.

    Database Name

    Insira o nome do banco de dados de destino que contém os objetos a serem sincronizados na instância PolarDB for PostgreSQL (Compatible with Oracle).

    Database Account

    Insira a conta do banco de dados da instância PolarDB for PostgreSQL (Compatible with Oracle) de destino. Para informações sobre as permissões necessárias, consulte {{XREF_16}}.

    Database Password

    Insira a senha correspondente à conta do banco de dados.

  4. Após concluir a configuração, clique em Test Connectivity and Proceed na parte inferior da página.

    Nota
    • Certifique-se de que os blocos CIDR de endereços IP dos servidores DTS foram adicionados às configurações de segurança dos bancos de dados de origem e de destino para permitir o acesso desses servidores. Isso pode ser feito automática ou manualmente. Para mais informações, consulte {{XREF_17}}.

    • Se o banco de dados de origem ou de destino for auto-gerenciado (onde o Access Method não é Alibaba Cloud Instance), clique também em Test Connectivity na caixa de diálogo CIDR Blocks of DTS Servers.

  5. Configure os objetos da tarefa.

    1. Na página Configure Objects, configure os objetos a sincronizar.

      Parâmetro

      Descrição

      Synchronization Types

      Incremental Data Synchronization está selecionado. Por padrão, você também deve selecionar Schema Synchronization e Full Data Synchronization. Após o pré-check, o DTS realiza uma sincronização total dos dados dos objetos selecionados da instância de origem para o cluster de destino. Isso serve como base para a subsequente sincronização incremental de dados.

      Processing Mode of Conflicting Tables

      • Precheck and Report Errors: Verifica se existe uma tabela com o mesmo nome no banco de dados de destino. Se não existir, o pré-check é aprovado. Se existir, o pré-check falha e a tarefa de sincronização não inicia.

        Nota

        Caso não possa excluir ou renomear a tabela homônima no banco de dados de destino, mapeie-a para um nome diferente. Para mais informações, consulte {{XREF_18}}.

      • Ignore Errors and Proceed: Ignora a verificação de nomes de tabelas duplicados no banco de dados de destino.

        Aviso

        Selecionar Ignore Errors and Proceed pode causar inconsistência de dados e colocar seu negócio em risco. Por exemplo:

        • Se os esquemas das tabelas forem idênticos e um registro no banco de dados de destino tiver a mesma chave primária ou chave exclusiva de um registro na origem:

          • Durante a sincronização total, o DTS mantém o registro no cluster de destino. O registro correspondente da origem não é sincronizado.

          • Durante a sincronização incremental, o registro da origem sobrescreve o registro no banco de dados de destino.

        • Se os esquemas das tabelas forem diferentes, a sincronização inicial pode falhar. Isso pode resultar na sincronização parcial de colunas ou falha completa. Prossiga com cautela.

      Source Objects

      Na caixa Source Objects, clique em um objeto a sincronizar e, em seguida, clique em 向右 para movê-lo para a caixa Selected Objects.

      Nota
      • É possível selecionar objetos de sincronização no nível de esquema ou de tabela. Se selecionar tabelas, outros objetos como views, triggers e stored procedures não serão sincronizados para o destino.

      • Se as tabelas a sincronizar contiverem colunas do tipo SERIAL e você selecionar Synchronization Types incluindo Schema Synchronization, recomendamos selecionar também Sequence ou sincronizar todo o esquema.

      Selected Objects

      • Para renomear um único objeto de sincronização na instância de destino, clique com o botão direito no objeto dentro da caixa Selected Objects. Para mais informações sobre renomeação de objetos, consulte {{XREF_19}}.

      • Para alterar em lote os nomes de vários objetos de sincronização na instância de destino, clique em Batch Edit no canto superior direito da caixa Selected Objects. Para mais informações, consulte {{XREF_20}}.

      Nota
      • Para selecionar as operações SQL a sincronizar para um banco de dados ou tabela específico, clique com o botão direito no objeto na caixa Selected Objects e selecione as operações desejadas na caixa de diálogo exibida.

      • Para filtrar dados usando uma cláusula WHERE, clique com o botão direito na tabela na caixa Selected Objects e especifique a condição de filtro na caixa de diálogo exibida. Para mais informações, consulte {{XREF_21}}.

    2. Clique em Next: Advanced Settings para configurar parâmetros avançados.

      Parâmetro

      Descrição

      Dedicated Cluster for Task Scheduling

      Por padrão, o DTS agenda tarefas em um cluster compartilhado, não sendo necessário selecionar um cluster. Para um desempenho mais estável, adquira um cluster dedicado para executar tarefas de sincronização do DTS. Para mais informações, consulte {{XREF_22}}.

      Retry Time for Failed Connections

      Após o início da tarefa de sincronização, se a conexão com o banco de dados de origem ou de destino falhar, o DTS reportará um erro e iniciará imediatamente novas tentativas de conexão. A duração padrão de tentativa é de 720 minutos. Especifique uma duração personalizada entre 10 e 1.440 minutos. Recomendamos definir pelo menos 30 minutos. Se o DTS reconectar com sucesso dentro do período especificado, a tarefa de sincronização será retomada automaticamente. Caso contrário, a tarefa falhará.

      Nota
      • Se você tiver várias instâncias DTS (por exemplo, Instância A e Instância B) compartilhando a mesma origem ou destino, e definir o tempo de tentativa de rede como 30 minutos para a Instância A e 60 minutos para a Instância B, a menor duração de 30 minutos será aplicada a ambas.

      • Como o DTS cobra pelo tempo de execução da tarefa durante o período de tentativa de reconexão, recomendamos personalizar a duração conforme suas necessidades de negócio ou liberar a instância DTS assim que possível após a liberação das instâncias de banco de dados de origem e de destino.

      Retry Time for Other Issues

      Após o início da tarefa de sincronização, se ocorrerem outros problemas não relacionados à conectividade com o banco de dados de origem ou de destino (como exceções na execução de DDL ou DML), o DTS reportará um erro e iniciará imediatamente tentativas contínuas de correção. A duração padrão de tentativa é de 10 minutos. Personalize a duração entre 1 e 1.440 minutos. Recomendamos definir pelo menos 10 minutos. Se as operações relevantes forem bem-sucedidas dentro do período definido, a tarefa de sincronização será retomada automaticamente. Caso contrário, a tarefa falhará.

      Importante

      O valor de Retry Time for Other Issues deve ser menor que o valor de Retry Time for Failed Connections.

      Enable Throttling for Full Data Synchronization

      Durante a fase de sincronização total, o DTS consome recursos de leitura e escrita dos bancos de dados de origem e de destino, o que pode aumentar a carga sobre eles. Para reduzir essa carga, defina um limite de taxa para a tarefa de sincronização total configurando os parâmetros Queries per second (QPS) to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s).

      Nota
      • Este item de configuração está disponível apenas quando Synchronization Types estiver definido como Full Data Synchronization.

      • Também é possível {{XREF_23}} após a instância de sincronização estar em execução.

      Enable Throttling for Incremental Data Synchronization

      Defina também um limite de taxa para a tarefa de sincronização incremental. Para aliviar a pressão no banco de dados de destino, configure RPS of Incremental Data Synchronization e Data synchronization speed for incremental synchronization (MB/s).

      Environment Tag

      Selecione uma tag de ambiente para identificar a instância. Este parâmetro é opcional e pode ser deixado em branco neste exemplo.

      Configure ETL

      Escolha se deseja ativar o recurso de extração, transformação e carga (ETL). Para mais informações, consulte {{XREF_24}} Valores válidos:

      • Yes: Ativa o recurso ETL. Insira instruções de processamento de dados no editor de código. Para mais informações, consulte {{XREF_25}}.

      • No: Desativa o recurso ETL.

      Monitoring and Alerting

      Especifique se deseja configurar alertas. Se a sincronização falhar ou a latência exceder o limiar especificado, uma notificação será enviada a um contato de alerta.

      • No: Nenhum alerta é configurado.

      • Yes: Configure alertas definindo um limiar de alerta e especificando um notificação de alerta. Para mais informações, consulte {{XREF_26}}.

    3. Clique em Next: Data Validation para configurar uma tarefa de validação de dados.

      Para utilizar o recurso de validação de dados, consulte {{XREF_27}} para instruções de configuração.

  6. Salve a tarefa e execute um pré-check.

    • Para visualizar os parâmetros da API para configurar esta instância, passe o mouse sobre o botão Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters no balão exibido.

    • Após visualizar os parâmetros da API, clique em Next: Save Task Settings and Precheck na parte inferior da página.

    Nota
    • Antes do início do trabalho de sincronização, o DTS executa um pré-check. O trabalho só inicia após todos os itens do pré-check serem aprovados.

    • Se o pré-check falhar, clique em View Details no item com falha. Corrija o problema conforme indicado e execute o pré-check novamente.

    • Se o pré-check retornar um aviso:

      • Caso um item de verificação falhe e não possa ser ignorado, clique em View Details ao lado do item. Siga as instruções para corrigir o problema e execute o pré-check novamente.

      • Para itens de verificação que podem ser ignorados, clique em Confirm Alert Details, Ignore, OK e Precheck Again em sequência para ignorar o aviso e reexecutar o pré-check. Optar por suprimir o item de aviso pode causar problemas como inconsistência de dados e representar riscos ao seu negócio.

  7. Adquira a instância.

    1. Quando a Success Rate atingir 100%, clique em Next: Purchase Instance.

    2. Na página Purchase, selecione o método de faturamento e a especificação de link para a instância de sincronização de dados. A tabela a seguir detalha esses parâmetros.

      Categoria

      Parâmetro

      Descrição

      New Instance Class

      Método de Faturamento

      • Assinatura: Pagamento realizado na criação da instância. Adequado para necessidades de longo prazo, sendo mais econômico que o pagamento conforme o uso. Quanto maior a duração da assinatura, maior o desconto.

      • Pagamento conforme o uso: Cobrança horária. Ideal para necessidades de curto prazo. Libere a instância logo após o uso para economizar custos.

      Configuração do Grupo de Recursos

      O grupo de recursos ao qual a instância pertence. O padrão é o grupo de recursos padrão. Para mais informações, consulte {{XREF_28}}.

      Especificação do Link

      O DTS oferece especificações de sincronização com diferentes níveis de desempenho. A especificação do link de sincronização afeta a taxa de transferência. Escolha uma especificação baseada no seu cenário de negócio. Para mais informações, consulte {{XREF_29}}.

      Duração da Assinatura

      No modo assinatura, selecione a duração e a quantidade para a instância. Escolha uma assinatura mensal de 1 a 9 meses ou anual de 1, 2, 3 ou 5 anos.

      Nota

      Esta opção está disponível apenas quando o método de faturamento for Subscription.

    3. Após concluir a configuração, leia e selecione Data Transmission Service (Pay-as-you-go) Service Terms.

    4. Clique em Buy and Start. Na caixa de diálogo OK, clique em OK.

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