Use o Data Transmission Service (DTS) para migrar dados do PolarDB for MySQL para o AnalyticDB for MySQL 3.0 e construa sistemas para business intelligence (BI), consultas interativas e relatórios em tempo real.
Pré-requisitos
É necessário ter um cluster de origem do PolarDB for MySQL. Para mais informações, consulte Purchase a pay-as-you-go cluster e Purchase a subscription cluster.
É necessário ter criado um cluster de destino do AnalyticDB for MySQL 3.0. Para mais detalhes, consulte Create a cluster.
O cluster de destino do AnalyticDB for MySQL deve ter mais espaço de armazenamento do que o espaço utilizado pelo cluster de origem do PolarDB for MySQL.
Limitações
Durante a migração de schema, o DTS não migra chaves estrangeiras do banco de dados de origem para o banco de dados de destino.
Durante a migração de dados completa e a migração de dados incrementais, 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. Se ocorrerem operações de atualização ou exclusão em cascata no banco de dados de origem enquanto a tarefa estiver em execução, poderá haver inconsistência de dados.
Durante a migração de schema, o DTS não oferece suporte à migração de materialized views para a instância de destino do AnalyticDB for MySQL. Para usar materialized views, crie-as manualmente na instância de destino após a conclusão da migração.
Tipo | Descrição |
Limites do banco de dados de origem |
|
Observações |
|
Faturamento
|
Tipo de migração |
Taxa de configuração da instância |
Taxa de tráfego de Internet |
|
Migração de schema e migração de dados completa |
Gratuito. |
Quando o parâmetro Access Method do banco de dados de destino está definido como Public IP Address, há cobrança de tráfego de Internet. Para mais informações, consulte Billing overview. |
|
Migração de dados incrementais |
Há cobrança. Para mais informações, consulte Billing overview. |
Tipos de migração
-
Migração de schema
O DTS migra os schemas dos objetos selecionados do banco de dados de origem para o banco de dados de destino.
NotaIsso se aplica a migrações entre bancos de dados heterogêneos. Como os tipos de dados podem não mapear perfeitamente durante a migração de schema, avalie cuidadosamente o impacto nos negócios. Para mais informações, consulte Data type mapping for heterogeneous databases.
-
Migração de dados completa
O DTS migra todos os dados dos objetos selecionados do banco de dados de origem para o banco de dados de destino.
-
Migração de dados incrementais
Após a conclusão da migração de dados completa, o DTS migra as alterações de dados incrementais do banco de dados de origem para o banco de dados de destino. Esse processo permite uma migração suave, sem interrupção de service para suas aplicações autogerenciadas.
Operações SQL para migração incremental
|
Tipo de operação |
Instrução SQL |
|
DML |
Nota
Ao gravar dados no AnalyticDB for MySQL, o sistema converte automaticamente as instruções |
|
DDL |
Importante Uma operação RENAME TABLE pode causar inconsistência de dados. Por exemplo, se você selecionar apenas uma tabela como objeto de migração e renomear a tabela na instância de origem durante a migração, os dados dessa tabela não serão migrados para o banco de dados de destino. Para evitar esse problema, selecione o banco de dados inteiro ao qual a tabela pertence como objeto de migração ao configurar a tarefa de migração de dados. Certifique-se de que os bancos de dados aos quais a tabela pertence antes e depois da operação RENAME TABLE estejam incluídos nos objetos de migração. |
Se o tipo de dados de um campo na tabela de origem mudar durante a migração de dados, a tarefa será interrompida e relatará um erro. Para resolver o problema, siga estas etapas:
Uma tarefa de migração para o banco de dados de destino AnalyticDB for MySQL falhará se o tipo de dados de um campo na tabela de origem (por exemplo, customer) for alterado.
No AnalyticDB for MySQL V3.0, crie uma nova tabela, por exemplo
customer_new, com o schema atualizado da tabela de origem.Use o comando
INSERT INTO SELECTpara copiar dados da tabelacustomeroriginal paracustomer_new.Renomeie ou exclua a tabela
customeroriginal e, em seguida, renomeiecustomer_newparacustomer.No console do DTS, reinicie a tarefa de migração de dados.
Requisitos de permissão
|
Banco de dados |
Permissões |
|
PolarDB for MySQL |
Permissão de leitura nos objetos a serem migrados |
|
AnalyticDB for MySQL 3.0 |
Permissões de leitura e gravação |
Para que você crie e gerencie contas de banco de dados e conceda permissões, consulte os seguintes tópicos:
Para clusters do PolarDB for MySQL, consulte Create and manage database accounts.
Para o Cloud-Native Data Warehouse AnalyticDB for MySQL 3.0, consulte Create a database account.
Procedimento
-
Primeiro, acesse a página da lista de tarefas de migração para a região de destino usando um dos seguintes métodos.
Pelo console do DTS
Faça login no console do Data Transmission Service (DTS).
No painel de navegação à esquerda, clique em Data Migration.
No canto superior esquerdo da página, selecione a região onde a instância de migração está localizada.
Pelo console do DMS
NotaAs operações reais podem variar com base no modo e no layout do console do DMS. Para mais informações, consulte Simple mode console e Customize the layout and style of the DMS console.
Faça login no console do Data Management (DMS).
Na barra de menu superior, escolha .
À direita de Data Migration Tasks, selecione a região onde a instância de migração está localizada.
Clique em Create Task para acessar a página de configuração da tarefa.
-
Configure os bancos de dados de origem e de destino.
AvisoApós selecionar as instâncias de origem e de destino, leia atentamente as limitações exibidas na parte superior da página. Caso contrário, a tarefa poderá falhar ou poderá ocorrer inconsistência de dados.
Categoria
Parâmetro
Descrição
N/A
Task Name
O DTS gera automaticamente um nome de tarefa. Especifique um nome descritivo para fácil identificação. O nome não precisa ser exclusivo.
Source Database
Select Existing Connection
Para usar uma instância de banco de dados que foi added to the system (criada ou salva), selecione a instância de banco de dados desejada na lista suspensa. O sistema configurará as informações do banco de dados abaixo automaticamente.
NotaNo console do DMS, este parâmetro é nomeado Select a DMS database instance..
Se você não registrou a instância de banco de dados no sistema, ou não precisa usar uma instância registrada, configure manualmente as informações do banco de dados abaixo.
Database Type
Selecione PolarDB for MySQL.
Access Method
Selecione Alibaba Cloud Instance.
Instance Region
Selecione a região da instância de origem do PolarDB for MySQL.
PolarDB Cluster ID
Selecione o ID da instância de origem do PolarDB for MySQL.
Database Account
Por favor, insira a conta do banco de dados da instância de origem do PolarDB for MySQL. Para informações sobre as permissões necessárias, consulte Database account permissions.
Database Password
Agora, insira a senha da conta do banco de dados.
Encryption
Selecione um tipo de conexão conforme necessário. Para mais informações sobre o recurso de criptografia ssl, consulte Enable SSL encryption.
Destination Database
Select Existing Connection
Para usar uma instância de banco de dados que foi added to the system (criada ou salva), selecione a instância de banco de dados desejada na lista suspensa. O sistema configurará as informações do banco de dados abaixo automaticamente.
NotaNo console do DMS, este parâmetro é nomeado Select a DMS database instance..
Se você não registrou a instância de banco de dados no sistema, ou não precisa usar uma instância registrada, configure manualmente as informações do banco de dados abaixo.
Database Type
Selecione AnalyticDB for MySQL 3.0.
Access Method
Selecione Alibaba Cloud Instance.
Instance Region
Selecione a região do cluster de destino do AnalyticDB for MySQL.
Instance ID
Selecione o ID do cluster de destino do AnalyticDB for MySQL.
Database Account
Por favor, insira a conta do banco de dados do cluster de destino do AnalyticDB for MySQL. Para informações sobre as permissões necessárias, consulte Database account permissions.
Database Password
Agora, insira a senha da conta do banco de dados.
-
Após concluir a configuração, clique em Test Connectivity and Proceed na parte inferior da página.
NotaCertifique-se de que os segmentos de IP do service DTS sejam adicionados automática ou manualmente às configurações de segurança dos bancos de dados de origem e de destino para permitir o acesso dos servidores DTS. Para mais informações, consulte Add DTS server IP addresses to a whitelist.
-
Configure os objetos da tarefa.
-
Na página Configure Objects, configure os objetos que deseja migrar.
Parâmetro
Descrição
Migration Types
-
Para uma migração apenas de dados completa, selecione Schema Migration e Full Data Migration.
-
Para uma migração sem tempo de inatividade, selecione Schema Migration, Full Data Migration e Incremental Data Migration.
Nota-
Se você selecionar Full Data Migration, o schema e os dados das tabelas criadas com a instrução CREATE TABLE podem ser migrados para o banco de dados de destino.
-
Se você não selecionar Incremental Data Migration, não grave novos dados na instância de origem durante a migração de dados para garantir a consistência dos dados.
Processing Mode for Existing Destination Tables
Precheck and Report Errors: Verifica se existem tabelas com os mesmos nomes no banco de dados de destino. Se não existirem tabelas com os mesmos nomes, a pré-verificação é aprovada. Se existirem tabelas com os mesmos nomes, um erro é relatado durante a pré-verificação e a tarefa de migração de dados não é iniciada.
NotaSe uma tabela no banco de dados de destino tiver o mesmo nome, mas não puder ser facilmente excluída ou renomeada, você poderá alterar o nome da tabela no banco de dados de destino. Para mais informações, consulte Object name mapping.
Ignore Errors and Proceed: Ignora a verificação de tabelas com os mesmos nomes.
AvisoSelecionar Ignore Errors and Proceed pode causar inconsistência de dados e riscos aos negócios. Por exemplo:
Se os schemas das tabelas forem consistentes 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:
Durante a migração completa, o DTS mantém o registro no banco de dados de destino. O registro do banco de dados de origem não é migrado.
Durante a migração incremental, o DTS não mantém o registro no banco de dados de destino. O registro do banco de dados de origem substitui o registro no banco de dados de destino.
Se os schemas das tabelas forem inconsistentes, apenas algumas colunas de dados poderão ser migradas, ou a migração poderá falhar. Prossiga com cautela.
Select DDL and DML to Sync at the Instance Level
Selecione as operações SQL para migração incremental no nível da instância. Para informações sobre as operações suportadas, consulte SQL operations supported for incremental migration.
NotaPara selecionar operações SQL no nível do banco de dados ou da tabela, clique com o botão direito do mouse no objeto de migração na caixa Selected Objects e selecione as operações SQL desejadas na caixa de diálogo que aparece.
Table Merging
Ao selecionar Yes, o DTS adiciona a coluna
__dts_data_sourcea cada tabela para registrar as origens dos dados. Para mais informações, consulte Enable multi-table merge.Se você selecionar No, esta é a opção padrão.
NotaO recurso de mesclagem de tabelas é configurado no nível da tarefa, não no nível da tabela. Para mesclar algumas tabelas, mas não outras, crie duas tarefas de migração de dados separadas.
AvisoNão execute operações DDL para alterar o schema do banco de dados ou das tabelas de origem. Caso contrário, pode ocorrer inconsistência de dados ou falha na tarefa.
Source Objects
Selecione um ou mais objetos na seção Source Objects. Clique no ícone
e adicione os objetos à seção Selected Objects. Nota-
Você pode selecionar objetos de migração no nível do banco de dados, da tabela ou da coluna. Se você selecionar tabelas como objetos de migração, outros objetos, como views, triggers e stored procedures, não serão migrados para o banco de dados de destino.
-
Se você selecionar um banco de dados inteiro como objeto de migração, as seguintes regras padrão se aplicam:
-
Se uma tabela no banco de dados de origem tiver uma chave primária (coluna única ou composta), a(s) coluna(s) da chave primária serão usadas como chave de distribuição.
-
Se uma tabela no banco de dados de origem não tiver uma chave primária, uma coluna de chave primária de incremento automático será gerada automaticamente. Isso pode causar inconsistência de dados entre os bancos de dados de origem e de destino.
-
Selected Objects
-
Para alterar o nome de um único objeto de migração na instância de destino, clique com o botão direito do mouse no objeto na caixa Selected Objects. Para mais informações, consulte Map individual schema, table, and column names.
-
Para alterar os nomes de vários objetos de migração na instância de destino, clique em Selected Objects no canto superior direito da caixa Batch Edit. Para mais informações, consulte Map multiple schema, table, and column names.
Nota-
Se você usar o recurso de mapeamento de nomes de objetos, a migração de outros objetos que dependem do objeto mapeado poderá falhar.
-
Para filtrar dados usando uma cláusula WHERE, clique com o botão direito do mouse na tabela a ser migrada na caixa Selected Objects e especifique a condição de filtro na caixa de diálogo que aparece. Para mais informações, consulte Set filter conditions.
-
Para selecionar as operações SQL a serem migradas no nível do banco de dados ou da tabela, clique com o botão direito do mouse no objeto de migração na caixa Selected Objects e selecione as operações SQL desejadas na caixa de diálogo que aparece.
-
-
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. Você não precisa selecionar um. Para tarefas mais estáveis, adquira um dedicated cluster para executar tarefas de migração do DTS.
Copy the temporary table of the Online DDL tool that is generated in the source table to the destination database.
Se você usar Data Management (DMS) ou gh-ost para realizar alterações DDL online no banco de dados de origem, escolha se deseja migrar os dados das tabelas temporárias geradas pelas alterações DDL online.
ImportanteAs tarefas do DTS não suportam o uso de ferramentas como pt-online-schema-change para realizar alterações DDL online. Caso contrário, a tarefa do DTS falhará.
Os métodos de processamento para cada fase são os seguintes: As fases de Schema Migration e Full Data Migration não permitem operações DDL que alterem a estrutura do banco de dados ou da tabela. Portanto, elas não são controladas pela política de DDL online.
Schema Migration: Não controlada pela política de DDL online. Tabelas temporárias relacionadas são criadas.
Full Data Migration: Não controlada pela política de DDL online. A migração de tabelas temporárias não está incluída nos objetos de migração completa. Todas as tabelas cujos nomes correspondem à expressão regular (
^_(.+)_(?:gho|new)$ou^_(.+)_(?:ghc|del|old)$) são filtradas.Incremental Data Migration: Controlada pela política de DDL online.
Yes: Migra alterações de dados de tabelas temporárias (por exemplo,
_table_name_gho) geradas por operações DDL online.No, Adapt to DMS Online DDL e No, Adapt to gh-ost: Filtra alterações de dados de tabelas temporárias (por exemplo,
_table_name_gho) geradas por ferramentas como gh-ost com base em regras de expressão regular.
Yes: Migra os dados das tabelas temporárias geradas pelas alterações DDL online.
NotaSe as alterações DDL online gerarem uma grande quantidade de dados em tabelas temporárias, isso pode causar latência na tarefa.
No, Adapt to DMS Online DDL: Não migra os dados das tabelas temporárias geradas pelas alterações DDL online. Migra apenas as instruções DDL originais executadas usando Data Management (DMS).
NotaEsta opção faz com que as tabelas no banco de dados de destino sejam bloqueadas.
No, Adapt to gh-ost: Não migra os dados das tabelas temporárias geradas pelas alterações DDL online. Suporta regras de filtragem personalizadas. O DTS filtra alterações de dados de tabelas temporárias (por exemplo,
_table_name_gho) geradas por ferramentas como gh-ost com base em regras de expressão regular. Por favor, modifique as expressões regulares padrão usadas para corresponder a tabelas sombra e inúteis conforme necessário:Tabela sombra:
^_(.+)_(?:gho|new)$Tabela inútil:
^_(.+)_(?:ghc|del|old)$
NotaEsta opção faz com que as tabelas no banco de dados de destino sejam bloqueadas.
Retry Time for Failed Connections
Após o início da tarefa de migração, se a conexão com o banco de dados de origem ou de destino falhar, o DTS relatará um erro e tentará reconectar imediatamente. A duração padrão da nova tentativa é de 720 minutos. Personalize o tempo de nova tentativa para um valor de 10 a 1440 minutos. Recomendamos definir a duração para mais de 30 minutos. Se o DTS se reconectar aos bancos de dados de origem e de destino dentro da duração especificada, a tarefa de migração será retomada automaticamente. Caso contrário, a tarefa falhará.
NotaPara várias instâncias do DTS que compartilham a mesma origem ou destino, o tempo de nova tentativa de rede é determinado pela configuração da última tarefa criada.
Como você é cobrado pela tarefa durante o período de nova tentativa de conexão, recomendamos que você personalize o tempo de nova tentativa com base nas necessidades do seu negócio, ou libere a instância do DTS o mais rápido 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 migração, se ocorrer um problema que não seja de conectividade, como uma exceção de execução DDL ou DML, no banco de dados de origem ou de destino, o DTS relatará um erro e tentará repetir a operação imediatamente. A duração padrão da nova tentativa é de 10 minutos. Personalize o tempo de nova tentativa para um valor de 1 a 1440 minutos. Recomendamos definir a duração para mais de 10 minutos. Se as operações relacionadas forem bem-sucedidas dentro da duração de nova tentativa especificada, a tarefa de migração será retomada automaticamente. Caso contrário, a tarefa falhará.
ImportanteO valor de Retry Time for Other Issues deve ser menor que o valor de Retry Time for Failed Connections.
Enable Throttling for Full Data Migration
Durante a migração completa, o DTS consome recursos de leitura e gravação nos bancos de dados de origem e de destino, o que pode aumentar a carga do banco de dados. Se necessário, ative o limitador de taxa para a tarefa de migração completa. Defina Queries per second (QPS) to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s) para reduzir a carga no banco de dados de destino.
NotaEste item de configuração está disponível apenas se você selecionar Full Data Migration para Migration Types.
Você também pode adjust the full migration speed após a instância de migração estar em execução.
Enable Throttling for Incremental Data Migration
Se necessário, defina limites de velocidade para a tarefa de migração incremental. Defina RPS of Incremental Data Migration e Data migration speed for incremental migration (MB/s) para reduzir a carga no banco de dados de destino.
NotaEste item de configuração está disponível apenas se você selecionar Incremental Data Migration para Migration Types.
Você também pode adjust the incremental migration speed após a instância de migração estar em execução.
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks
Agora, escolha se deseja gravar informações SQL de heartbeat no banco de dados de origem enquanto a instância do DTS está em execução.
-
Yes: As informações SQL de heartbeat não são gravadas no banco de dados de origem. Isso pode fazer com que a instância do DTS relate um atraso.
-
No: Grava informações SQL de heartbeat no banco de dados de origem. Isso pode interferir em recursos como backup físico e clonagem do banco de dados de origem.
Environment Tag
Selecione uma tag de ambiente para identificar a instância. Isso não é necessário para este exemplo.
Configure ETL
Agora, escolha se deseja ativar o recurso de extração, transformação e carga (ETL). Para mais informações, consulte What is ETL? Valores válidos:
-
Yes: Ativa o recurso ETL. Em seguida, insira instruções de processamento de dados no editor de código. Para mais informações, consulte Configure ETL in a data migration or data synchronization task.
-
No: Desativa o recurso ETL.
Monitoring and Alerting
Por fim, escolha se deseja definir alertas e receber notificações de alerta com base nas necessidades do seu negócio.
No: Não define um alerta.
Yes: Configure alertas definindo um alert threshold e um notificações de alerta. Se uma migração falhar ou a latência exceder o limiar, o sistema enviará uma notificação de alerta.
-
Clique em Next: Data Validation para configurar uma tarefa de validação de dados.
Para mais informações sobre o recurso de validação de dados, consulte Configure data validation.
-
Opcional: Após concluir as configurações anteriores, clique em Next: Configure Database and Table Fields para definir o Type, Primary Key Column, Distribution Key e as informações da chave de partição (Partition Key, Partitioning Rules e Partition Lifecycle) para as tabelas a serem migradas no banco de dados de destino.
NotaEsta etapa está disponível apenas se você selecionar a opção Schema Migration para Migration Types ao configurar os objetos da tarefa. Você pode selecionar All para Definition Status para fazer modificações.
Você pode selecionar várias colunas para Primary Key Column para formar uma chave primária composta. Você também deve selecionar uma ou mais colunas da Primary Key Column para usar como Distribution Key e Partition Key. Para mais informações, consulte CREATE TABLE.
-
-
Agora, salve a tarefa e execute uma pré-verificação.
Para que você visualize os parâmetros de configuração desta instância ao chamar a operação da API, passe o ponteiro sobre o botão Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters na dica que aparece.
Se você não precisar visualizar ou já tiver terminado de visualizar os parâmetros da API, clique em Next: Save Task Settings and Precheck na parte inferior da página.
NotaAntes do início da tarefa de migração, o DTS realiza uma pré-verificação. A tarefa só é iniciada após ser aprovada na pré-verificação.
Se a pré-verificação falhar, clique em View Details ao lado do item de verificação com falha, corrija o problema com base na instrução e, em seguida, execute a pré-verificação novamente.
-
Se um aviso for relatado durante a pré-verificação:
Para itens de verificação que não podem ser ignorados, clique em View Details ao lado do item com falha, corrija o problema com base na instrução e, em seguida, execute a pré-verificação novamente.
Para itens de verificação que podem ser ignorados, clique em Confirm Alert Details, Ignore, OK e Precheck Again para pular o item de alerta e executar a pré-verificação novamente. Se você optar por ignorar um aviso, isso pode causar problemas como inconsistência de dados e representar riscos para o seu negócio.
-
Adquira a instância.
Quando a Success Rate for de 100%, clique em Next: Purchase Instance.
-
Na página Purchase, selecione a especificação de link para a instância de migração de dados. Para mais informações, consulte a tabela a seguir.
Categoria
Parâmetro
Descrição
New Instance Class
Resource Group Settings
Selecione o grupo de recursos ao qual a instância pertence. O valor padrão é o grupo de recursos padrão. Para mais informações, consulte What is resource management?
Instance Class
O DTS fornece especificações de migração com diferentes níveis de desempenho. A especificação do link afeta a velocidade da migração. Selecione uma especificação com base no seu cenário de negócios. Para mais informações, consulte Data migration link specifications.
Após concluir a configuração, leia e selecione Data Transmission Service (Pay-as-you-go) Service Terms.
-
Clique em Buy and Start. Na caixa de diálogo OK que aparece, clique em OK.
Você pode visualizar o progresso da tarefa de migração na página de lista Data Migration Tasks.
NotaSe a tarefa de migração não incluir migração incremental, ela será interrompida automaticamente após a conclusão da migração completa. Após a interrupção da tarefa, seu Status muda para Completed.
Se a tarefa de migração incluir migração incremental, ela não será interrompida automaticamente. A tarefa de migração incremental continua em execução. Enquanto a tarefa de migração incremental estiver em execução, o Status da tarefa será Running.