O PolarDB é um banco de dados relacional distribuído nativo da nuvem de última geração desenvolvido pela Alibaba Cloud. Ele oferece total compatibilidade com MySQL, além de facilidade de uso, alto desempenho, alta confiabilidade e alta disponibilidade. Use o DTS para sincronizar dados do ApsaraDB RDS for MySQL para o PolarDB for MySQL.
Pré-requisitos
Crie um cluster PolarDB for MySQL. Para mais informações, consulte Custom Purchase.
Observações de uso
Durante a sincronização inicial completa de dados, o DTS consome recursos de leitura e gravação dos bancos de dados de origem e destino, o que aumenta a carga do banco de dados. Se o desempenho do banco de dados for baixo, as especificações da instância forem reduzidas ou o tráfego de negócios for intenso (por exemplo, se o banco de dados de origem tiver muitas consultas SQL lentas ou tabelas sem chaves primárias, ou se o banco de dados de destino sofrer deadlocks), a carga aumentará significativamente e poderá até causar indisponibilidade do serviço. Antes de iniciar a sincronização, avalie o desempenho das instâncias de origem e destino. Recomendamos executar a sincronização em horários de baixa demanda, como quando a utilização da CPU de ambas as instâncias estiver abaixo de 30%.
Não use ferramentas como gh-ost ou pt-online-schema-change para executar operações DDL online nos objetos de sincronização no banco de dados de origem durante a sincronização de dados. Caso contrário, a tarefa de sincronização falhará.
Operações
INSERTconcorrentes durante a sincronização inicial completa causam fragmentação de tabelas no cluster de destino. Após a conclusão dessa fase, o tablespace do cluster de destino será maior que o do banco de dados de origem.Se uma tabela no banco de dados de origem não possuir chave primária ou restrição única, e seus registros não forem exclusivos em todos os campos, poderão ocorrer dados duplicados no banco de dados de destino.
Faturamento
|
Tipo de sincronização |
Preço |
|
Sincronização de esquema e sincronização completa de dados |
Gratuito. |
|
Sincronização incremental de dados |
Pago. Para mais informações, consulte Billing overview. |
Operações SQL suportadas
|
Tipo de operação |
Instrução SQL |
|
DML |
INSERT, UPDATE, DELETE e REPLACE |
|
DDL |
|
Topologias de sincronização suportadas
Sincronização unidirecional um para um
Sincronização unidirecional um para muitos
Sincronização em cascata unidirecional
Sincronização unidirecional muitos para um
Cada topologia possui observações de uso específicas. Consulte Synchronization topologies.
Limitações
-
Incompatibilidade com triggers
Se você selecionar um banco de dados inteiro como objeto de sincronização e ele contiver um trigger que atualize uma tabela dentro desse mesmo banco, poderá ocorrer inconsistência de dados entre a origem e o destino. Para obter uma solução, consulte Configure a data synchronization or migration task for a source database that contains a trigger.
-
Limitações em operações RENAME TABLE
A operação
RENAME TABLEpode causar inconsistência de dados. Por exemplo, se você sincronizar apenas uma única tabela e ela for renomeada na instância de origem durante a sincronização, seus dados não serão replicados para o banco de dados de destino. Para prevenir isso, selecione todo o banco de dados que contém a tabela como objeto de sincronização. Se a tabela for renomeada para um banco de dados diferente, esse novo banco também deverá ser sincronizado.
Procedimento
-
Adquira uma tarefa de sincronização de dados. Para mais informações, consulte Purchase process.
NotaAo adquirir a tarefa, defina Source Database como MySQL, Destination Database como PolarDB e Synchronization Topology como One-way Synchronization.
-
Faça login no DTS console.
NotaCaso seja redirecionado automaticamente para o console do Data Management (DMS), clique em no ícone
no canto inferior direito e, em seguida, clique em
para retornar ao console clássico 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 sua instância de destino está localizada.
Localize a tarefa de sincronização de dados adquirida e clique em Configure Task.
-
Configure as instâncias de origem e destino.
Categoria
Parâmetro
Descrição
N/A
Synchronization Task Name
O DTS gera um nome padrão. Especifique um nome descritivo. Não é necessário que seja único.
Source Instance Details
Instance Type
Selecione RDS Instance.
Instance Region
Região da instância de origem selecionada durante a compra da instância DTS. Este valor não pode ser alterado.
Database Account
Insira a conta do banco de dados da instância de origem ApsaraDB RDS for MySQL.
Nota-
A conta deve ter permissões REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW e SELECT em todos os objetos a serem sincronizados.
-
Para instâncias de origem RDS for MySQL executando MySQL 5.5 ou MySQL 5.6, os parâmetros Database Account e Database Password não são obrigatórios.
Database Password
Insira a senha da conta do banco de dados.
Connection Method
Selecione Non-encrypted ou SSL-encrypted. Se escolher SSL-encrypted, ative primeiro a criptografia SSL na instância de origem ApsaraDB RDS for MySQL. Set SSL encryption.
ImportanteAtualmente, o parâmetro Encryption está disponível apenas para regiões na China continental e na região China (Hong Kong).
Destination Instance Details
Instance Type
Defina como PolarDB. Este valor não pode ser alterado.
Instance Region
Região da instância de destino selecionada durante a compra da instância DTS. Este valor não pode ser alterado.
PolarDB Instance ID
Selecione o ID do cluster de destino PolarDB for MySQL.
Database Account
Insira a conta do banco de dados para o cluster PolarDB for MySQL.
NotaA conta deve ter permissão ALL sobre os objetos a serem sincronizados.
Database Password
Insira a senha da conta do banco de dados.
-
-
No canto inferior direito da página, clique em Set Whitelist and Next.
Se o banco de dados de origem ou destino for uma instância de banco de dados da Alibaba Cloud, como ApsaraDB RDS for MySQL ou ApsaraDB for MongoDB, o DTS adiciona automaticamente os blocos CIDR dos servidores DTS à lista de permissões de endereços IP da instância. Se a origem ou o destino for um banco de dados autogerenciado hospedado em uma instância Elastic Compute Service (ECS), o DTS adiciona automaticamente os blocos CIDR dos servidores DTS às regras do grupo de segurança da instância ECS, e você deve garantir que a instância ECS possa acessar o banco de dados. Caso o banco autogerenciado esteja hospedado em várias instâncias ECS, adicione manualmente os blocos CIDR dos servidores DTS às regras de grupo de segurança de cada instância ECS. Se a origem ou o destino for um banco de dados autogerenciado implantado em um data center local ou fornecido por um provedor de serviços em nuvem terceirizado, adicione manualmente os blocos CIDR dos servidores DTS à lista de permissões de endereços IP do banco de dados para permitir o acesso do DTS. Para mais informações, consulte Whitelist DTS server IP addresses.
AvisoAdicionar os blocos CIDR de endereços IP públicos dos servidores DTS, seja automática ou manualmente, pode apresentar riscos de segurança. Ao utilizar este produto, você reconhece e aceita esses riscos potenciais. É fundamental implementar proteções básicas de segurança, incluindo, mas não se limitando a: fortalecer a segurança de senhas, restringir portas abertas para blocos CIDR, usar autenticação para comunicação interna de API e revisar/restringir regularmente blocos CIDR desnecessários. Alternativamente, conecte-se ao banco de dados por meio de uma rede interna, como uma linha dedicada (leased line), VPN Gateway ou Smart Access Gateway.
-
Configure o modo de processamento para tabelas de destino existentes e selecione os objetos a serem sincronizados.
Parâmetro
Descrição
Processing mode for existing target tables
-
Precheck and Report Errors: O DTS verifica se existem tabelas no banco de dados de destino com os mesmos nomes das tabelas de origem. Se não houver conflitos, a pré-verificação é aprovada. Se existir conflito de nomes, a pré-verificação falha e a tarefa é interrompida.
NotaCaso não seja possível excluir ou renomear as tabelas conflitantes no banco de dados de destino, utilize a opção Set object names in the destination instance para evitar conflitos de nomes.
-
Ignore Errors and Proceed: Ignora a verificação de tabelas com nomes conflitantes no banco de dados de destino.
AvisoSelecionar Ignore Errors and Proceed pode causar inconsistência de dados e outros riscos. Por exemplo:
-
Se os esquemas das tabelas forem idênticos, os registros existentes na tabela de destino que compartilham uma chave primária com registros da origem não serão alterados durante a sincronização inicial. No entanto, eles serão sobrescritos pelas alterações da origem durante a sincronização incremental.
-
Se os esquemas das tabelas forem diferentes, a sincronização inicial poderá falhar ao transferir algumas colunas ou falhar completamente.
-
Select synchronization objects
Na caixa Source Objects, clique em nos objetos que deseja sincronizar e, em seguida, clique em no ícone
para movê-los para a caixa Selected Objects.É possível selecionar bancos de dados e tabelas como objetos de sincronização.
Nota-
Ao selecionar um banco de dados inteiro, todas as alterações de esquema para objetos dentro desse banco serão sincronizadas com o banco de dados de destino.
-
Por padrão, os nomes dos objetos não são alterados. Para renomear objetos no cluster de destino, utilize o recurso de mapeamento de nomes de objetos. Para mais informações, consulte Set object names in the destination instance.
Map or rename objects
Altere os nomes dos objetos sincronizados na instância de destino. Para mais informações, consulte Map databases, tables, and columns.
Replicate temporary tables from DMS online DDL operations
Se você utilizar o Data Management (DMS) para realizar alterações DDL online no banco de dados de origem, poderá escolher se deseja sincronizar as tabelas temporárias geradas por essas alterações.
-
Yes: Sincroniza as tabelas temporárias geradas pelas alterações DDL online.
NotaSe uma grande quantidade de dados de tabelas temporárias for gerada pelas alterações DDL online, a tarefa de sincronização de dados poderá sofrer atrasos.
-
No: Não sincroniza as tabelas temporárias geradas pelas alterações DDL online. Apenas as operações DDL originais do banco de dados de origem são sincronizadas.
NotaEsta opção faz com que as tabelas no banco de dados de destino sejam bloqueadas.
Connection retry period
Se o DTS não conseguir se conectar à instância de origem ou destino, ele tentará novamente por 720 minutos (12 horas) por padrão. Também é possível especificar uma duração personalizada de nova tentativa. Se o DTS reconectar à instância de origem ou destino dentro do período especificado, a tarefa de sincronização será retomada automaticamente. Caso contrário, a tarefa falhará.
NotaVocê é cobrado pelo tempo de execução da tarefa durante as novas tentativas de conexão. Personalize a duração da nova tentativa com base nas necessidades do seu negócio ou libere a instância DTS assim que as instâncias de origem e destino forem liberadas.
-
Após concluir as configurações anteriores, clique em Next no canto inferior direito da página.
-
Configure as definições avançadas para a sincronização inicial.
NotaOs tipos de sincronização inicial incluem sincronização inicial de esquema e sincronização inicial completa de dados. Se você selecionar tanto Initial Schema Synchronization quanto Initial Full Data Synchronization, o DTS sincronizará o esquema e os dados existentes dos objetos selecionados do banco de dados de origem para o banco de dados de destino antes de iniciar a sincronização incremental de dados.
-
Após concluir as configurações anteriores, clique em Precheck and Start no canto inferior direito da página.
NotaUma pré-verificação é executada antes do início da tarefa de sincronização, e a tarefa só pode ser iniciada após a aprovação.
-
Se a pré-verificação falhar, clique em no ícone
ao lado do item com falha para visualizar os detalhes.Corrija os problemas com base na causa identificada e execute a pré-verificação novamente.
Se não for necessário corrigir os itens que geraram avisos, clique em Ignore ou Ignore Warnings and Rerun Precheck para ignorar os avisos e executar a pré-verificação novamente.
Depois que a caixa de diálogo Precheck exibir Precheck Passed, feche a caixa de diálogo Precheck. A tarefa de sincronização será iniciada automaticamente.
-
Aguarde a conclusão da inicialização da tarefa e a entrada no estado Synchronizing.
Visualize o status da tarefa de sincronização de dados na página Data Synchronization.