Use o Data Transmission Service (DTS) para migrar dados de um cluster PolarDB for MySQL para um cluster AnalyticDB for MySQL V3.0. Após a migração, use o AnalyticDB for MySQL para criar sistemas de business intelligence (BI), sistemas de consulta interativa e sistemas de relatórios em tempo real.
Pré-requisitos
Antes de começar, certifique-se de que:
Existe um cluster PolarDB for MySQL de origem. Para mais detalhes, consulte Compra personalizada e Comprar um cluster por assinatura
Existe um cluster AnalyticDB for MySQL V3.0 de destino. Para mais detalhes, consulte Criar um cluster
O espaço de armazenamento disponível no cluster de destino é maior que o tamanho total dos dados do cluster de origem
As contas de banco de dados de ambos os clusters possuem as permissões necessárias (consulte Permissões necessárias)
Tipos de migração
O DTS oferece suporte aos seguintes tipos de migração para este cenário:
|
Tipo de migração |
Descrição |
|
Schema migration |
Migra os esquemas dos objetos selecionados do PolarDB for MySQL para o AnalyticDB for MySQL V3.0. Como os dois bancos de dados são heterogêneos, o DTS não garante a consistência do esquema após a migração. Avalie o impacto da conversão de tipos de dados antes de prosseguir. Para mapeamentos de tipos de dados, consulte Mapeamentos de tipos de dados entre bancos de dados heterogêneos. |
|
Full data migration |
Transfere todos os dados históricos dos objetos selecionados para o cluster de destino. Se a opção Full Data Migration estiver selecionada, será possível migrar o esquema e os dados das tabelas criadas com a instrução CREATE TABLE para o banco de dados de destino. |
|
Incremental data migration |
Após a conclusão da migração completa de dados, replica continuamente as novas alterações de dados da origem para o destino. Use este tipo para migrar sem interromper suas aplicações. |
Combinação recomendada: Selecione schema migration, full data migration e incremental data migration simultaneamente. Essa abordagem mantém o banco de dados de origem gravável durante a migração e preserva a consistência dos dados.
Operações SQL suportadas na migração incremental de dados
|
Tipo |
Operações suportadas |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE, ADD COLUMN, MODIFY COLUMN, DROP COLUMN |
Ao gravar no cluster AnalyticDB for MySQL V3.0 de destino, o DTS converte automaticamente UPDATE para REPLACE INTO. Se uma operação UPDATE tiver como alvo a chave primária, ela será convertida em DELETE seguida de INSERT.
Caso você altere o tipo de dados de um campo na tabela de origem durante a migração, a tarefa falhará. Para recuperar: 1. No cluster de destino, crie uma nova tabela (por exemplo, customer_new) com o mesmo esquema da original. 2. Execute INSERT INTO SELECT para copiar os dados da tabela original para a nova tabela. 3. Renomeie ou exclua a tabela original e, em seguida, renomeie a nova tabela com o nome original. 4. Reinicie a tarefa de migração de dados no console do DTS.
Faturamento
|
Tipo de migração |
Taxa de configuração da instância |
Taxa de tráfego de internet |
|
Schema migration + full data migration |
Gratuita |
Cobrada quando o Access Method de destino está definido como Public IP Address |
|
Incremental data migration |
Cobrada |
— |
Para detalhes sobre preços, consulte Visão geral do faturamento.
Permissões necessárias
|
Banco de dados |
Permissão necessária |
|
PolarDB for MySQL |
Permissões de leitura nos objetos a serem migrados |
|
Cluster AnalyticDB for MySQL V3.0 |
Permissões de leitura e gravação |
Para instruções sobre como criar contas e conceder permissões, consulte:
PolarDB for MySQL: Criar e gerenciar uma conta de banco de dados
AnalyticDB for MySQL V3.0: Criar uma conta de banco de dados
Limitações
Revise as limitações a seguir antes de criar uma tarefa de migração. A coluna Applies to identifica quais tipos de migração cada limitação afeta.
Limitações do banco de dados de origem
| Limitação | Applies to |
|---|---|
| O servidor de origem deve ter largura de banda de saída suficiente. Largura de banda insuficiente reduz a velocidade da migração. | Todos os tipos de migração |
| As tabelas devem ter restrições PRIMARY KEY ou UNIQUE, com todos os campos únicos. Caso contrário, o destino poderá conter registros duplicados. | Todos os tipos de migração |
| Ao migrar tabelas individualmente (não bancos de dados inteiros), uma única tarefa suporta no máximo 1.000 tabelas. Exceder esse limite causa um erro de solicitação. Para migrar mais de 1.000 tabelas, utilize várias tarefas ou migre o banco de dados inteiro. | Todos os tipos de migração |
O log binário deve estar ativado e o parâmetro loose_polar_log_bin deve estar definido como on. Caso contrário, a pré-verificação falhará. Consulte Ativar log binário e Modificar parâmetros. Nota
A ativação do log binário gera cobranças de armazenamento para os arquivos de log. |
Apenas migração incremental de dados |
| Os logs binários devem ser retidos por pelo menos 3 dias; recomenda-se 7 dias. Períodos de retenção mais curtos podem impedir que o DTS recupere os logs, resultando em falha na tarefa ou perda de dados. Consulte Modificar o período de retenção. | Apenas migração incremental de dados |
| Não execute instruções DDL que alterem esquemas de banco de dados ou tabelas. Essa ação causa falha na tarefa. | Apenas schema migration e full data migration |
Não execute instruções DDL que adicionem comentários (por exemplo, ALTER TABLE table_name COMMENT='Table comment';). Essa ação causa falha na tarefa. |
Todos os tipos de migração |
| Não grave dados no banco de dados de origem durante a migração. Dados gravados nesse período causam inconsistência entre origem e destino. (Esta restrição não se aplica se você também selecionar a migração incremental de dados.) | Apenas full data migration |
Outras limitações
|
Limitação |
Applies to |
|
Índices de prefixo não podem ser migrados. Tabelas de origem com índices de prefixo podem falhar na migração. |
Todos os tipos de migração |
|
Configure uma chave primária personalizada na tabela de destino ou defina a Primary Key Column em Configurations for Databases, Tables, and Columns. Caso contrário, a migração poderá falhar. |
Todos os tipos de migração |
|
Nós somente leitura do cluster PolarDB for MySQL de origem não são migrados. |
Todos os tipos de migração |
|
Tabelas externas do OSS do cluster PolarDB for MySQL de origem não são migradas. |
Todos os tipos de migração |
|
Se o uso de disco de qualquer nó no cluster AnalyticDB for MySQL de destino exceder 80%, ocorrerá uma exceção e a tarefa do DTS será atrasada. Estime o espaço em disco necessário antes de iniciar a migração e garanta que o cluster de destino tenha armazenamento suficiente. |
Todos os tipos de migração |
|
Se o cluster AnalyticDB for MySQL V3.0 de destino estiver sendo submetido a backup enquanto a tarefa do DTS é executada, a tarefa falhará. |
Todos os tipos de migração |
|
O DTS recupera valores de colunas FLOAT e DOUBLE usando |
Todos os tipos de migração |
|
O DTS tenta automaticamente repetir tarefas com falha por até 7 dias. Antes de alternar cargas de trabalho para o destino, pare ou libere quaisquer tarefas com falha, ou execute |
Todos os tipos de migração |
|
Enquanto a instância do DTS estiver em execução, o serviço executa periodicamente |
Apenas migração incremental de dados |
|
Se uma instrução DDL falhar no destino, a tarefa continuará em execução. Verifique os logs da tarefa para revisar as instruções com falha. Consulte Visualizar logs da tarefa. |
Todos os tipos de migração |
|
Durante a migração de esquema, o DTS não migra chaves estrangeiras. Nas migrações completa e incremental de dados, o DTS desativa temporariamente as verificações de restrição de chave estrangeira e operações em cascata no nível da sessão. Operações de atualização ou exclusão em cascata na origem durante a migração podem causar inconsistência de dados. |
Todos os tipos de migração |
|
Operações INSERT simultâneas durante a migração completa de dados causam fragmentação de tabela no destino. Após a conclusão da migração completa, o tablespace de destino será maior que o da origem. |
Apenas full data migration |
|
Se uma tarefa falhar, o suporte técnico do DTS tentará restaurá-la dentro de 8 horas. A tarefa pode ser reiniciada e seus parâmetros modificados durante a restauração. Parâmetros do banco de dados não são modificados. |
Todos os tipos de migração |
Quando o AnalyticDB for MySQL é o destino, o DTS suporta a gravação dos tipos de dados básicos e complexos (ARRAY, MAP e JSON) do AnalyticDB for MySQL. Se a tabela de destino contiver colunas com tipos de dados não suportados pelo DTS, como MULTIVALUE, a tarefa de sincronização ou migração de dados poderá falhar. Para mais informações, consulte Tipos de dados básicos.
Criar uma tarefa de migração
Etapa 1: Acessar a página Data Migration
Use um dos seguintes consoles:
Console do DTS
Faça login no console do DTS.
No painel de navegação à esquerda, clique em Data Migration.
No canto superior esquerdo, selecione a região onde a instância de migração residirá.
Console do DMS
As etapas exatas podem variar dependendo do modo e do layout do console do DMS. Consulte Modo simples e Personalizar o layout e o estilo do console do DMS.
Faça login no console do DMS.
Na barra de navegação superior, passe o ponteiro sobre Data + AI > DTS (DTS) > Data Migration.
Na lista suspensa à direita de Data Migration Tasks, selecione a região onde a instância residirá.
Etapa 2: Configurar bancos de dados de origem e destino
Clique em Create Task.
-
Configure os seguintes parâmetros.
AvisoApós configurar os bancos de dados de origem e destino, leia os Limits exibidos na parte superior da página antes de prosseguir. Ignorar esta etapa pode causar falha na tarefa ou resultar em inconsistência de dados.
Source Database
Parâmetro
Descrição
Task Name
Nome para a tarefa do DTS. O DTS gera um nome automaticamente. Use um nome descritivo para facilitar a identificação. Não é necessário que seja único.
Select Existing Connection
Se o cluster de origem já estiver registrado no DTS, selecione-o na lista suspensa. O DTS preencherá os parâmetros restantes automaticamente. Caso contrário, configure os parâmetros abaixo. No console do DMS, selecione em Select a DMS database instance.
Database Type
Selecione PolarDB for MySQL.
Access Method
Selecione Alibaba Cloud Instance.
Instance Region
Selecione a região onde o cluster PolarDB for MySQL de origem reside.
PolarDB Cluster ID
Selecione o ID do cluster PolarDB for MySQL de origem.
Database Account
Insira a conta do banco de dados do cluster de origem. Consulte Permissões necessárias.
Database Password
Insira a senha da conta do banco de dados.
Encryption
Especifique se deseja criptografar a conexão. Para detalhes sobre criptografia SSL, consulte Configurar criptografia SSL.
Destination Database
Parâmetro
Descrição
Select Existing Connection
Se o cluster de destino já estiver registrado no DTS, selecione-o na lista suspensa. O DTS preencherá os parâmetros restantes automaticamente. Caso contrário, configure os parâmetros abaixo. No console do DMS, selecione em Select a DMS database instance.
Database Type
Selecione AnalyticDB for MySQL V3.0.
Access Method
Selecione Alibaba Cloud Instance.
Instance Region
Selecione a região onde o cluster de destino reside.
Instance ID
Selecione o ID do cluster AnalyticDB for MySQL V3.0 de destino.
Database Account
Insira a conta do banco de dados do cluster de destino. Consulte Permissões necessárias.
Database Password
Insira a senha da conta do banco de dados.
-
Clique em Test Connectivity and Proceed.
Certifique-se de que os blocos CIDR dos servidores do DTS foram adicionados às configurações de segurança dos bancos de dados de origem e de destino. Consulte Adicionar os blocos CIDR dos servidores do DTS .
Etapa 3: Configurar objetos para migração
-
Na página Configure Objects, defina os seguintes parâmetros:
Parâmetro Descrição Migration Types Selecione os tipos de migração a serem executados. Para migrar sem tempo de inatividade do serviço, selecione Schema Migration, Full Data Migration e Incremental Data Migration. Para uma migração única, selecione Schema Migration e Full Data Migration. Processing Mode for Existing Destination Tables Precheck and Report Errors (padrão): verifica se o destino contém tabelas com nomes idênticos aos da origem. Se existirem nomes idênticos, a pré-verificação falhará e a tarefa não poderá ser iniciada. Para resolver conflitos de nomes sem excluir tabelas de destino, use o recurso de mapeamento de nomes de objetos. Ignore Errors and Proceed: ignora a pré-verificação de nomes de tabelas idênticos. Use com cautela — pode resultar em inconsistência de dados. Durante a migração completa de dados, registros conflitantes no destino são mantidos. Durante a migração incremental de dados, registros conflitantes são sobrescritos. Select DDL and DML to Sync at the Instance Level As operações SQL a serem migradas durante a migração incremental de dados, definidas no nível da instância. Para configurar operações para um banco de dados ou tabela específica, clique com o botão direito do mouse no objeto na seção Selected Objects. Table Merging Yesconfigurações de notificação de alerta: adiciona uma coluna __dts_data_sourcea cada tabela para registrar a fonte de dados. Todas as tabelas de origem selecionadas são mescladas em uma única tabela de destino. Para detalhes, consulte Ativar o recurso de mesclagem de várias tabelas. No (padrão): as tabelas não são mescladas.Source Objects Selecione os objetos a serem migrados e clique na seta para movê-los para Selected Objects. Selecione colunas, tabelas ou bancos de dados inteiros. Se você selecionar tabelas, o DTS não migrará visualizações, gatilhos ou procedimentos armazenados. Se você selecionar um banco de dados inteiro: tabelas com chave primária usam as colunas da chave primária como chaves de distribuição; tabelas sem chave primária recebem uma chave primária de incremento automático, o que pode causar inconsistência de dados. Selected Objects Para renomear um objeto, clique com o botão direito nele e use o mapeamento de nome individual. Para renomear vários objetos de uma vez, clique em Batch Edit. Para filtrar linhas por condição, clique com o botão direito no objeto e especifique condições WHERE. Consulte Especificar condições de filtro. Renomear um objeto pode fazer com que objetos dependentes falhem na migração. -
Clique em Next: Advanced Settings e configure os seguintes parâmetros opcionais:
Parâmetro Descrição Dedicated Cluster for Task Scheduling Por padrão, o DTS usa o cluster compartilhado. Para melhorar a estabilidade, adquira um cluster dedicado. Consulte O que é um cluster dedicado do DTS. Copy the temporary table of the Online DDL tool Aplica-se quando você usa DMS ou gh-ost para DDL online na origem. Yes: migra tabelas temporárias geradas pelo DDL online. Grandes operações de DDL online podem aumentar a latência da migração. No, Adapt to DMS Online DDL: ignora tabelas temporárias; migra apenas o DDL original do DMS. As tabelas de destino podem ser bloqueadas. No, Adapt to gh-ost: ignora tabelas temporárias; migra apenas o DDL original do gh-ost. Use expressões regulares padrão ou personalizadas para filtrar tabelas sombra. As tabelas de destino podem ser bloqueadas. Importantept-online-schema-change não é suportado. Seu uso causa falha na tarefa do DTS.
Retry Time for Failed Connections Tempo durante o qual o DTS tenta reconectar após uma falha de conexão antes de marcar a tarefa como falha. Intervalo: 10–1.440 minutos. Padrão: 720 minutos. Recomendamos definir o parâmetro com um valor superior a 30 minutos. Se a conexão for restaurada dentro desse período, a tarefa será retomada automaticamente. NotaVárias tarefas que compartilham uma origem ou destino usam o tempo de nova tentativa configurado mais recentemente. Cobranças de instância do DTS se aplicam durante as novas tentativas.
Retry Time for Other Issues Tempo durante o qual o DTS tenta repetir operações DDL ou DML com falha. Intervalo: 1–1.440 minutos. Padrão: 10 minutos. Recomendamos definir o parâmetro com um valor superior a 10 minutos. Este valor deve ser menor que Retry Time for Failed Connections. Enable Throttling for Full Data Migration Limita o uso de recursos de leitura/gravação durante a migração completa de dados para reduzir a carga nos servidores de banco de dados. Configure QPS to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s). Disponível apenas quando Full Data Migration estiver selecionado. Enable Throttling for Incremental Data Migration Limita o uso de recursos durante a migração incremental de dados. Configure RPS of Incremental Data Migration e Data migration speed for incremental migration (MB/s). Disponível apenas quando Incremental Data Migration estiver selecionado. Whether to delete SQL operations on heartbeat tables Yes: o DTS não grava operações de tabela de heartbeat na origem. As métricas de latência de migração podem mostrar um atraso. No: o DTS grava operações de heartbeat na origem. O backup físico e a clonagem da origem podem ser afetados. Environment Tag Uma tag opcional para identificar a instância do DTS. Configure ETL Yes: habilita extração, transformação e carregamento (ETL). Insira instruções de processamento de dados no editor de código. Consulte Configurar ETL em uma tarefa de migração ou sincronização de dados. No: ETL está desativado. Monitoring and Alerting Yes: envia alertas quando a tarefa falha ou a latência da migração excede o limiar. Configure o limiar de alerta e as configurações de notificação. Consulte Configurar monitoramento e alertas. No: alertas estão desativados. Clique em Next Step: Data Verification para configurar uma tarefa de verificação de dados. Para detalhes, consulte Configurar uma tarefa de verificação de dados.
-
(Opcional) Clique em Next: Configure Database and Table Fields. Na caixa de diálogo, configure o Type, Primary Key Column, Distribution Key, Partition Key, Partitioning Rules e Partition Lifecycle para as tabelas de destino.
Esta etapa está disponível apenas quando Schema Migration estiver selecionado. Defina Definition Status como All para visualizar todas as tabelas. No campo Primary Key Column , você pode selecionar várias colunas para formar uma chave primária composta. Pelo menos uma coluna de chave primária também deve ser selecionada como chave de distribuição e chave de partição. Consulte CREATE TABLE .
Etapa 4: Executar a pré-verificação
-
Clique em Next: Save Task Settings and Precheck.
Para visualizar os parâmetros da API para esta configuração de tarefa, passe o mouse sobre Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters .
-
Aguarde a conclusão da pré-verificação. Se algum item falhar, clique em View Details ao lado do item com falha, resolva o problema e clique em Precheck Again. Se um alerta for acionado:
Para alertas que não podem ser ignorados, resolva o problema e execute a pré-verificação novamente.
Para alertas que podem ser ignorados, clique em Confirm Alert Details, depois clique em Ignore > OK > Precheck Again. Ignorar alertas pode resultar em inconsistência de dados.
Etapa 5: Adquirir uma instância e iniciar a tarefa
Aguarde até que a Success Rate atinja 100%, então clique em Next: Purchase Instance.
-
Na página Purchase Instance, configure o seguinte:
Parâmetro
Descrição
Resource Group
O grupo de recursos para a instância de migração. Padrão: default resource group. Consulte O que é Resource Management?
Instance Class
A classe da instância determina a velocidade da migração. Selecione com base na sua carga de trabalho. Consulte Classes de instâncias de migração de dados.
Marque a caixa de seleção Data Transmission Service (Pay-as-you-go) Service Terms.
Clique em Buy and Start, depois clique em OK na mensagem de confirmação.
Monitorar o progresso da tarefa
Após o início da tarefa, acesse a página Data Migration para monitorar o progresso.
Apenas migração completa de dados (sem incremental): A tarefa para automaticamente quando concluída. O status muda para Completed.
With incremental data migration: A tarefa é executada continuamente e não para automaticamente. O status mostra Running.
O que fazer após a migração
Depois que a migração incremental de dados atingir um estado estável e a latência da migração cair para perto de zero:
Interrompa quaisquer aplicações que gravem no cluster PolarDB for MySQL de origem.
Aguarde a tarefa do DTS processar as alterações restantes (a latência atinge 0).
Alterne as conexões da sua aplicação para o cluster AnalyticDB for MySQL V3.0 de destino.
Pare ou libere a tarefa de migração do DTS para evitar que tarefas retomadas sobrescrevam dados no destino.
Verifique a consistência dos dados entre os bancos de dados de origem e de destino.
Atualize quaisquer strings de conexão, arquivos de configuração ou variáveis de ambiente em suas aplicações para apontar para o cluster de destino.