O AnalyticDB for MySQL oferece suporte a análises multidimensionais com latência de milissegundos. Com o Data Transmission Service (DTS), você pode sincronizar dados do RDS MySQL ou RDS MySQL Serverless para o AnalyticDB for MySQL, o que ajuda a criar rapidamente sistemas de BI corporativo, consultas interativas e relatórios em tempo real.
or RDS MySQL Serverless
Pré-requisitos
Todas as tabelas a serem sincronizadas na instância de origem do RDS MySQL devem ter uma chave primária.
Um cluster de destino do AnalyticDB for MySQL foi criado. Para mais informações, consulte Create a cluster.
Certifique-se de que o cluster de destino do AnalyticDB for MySQL tenha espaço de armazenamento suficiente.
Limitações
Durante a inicialização completa dos 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. Quando os bancos de dados têm baixo desempenho, especificações baixas ou cargas de trabalho pesadas (por exemplo, um grande número de instruções SQL lentas, tabelas sem chaves primárias ou deadlocks no banco de dados de destino), a pressão sobre o banco de dados pode aumentar ainda mais e os service podem ficar indisponíveis. Portanto, avalie o desempenho dos bancos de dados de origem e de destino antes de iniciar a sincronização de dados. Recomenda-se execute a sincronização de dados durante horários de menor movimento (por exemplo, quando a carga da CPU dos bancos de dados de origem e de destino estiver abaixo de 30%).
-
Não use ferramentas como gh-ost ou pt-online-schema-change para execute operações DDL online nos objetos a serem sincronizados no banco de dados de origem durante a sincronização de dados. Caso contrário, a tarefa de sincronização falhará.
Devido à limitação de uso do AnalyticDB for MySQL, se o uso de disco de qualquer nó no cluster exceder 80%, o cluster será bloqueado. Antes de começar, estime o espaço de armazenamento necessário para os objetos a serem sincronizados e certifique-se de que o cluster de destino tenha capacidade suficiente.
Índices de prefixo não podem ser sincronizados. Se o banco de dados de origem contiver índices de prefixo, a sincronização de dados poderá falhar.
Se o cluster de destino do AnalyticDB for MySQL 3.0 estiver realizando backup enquanto a tarefa do DTS é executada, a tarefa falhará.
Faturamento
|
Tipo de sincronização |
Preço |
|
Sincronização de schema e sincronização completa de dados |
Gratuito. |
|
Sincronização incremental de dados |
Cobrado. Para mais informações, consulte Billing overview. |
Operações SQL suportadas
Operações DDL: CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE, ADD COLUMN, DROP COLUMN e MODIFY COLUMN
Operações DML: INSERT, UPDATE e DELETE
Se você alterar o tipo de dados de um campo na tabela de origem durante a sincronização de dados, a tarefa de sincronização relatará um erro e será interrompida. Você pode corrigir o problema manualmente seguindo as instruções no final deste tópico. Para mais informações, consulte Fix synchronization failures caused by field type changes.
Se você alterar o tipo de dados de um campo na tabela de origem durante a sincronização de dados, a tarefa de sincronização relatará um erro e será interrompida. Você pode corrigir o problema manualmente seguindo as instruções no final deste tópico. Para mais informações, consulte Fix synchronization failures caused by field type changes.
Permissões necessárias para a conta do banco de dados
|
Banco de dados |
Permissões necessárias |
|
RDS MySQL |
As permissões REPLICATION CLIENT, REPLICATION SLAVE e SHOW VIEW, e a permissão SELECT em todos os objetos a serem sincronizados. |
|
AnalyticDB for MySQL |
As permissões READ e WRITE. |
Mapeamentos de tipos de dados
Os tipos de dados do MySQL e do AnalyticDB for MySQL não possuem um mapeamento um para um. Durante a inicialização do schema, o DTS mapeia os tipos de dados com base nas definições de tipos de dados. Para mais informações, consulte Schema initialization: Data type mappings.
Procedimento
-
Adquira uma tarefa de sincronização de dados. Para mais informações, consulte Purchase a DTS instance.
NotaAo adquirir a tarefa, defina a instância de origem como MySQL, a instância de destino como AnalyticDB MySQL e a topologia de sincronização como One-way Synchronization.
acesse o console do Data Transmission Service.
No painel de navegação à esquerda, clique em Data Synchronization.
-
Na parte superior da página Data Synchronization, selecione a região da instância de sincronização de dados.
Encontre a instância de sincronização de dados adquirida e clique em Configure Synchronization Channel.
-
configure as instâncias de origem e de destino para o canal de sincronização.
Seção
Parâmetro
Descrição
N/D
Synchronization Task Name
O DTS gera automaticamente um nome para a tarefa. Recomendamos que você especifique um nome descritivo para fácil identificação. O nome não precisa ser único.
Source instance information
Instance Type
selecione RDS Instance.
Instance Region
A região da instância de origem selecionada ao adquirir a instância de sincronização de dados. Este parâmetro não pode ser alterado.
Instance ID
selecione o id da instância RDS de origem.
Database Account
insira a conta do banco de dados da instância RDS de origem. Para mais informações sobre as permissões necessárias, consulte Required database account permissions.
NotaSe o tipo de banco de dados da instância RDS de origem for MySQL 5.5 ou MySQL 5.6, não é necessário configure Database Account e Database Password.
Database Password
insira a senha da conta do banco de dados.
Connection Method
selecione Non-encrypted ou SSL-encrypted conforme necessário. Se você selecione SSL-encrypted, deverá ative a criptografia SSL para a instância RDS antecipadamente. Para mais informações, consulte Use a cloud certificate to enable SSL encryption.
ImportanteAtualmente, a Encryption só pode ser definida nas regiões da China continental e China (Hong Kong).
Destination instance information
Instance Type
Fixado como ADS. Este parâmetro não pode ser alterado.
Instance Region
A região da instância de destino selecionada ao adquirir a instância de sincronização de dados. Este parâmetro não pode ser alterado.
Version
selecione 3.0.
Database
selecione o id do cluster de destino do AnalyticDB for MySQL.
Database Account
insira a conta do banco de dados do cluster de destino do AnalyticDB for MySQL. Para mais informações sobre as permissões necessárias, consulte Required database account permissions.
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 de destino for uma instância de banco de dados da Alibaba Cloud, como uma instância do 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 o banco de dados de origem ou de destino for um banco de dados autogerenciado hospedado em uma instância do 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. Se o banco de dados autogerenciado estiver hospedado em várias instâncias ECS, você deverá adicionar manualmente os blocos CIDR dos servidores DTS às regras do grupo de segurança de cada instância ECS. Se o banco de dados de origem ou de destino for um banco de dados autogerenciado implantado em um data center ou fornecido por um provedor de service em nuvem terceirizado, você deverá adicionar manualmente os blocos CIDR dos servidores DTS à lista de permissões de endereços ip do banco de dados para permitir que o DTS acesse o banco de dados. Para mais informações, consulte Whitelist DTS server IP addresses.
AvisoAdicionar os blocos CIDR de endereços ip públicos dos servidores DTS, seja automaticamente ou manualmente, pode apresentar riscos de segurança. Ao usar este product, você reconhece e aceita esses riscos potenciais. Você deve implementar proteções básicas de segurança. Essas proteções incluem, mas não se limitam a, fortalecer a segurança de senhas, restringir portas abertas para blocos CIDR, usar autenticação para comunicação interna de API e revisar e restringir regularmente blocos CIDR desnecessários. Alternativamente, você pode se conectar ao banco de dados por meio de uma rede interna, como uma linha alugada, um VPN Gateway ou um Smart Access Gateway.
-
configure a política e os objetos de sincronização.
Parâmetro
Descrição
Initial Synchronization
Por padrão, você deve selecione Initial Schema Synchronization e Initial Full Data Synchronization. Após a conclusão da pré-verificação, o DTS inicializa o schema e os dados dos objetos a serem sincronizados da instância de origem para o cluster de destino como linha de base para a sincronização incremental subsequente.
Processing Mode for Existing Target Tables
-
Precheck and Report Errors: verifica se o banco de dados de destino contém tabelas com os mesmos nomes. Se não existirem tabelas com os mesmos nomes, a verificação é aprovada. Se existirem tabelas com os mesmos nomes, um erro será relatado durante a pré-verificação e a tarefa de sincronização não será iniciada.
NotaSe as tabelas com os mesmos nomes no banco de dados de destino forem inconvenientes de exclua ou renomear, você pode modifique os nomes dessas tabelas no banco de dados de destino. Para mais informações, consulte Rename synchronized objects in the destination instance.
-
Ignore Errors and Proceed: ignora a verificação de tabelas com os mesmos nomes no banco de dados de destino.
AvisoSe você selecione Ignore Errors and Proceed, poderá ocorrer inconsistência de dados, o que apresenta riscos para o seu negócio. Por exemplo:
-
Se os schemas das tabelas forem iguais e um registro no banco de dados de destino tiver o mesmo valor de chave primária que um registro no banco de dados de origem, o registro no banco de dados de destino será mantido. Em outras palavras, o registro no banco de dados de origem não será sincronizado com o banco de dados de destino.
-
Se os schemas das tabelas forem diferentes, a inicialização dos dados poderá falhar, apenas os dados em algumas colunas poderão ser sincronizados ou a sincronização poderá falhar.
-
Merge Multi Tables
-
Se você selecione Yes: o DTS adiciona uma coluna
__dts_data_sourcea cada tabela para armazenar a origem dos dados, e a sincronização DDL não será mais suportada. -
Se você selecione No: a opção padrão. A sincronização DDL é suportada.
NotaO recurso de mesclagem de tabelas funciona no nível da tarefa, e não no nível da tabela. Se você deseja mesclar apenas algumas tabelas, crie duas tarefas de sincronização de dados separadas.
Synchronization Type
selecione os tipos de operação a serem sincronizados com base nos requisitos do seu negócio. Para mais informações sobre as operações de sincronização suportadas, consulte Supported SQL operations. Todos os tipos de operação são selecionados por padrão.
Objects to Synchronize
Na caixa Source Objects, selecione os objetos a serem sincronizados e clique em ícone
para movê-los para a caixa Selected Objects.Você pode selecione bancos de dados ou tabelas como objetos a serem sincronizados.
Nota-
Se você selecione um banco de dados inteiro como objeto de sincronização, todas as alterações de schema no banco de dados serão sincronizadas com o banco de dados de destino.
-
Se você selecione uma tabela como objeto de sincronização, apenas as operações ADD COLUMN na tabela serão sincronizadas com o banco de dados de destino.
-
Por padrão, os nomes dos objetos sincronizados permanecem inalterados. Se você deseja que os objetos sincronizados tenham nomes diferentes no cluster de destino, use o recurso de mapeamento de nomes de objetos. Para mais informações, consulte Rename synchronized objects in the destination instance.
Library, table, and column mapping
modifique os nomes dos objetos sincronizados na instância de destino. Para mais informações, consulte Map databases, tables, and columns.
Replicate temporary tables during DMS online DDL
Se você usar Data Management (DMS) para execute alterações DDL online no banco de dados de origem, poderá escolha se deseja sincronizar as tabelas temporárias geradas pelas alterações DDL.
-
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 duration
Se o DTS não conseguir se conectar à instância de origem ou de destino, ele tentará novamente por 720 minutos (12 horas) por padrão. Você também pode especifique uma duração de tentativa personalizada. Se o DTS se reconectar à instância de origem ou de destino dentro da duração especificada, 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 tentativas de reconexão. Personalize a duração da tentativa com base nas necessidades do seu negócio ou libere a instância do DTS assim que as instâncias de origem e de destino forem liberadas.
-
Após concluir as configurações anteriores, clique em Next no canto inferior direito da página.
-
defina os tipos das tabelas a serem sincronizadas no banco de dados de destino.
A tabela de configuração também inclui as colunas ADB Table Group, ADB Table Name, Number of Partitions e Definition Status. Quando você passa o mouse sobre o nome de um banco de dados ou tabela, o DTS mostra o nome da tabela de origem.
NotaSe você selecione Initial Schema Synchronization, deverá defina as tabelas a serem sincronizadas no AnalyticDB for MySQL, incluindo o Type, a key column primária e a partition column. Para mais informações, consulte CREATE TABLE.
-
Após concluir as configurações anteriores, clique em Precheck and Start no canto inferior direito da página.
NotaAntes que a tarefa de sincronização seja iniciada oficialmente, uma pré-verificação é realizada. A tarefa de sincronização só pode ser iniciada após a aprovação na pré-verificação.
-
Se a pré-verificação falhar, clique em ícone
ao lado de um item de verificação específico para visualize os detalhes da falha.Siga o aviso para corrigir o problema e execute a pré-verificação novamente.
Se você não precisar corrigir os itens de verificação de aviso, também poderá selecione Ignore, Ignore Warning Items and Rerun Precheck para ignorar os itens de verificação de aviso e execute a pré-verificação novamente.
Quando Precheck Passed for exibido na caixa de diálogo Precheck, feche a caixa de diálogo Precheck. A tarefa de sincronização será iniciada.
-
Aguarde até que a inicialização do link seja concluída e a tarefa entre no estado Synchronizing.
Você pode acessar a página Data Synchronization para visualize o status da tarefa de sincronização.
A lista de tarefas de sincronização nesta página inclui colunas para Instance ID/Task Name, status, Sync Overview (latência e velocidade), Billing Method, Synchronization Topology e Actions. Na coluna Actions, você pode execute operações como Pause Synchronization, Switch to Subscription e atualize. O cabeçalho da página oferece suporte à pesquisa por nome de tarefa e à filtragem ou classificação por status.
Corrigir falhas de sincronização causadas por alterações de tipo de campo
Se você alterar o tipo de dados de um campo na tabela de origem durante a sincronização de dados, a tarefa de sincronização relatará um erro e será interrompida. Você pode corrigir o problema manualmente seguindo estas etapas.
Na instância de destino, crie uma nova tabela B (por exemplo, customer_new) com base na tabela A que falhou (por exemplo, customer) e ajuste os tipos de campo da tabela B para os tipos necessários.
Execute a instrução INSERT INTO SELECT para copiar os dados da tabela A para a nova tabela B. Certifique-se de que os dados em ambas as tabelas sejam consistentes.
Renomeie ou exclua a tabela A que falhou e, em seguida, renomeie a tabela B para customer.
No console do DTS, reinicie a tarefa de sincronização de dados.