Este tópico descreve como usar o Data Transmission Service (DTS) para sincronizar continuamente dados de um banco de dados MySQL auto-gerenciado — conectado à Alibaba Cloud via Express Connect, VPN Gateway ou Smart Access Gateway — com uma instância do AnalyticDB for PostgreSQL.
Pré-requisitos
Antes de começar, verifique se você possui:
Um banco de dados MySQL auto-gerenciado executando a versão 5.1, 5.5, 5.6, 5.7 ou 8.0
Todas as tabelas de origem possuem chaves primárias
Logs binários ativados no banco de dados MySQL de origem
Uma conta de banco de dados no MySQL de origem com as seguintes permissões: SELECT nos objetos a serem sincronizados, REPLICATION CLIENT, REPLICATION SLAVE e SHOW VIEW. Para instruções de configuração, consulte Criar uma conta para um banco de dados MySQL auto-gerenciado e configurar logs binários.
-
A rede local conectada a uma VPC da Alibaba Cloud via Express Connect, VPN Gateway ou Smart Access Gateway, com acesso permitido ao DTS. Para instruções de configuração, consulte Conectar um data center ao DTS usando o VPN Gateway.
Para obter uma visão geral sobre como conectar uma rede local a uma VPC, consulte Conectar um banco de dados local à Alibaba Cloud .
Uma instância do AnalyticDB for PostgreSQL de destino. Para instruções de configuração, consulte Criar uma instância do AnalyticDB for PostgreSQL.
Limitações
Objetos suportados: Apenas tabelas. Não é possível selecionar bancos de dados e outros tipos de objetos como objetos de sincronização.
Tipos de dados não suportados: BIT, VARBIT, GEOMETRY, ARRAY, UUID, TSQUERY, TSVECTOR, TXID_SNAPSHOT e POINT. O sistema ignora colunas com esses tipos durante a sincronização.
Índices de prefixo: Índices de prefixo não são sincronizados. Se o banco de dados de origem contiver índices de prefixo, a sincronização de dados poderá falhar.
Operações DDL: Apenas ADD COLUMN é sincronizado. CREATE TABLE não é suportado. Para sincronizar dados de uma nova tabela, adicione-a manualmente aos objetos selecionados. Para obter instruções, consulte Adicionar um objeto a uma tarefa de sincronização de dados.
Ferramentas de alteração de schema online: Não utilize gh-ost ou pt-online-schema-change para executar operações DDL em objetos de origem enquanto a sincronização estiver em execução. Isso pode causar falha na tarefa de sincronização.
Operações SQL que podem ser sincronizadas
DML: INSERT, UPDATE, DELETE
DDL: ADD COLUMN
Topologias de sincronização suportadas
Sincronização unidirecional um para um
Sincronização unidirecional um para muitos
Sincronização unidirecional muitos para um
Mapeamento de termos
|
MySQL |
AnalyticDB for PostgreSQL |
|
Database |
Schema |
|
Table |
Table |
Considerações de desempenho
O DTS lê do banco de dados de origem e grava no banco de dados de destino durante a sincronização inicial completa de dados. Esse processo aumenta a carga em ambos os servidores de banco de dados. Para reduzir riscos:
Execute a tarefa de sincronização fora do horário de pico, quando a utilização da CPU nos bancos de dados de origem e de destino estiver abaixo de 30%.
Evite executar um grande número de consultas SQL lentas no banco de dados de origem durante a sincronização.
Verifique se as tabelas de origem possuem chaves primárias antes de iniciar. Tabelas sem chaves primárias aumentam significativamente o uso de recursos.
Configurar a sincronização de dados
Etapa 1: Adquirir uma instância de sincronização do DTS
Adquira uma instância de sincronização de dados conforme descrito em Adquirir uma instância do DTS.
Na página de compra, defina as seguintes opções:
Source Instance: MySQL
Target Instance: AnalyticDB for PostgreSQL
Synchronization Topology: One-Way Synchronization
Etapa 2: Configurar o canal de sincronização
Faça login no console do DTS.
No painel de navegação à esquerda, clique em Data Synchronization.
Na parte superior da página Synchronization Tasks, selecione a região onde reside a instância de destino.
Localize a instância de sincronização adquirida e clique em Configure Synchronization Channel na coluna Actions.
-
Configure as instâncias de origem e de destino.
Instância de origem
Parâmetro
Descrição
Synchronization Task Name
O DTS gera um nome automaticamente. Especifique um nome descritivo para facilitar a identificação. O nome não precisa ser único.
Instance Type
Selecione User-Created Database Connected over Express Connect, VPN Gateway, or Smart Access Gateway.
Instance Region
Preenchido automaticamente a partir da página de compra. Não pode ser alterado.
Peer VPC
Selecione o ID da VPC conectada ao banco de dados MySQL auto-gerenciado.
Database Type
Preenchido automaticamente como MySQL. Não pode ser alterado.
IP Address
Insira o endereço IP do servidor do banco de dados MySQL auto-gerenciado.
Port Number
Insira a porta de serviço do banco de dados de origem. Padrão: 3306.
Database Account
Insira a conta do MySQL criada para o DTS. A conta deve ter permissões SELECT, REPLICATION CLIENT, REPLICATION SLAVE e SHOW VIEW.
Database Password
Insira a senha da conta do banco de dados.
Instância de destino
Parâmetro
Descrição
Instance Type
Preenchido automaticamente como AnalyticDB for PostgreSQL. Não pode ser alterado.
Instance Region
Preenchido automaticamente a partir da página de compra. Não pode ser alterado.
Instance ID
Selecione a instância do AnalyticDB for PostgreSQL de destino.
Database Name
Insira o nome do banco de dados de destino.
Database Account
Insira a initial account da instância do AnalyticDB for PostgreSQL ou uma conta com a função
RDS_SUPERUSER. Para mais detalhes, consulte Criar uma conta de banco de dados e Gerenciar usuários e permissões.Database Password
Insira a senha da conta do banco de dados.

-
Clique em Set Whitelist and Next.
O DTS adiciona automaticamente seus blocos CIDR de servidor à lista de permissões da instância do AnalyticDB for PostgreSQL de destino, permitindo que o DTS se conecte à instância.
-
Selecione a política e os objetos de sincronização. Objetos a sincronizar Na seção Available, selecione as tabelas a serem sincronizadas e clique em
para movê-las para a seção Selected.Apenas tabelas podem ser selecionadas como objetos de sincronização. Para renomear objetos na instância de destino, use o recurso de mapeamento de nomes de objetos. Para mais detalhes, consulte Renomear um objeto a ser sincronizado .
O DTS cobra pela instância de sincronização durante períodos de nova tentativa. Libere a instância do DTS prontamente se as instâncias de origem e de destino forem liberadas.
Política de sincronização
Configuração
Opções
Initial Synchronization
Na maioria dos casos, selecione tanto Initial Schema Synchronization quanto Initial Full Data Synchronization. O DTS sincroniza os schemas e os dados existentes da origem para o destino antes de iniciar a sincronização incremental.
Processing Mode of Conflicting Tables
Clear Target Table: Ignora o item de pré-verificação de Conflito de Nome de Schema e limpa os dados da tabela de destino antes da sincronização completa inicial. Use esta opção ao executar uma sincronização de produção após testes. Ignore: Ignora o item de pré-verificação de Conflito de Nome de Schema e anexa aos dados existentes durante a sincronização completa inicial. Use esta opção ao mesclar dados de várias tabelas em uma só.
Synchronization Type
Selecione as operações DML e DDL a serem sincronizadas: Insert, Update, Delete, AlterTable.
Configurações adicionais
Configuração
Descrição
Rename Databases and Tables
Use o mapeamento de nomes de objetos para renomear objetos no destino. Consulte Mapeamento de nomes de objetos.
Replicate Temporary Tables When DMS Performs DDL Operations
Se você usar o Data Management (DMS) para DDL online na origem, escolha se deseja replicar as tabelas temporárias geradas pelo DMS. Yes: Replica os dados da tabela temporária (pode causar atraso na sincronização se o DDL gerar grandes volumes de dados). No: Replica apenas as alterações DDL originais; não replica tabelas temporárias (pode causar bloqueios de tabela no destino).
Retry Time for Failed Connections
A janela de tempo em que o DTS tenta reconectar após uma falha antes de marcar a tarefa como falha. Padrão: 720 minutos (12 horas). Defina este valor com base nos requisitos do seu negócio. Se o DTS reconectar dentro da janela, a tarefa será retomada automaticamente.

-
Se você selecionou Initial Schema Synchronization, especifique a coluna de chave primária e a coluna de distribuição para cada tabela na próxima página. Para obter informações sobre essas configurações, consulte Definir restrições e Definir distribuição de tabela.

-
Clique em Precheck.
O DTS executa uma pré-verificação antes de iniciar a tarefa. A tarefa não pode começar até passar na pré-verificação. Se algum item falhar, clique no ícone
ao lado do item com falha para visualizar detalhes, corrigir o problema e executar a pré-verificação novamente. Se o item com falha não for crítico para o seu caso de uso, ignore-o e execute a pré-verificação novamente. Após a mensagem The precheck is passed. aparecer, feche a caixa de diálogo Precheck. A tarefa de sincronização inicia automaticamente.
-
Aguarde a conclusão da sincronização inicial. O status da tarefa muda para Synchronizing quando a sincronização incremental começa. Monitore o status da tarefa na página Synchronization Tasks.
