Use o Data Transmission Service (DTS) para migrar dados de uma instância ApsaraDB RDS for MariaDB TX para uma instância ApsaraDB RDS for MySQL. O DTS oferece suporte à migração de esquema, migração completa de dados e migração incremental de dados, permitindo migrar dados com tempo de inatividade mínimo.
Pré-requisitos
Antes de começar, certifique-se de ter:
Criado a instância ApsaraDB RDS for MySQL de destino. Para mais informações, consulte Criar uma instância ApsaraDB RDS for MySQL.
Verificado se a instância de destino tem espaço de armazenamento livre suficiente para acomodar todos os dados da instância de origem.
Concedido as permissões necessárias às contas de banco de dados. Consulte Permissões necessárias para contas de banco de dados.
Faturamento
|
Tipo de migração |
Taxa de configuração da tarefa |
Taxa de transferência de dados |
|
Migração de esquema e migração completa de dados |
Gratuita |
Gratuita |
|
Migração incremental de dados |
Cobrada |
Consulte Visão geral do faturamento |
Permissões necessárias para contas de banco de dados
| Banco de dados | Migração de esquema | Migração completa de dados | Migração incremental de dados |
|---|---|---|---|
| Instância ApsaraDB RDS for MariaDB TX de origem | SELECT nos objetos a serem migrados | Leitura e gravação nos objetos a serem migrados | Leitura e gravação nos objetos a serem migrados |
| Instância ApsaraDB RDS for MySQL de destino | Leitura e gravação no banco de dados de destino | ||
Para obter instruções sobre como criar contas e conceder as permissões necessárias, consulte:
ApsaraDB RDS for MariaDB TX: Criar uma conta e Modificar ou redefinir permissões da conta
ApsaraDB RDS for MySQL: Criar uma conta e Modificar permissões da conta
Operações SQL compatíveis com migração incremental
|
Tipo |
Instruções compatíveis |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
ALTER TABLE, ALTER VIEW, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, CREATE VIEW, DROP INDEX, DROP TABLE, RENAME TABLE, TRUNCATE TABLE |
Operações RENAME TABLE podem causar inconsistência de dados. Se você renomear uma tabela durante a migração e essa tabela estiver selecionada como objeto de migração (e não o banco de dados inteiro), os dados dessa tabela não serão migrados. Para evitar isso, selecione o banco de dados como objeto de migração em vez da tabela individual. Certifique-se de que tanto a tabela original quanto a renomeada pertençam a bancos de dados incluídos nos objetos de migração.
Limitações
Comportamento de chaves estrangeiras
O DTS migra chaves estrangeiras do banco de dados de origem para o de destino durante a migração de esquema. Durante as migrações completa e incremental de dados, o DTS desativa temporariamente as verificações de restrições de chave estrangeira e as operações em cascata no nível da sessão. Caso você execute operações em cascata ou de exclusão no banco de dados de origem durante a migração, pode ocorrer inconsistência de dados.
Requisitos do banco de dados de origem
|
Requisito |
Detalhes |
|
Largura de banda |
O servidor de origem deve ter largura de banda de saída suficiente. Largura de banda insuficiente reduz a velocidade da migração. |
|
Restrições de tabela |
As tabelas devem ter restrições PRIMARY KEY ou UNIQUE, e todos os campos devem ser únicos. Sem essas restrições, o banco de dados de destino pode conter registros duplicados. |
|
Limite de quantidade de tabelas |
Se você selecionar tabelas como objetos de migração e precisar renomeá-las no banco de dados de destino, uma única tarefa de migração aceita até 1.000 tabelas. Para mais de 1.000 tabelas, divida a tarefa ou selecione o banco de dados inteiro como objeto de migração. |
|
Operações DDL |
Não execute operações DDL no banco de dados de origem durante a migração de esquema ou a migração completa de dados. |
|
Operações de gravação |
Se executar apenas a migração completa de dados (sem migração incremental), não grave no banco de dados de origem durante a migração. Para garantir a consistência dos dados, selecione migração de esquema, migração completa de dados e migração incremental de dados juntas. |
Requisitos de binlog para migração incremental de dados
Para ativar a migração incremental de dados, configure os seguintes parâmetros na instância de origem:
|
Parâmetro |
Valor necessário |
Motivo |
|
Binary logging |
Ativado |
O DTS lê alterações dos binary logs para a migração incremental. |
|
|
|
O formato baseado em linha captura alterações completas no nível de linha exigidas pelo DTS. |
|
|
|
A imagem completa captura valores anteriores e posteriores de cada alteração de linha. |
Defina o período de retenção do binary log com base no tipo de migração:
Apenas migração incremental: Retenha binary logs por mais de 24 horas.
Migração completa de dados + migração incremental de dados: Retenha binary logs por pelo menos 7 dias. Após a conclusão da migração completa de dados, reduza o período de retenção para mais de 24 horas.
Se o DTS não conseguir recuperar os binary logs necessários, a tarefa falhará ou poderá ocorrer perda de dados. Definir períodos de retenção abaixo desses mínimos anula o acordo de nível de serviço (SLA) do DTS.
Outras limitações
Temporização: Avalie o impacto no desempenho dos bancos de dados de origem e de destino antes de iniciar. Execute migrações fora do horário de pico, pois a migração completa de dados consome recursos de leitura e gravação em ambas as instâncias.
Tamanho do tablespace: Operações INSERT simultâneas durante a migração completa de dados causam fragmentação nas tabelas de destino. Após a migração, o tablespace de destino geralmente é maior que o de origem.
Precisão de FLOAT e DOUBLE: O DTS recupera valores de colunas FLOAT e DOUBLE usando
ROUND(COLUMN,PRECISION). Se nenhuma precisão for especificada, o DTS usa 38 dígitos para FLOAT e 308 dígitos para DOUBLE. Verifique se esses padrões atendem aos seus requisitos.Retomada de tarefa com falha: O DTS tenta repetir tarefas de migração com falha por até 7 dias. Antes de alternar cargas de trabalho para o banco de dados de destino, pare ou libere quaisquer tarefas com falha. Como alternativa, execute a instrução
REVOKEpara revogar permissões de gravação das contas do DTS no banco de dados de destino. Caso contrário, uma tarefa com falha retomada pode sobrescrever dados no banco de dados de destino.Falhas de DDL no destino: Se instruções DDL falharem no banco de dados de destino, a tarefa do DTS continuará em execução. Verifique os logs da tarefa para visualizar as instruções DDL com falha. Para mais informações, consulte Visualizar logs da tarefa.
Column name case sensitivity: Os nomes de colunas do MySQL não diferenciam maiúsculas de minúsculas. Se o banco de dados de origem tiver colunas cujos nomes diferem apenas na capitalização, o resultado da migração pode não corresponder ao esperado.
Verificação pós-migração: Após a conclusão da migração, execute
analyze table <table_name>para verificar se os dados foram gravados na tabela de destino. Em alguns cenários de failover de alta disponibilidade (HA), os dados podem ser gravados apenas na memória da instância de origem, resultando em perda de dados.
Lista de verificação pré-migração
Antes de iniciar a tarefa de migração, verifique os itens a seguir. Ignorar qualquer item pode causar falha na tarefa ou inconsistência nos dados.
|
# |
Item |
Como verificar |
|
1 |
A instância RDS for MySQL de destino foi criada e tem espaço de armazenamento suficiente |
Verifique o status da instância e o armazenamento no console RDS |
|
2 |
As contas de banco de dados têm as permissões necessárias |
Execute |
|
3 |
A instância de origem tem largura de banda de saída suficiente |
Verifique o uso de largura de banda no console de monitoramento |
|
4 |
As tabelas a serem migradas têm restrições PRIMARY KEY ou UNIQUE |
Execute |
|
5 |
O binary logging está ativado (apenas migração incremental) |
Execute |
|
6 |
|
Execute |
|
7 |
|
Execute |
|
8 |
O período de retenção do binary log atende aos requisitos (apenas migração incremental) |
Verifique as configurações do grupo de parâmetros do RDS |
|
9 |
Nenhuma operação DDL está planejada durante a migração de esquema/completa de dados |
Coordene com sua equipe |
|
10 |
A migração está agendada fora do horário de pico |
Revise os padrões de tráfego da aplicação |
Criar uma tarefa de migração
Etapa 1: Acessar a página Data Migration Tasks
Faça login no console do Data Management (DMS).
Na barra de navegação superior, clique em DTS.
No painel de navegação à esquerda, escolha DTS (DTS) > Data Migration.
Alternativamente, acesse diretamente a página Data Migration Tasks do novo console DTS. O layout do console e as operações disponíveis podem variar. Para mais informações, consulte Modo simples e Personalizar o layout e o estilo do console DMS.
Etapa 2: Selecionar a região
Na lista suspensa ao lado de Data Migration Tasks, selecione a região onde a instância de migração reside.
No novo console DTS, selecione a região no canto superior esquerdo.
Etapa 3: Configurar bancos de dados de origem e de destino
Clique em Create Task. Na página Create Task, configure os bancos de dados de origem e de destino.
Leia os limites exibidos na parte superior da página antes de prosseguir. Pular esta etapa pode causar falha na tarefa ou resultar em inconsistência de dados.
Banco de dados de origem
|
Parâmetro |
Descrição |
|
Select an existing DMS database instance (opcional) |
Selecione uma instância existente para preencher automaticamente os parâmetros de conexão ou deixe em branco para configurar manualmente. |
|
Database Type |
Selecione MariaDB. |
|
Access Method |
Selecione Alibaba Cloud Instance. |
|
Instance Region |
Selecione a região onde a instância ApsaraDB RDS for MariaDB TX de origem reside. |
|
Replicate Data Across Alibaba Cloud Accounts |
Selecione No para migração na mesma conta. |
|
Instance ID |
Selecione ou insira o ID da instância ApsaraDB RDS for MariaDB TX de origem. |
|
Database Account |
Insira a conta do banco de dados para a instância de origem. Consulte Permissões necessárias para contas de banco de dados. |
|
Database Password |
Insira a senha da conta do banco de dados. |
|
Encryption |
Selecione Non-encrypted para este exemplo. |
Banco de dados de destino
|
Parâmetro |
Descrição |
|
Select an existing DMS database instance (opcional) |
Selecione uma instância existente para preencher automaticamente os parâmetros de conexão ou deixe em branco para configurar manualmente. |
|
Database Type |
Selecione MySQL. |
|
Access Method |
Selecione Alibaba Cloud Instance. |
|
Instance Region |
Selecione a região onde a instância ApsaraDB RDS for MySQL de destino reside. |
|
Replicate Data Across Alibaba Cloud Accounts |
Selecione No para migração na mesma conta. |
|
RDS Instance ID |
Selecione ou insira o ID da instância ApsaraDB RDS for MySQL de destino. |
|
Database Account |
Insira a conta do banco de dados para a instância de destino. Consulte Permissões necessárias para contas de banco de dados. |
|
Database Password |
Insira a senha da conta do banco de dados. |
|
Encryption |
Selecione Non-encrypted ou SSL-encrypted. Se selecionar SSL-encrypted, ative a criptografia SSL na instância de destino primeiro. Consulte Configurar o recurso de criptografia SSL. |
Etapa 4: Testar conectividade
Clique em Test Connectivity and Proceed.
O DTS adiciona automaticamente seus blocos CIDR de servidor à lista de permissões de endereços IP das instâncias de banco de dados da Alibaba Cloud e às regras de grupo de segurança das instâncias Elastic Compute Service (ECS) que hospedam bancos de dados autogerenciados. Para bancos de dados autogerenciados em várias instâncias ECS ou bancos de dados locais, adicione manualmente os blocos CIDR do servidor DTS. Consulte Adicionar os blocos CIDR dos servidores DTS às configurações de segurança de bancos de dados locais.
Adicionar blocos CIDR públicos a listas de permissões de endereços IP ou regras de grupo de segurança introduz riscos de segurança. Antes de usar o DTS, tome medidas preventivas, incluindo: fortalecer senhas de contas, limitar portas expostas, autenticar chamadas de API e auditar regularmente listas de permissões de IP e regras de grupo de segurança. Sempre que possível, conecte-se ao DTS usando Express Connect, VPN Gateway ou Smart Access Gateway em vez de acesso pela rede pública.
Etapa 5: Configurar objetos de migração
Configure os tipos de migração e selecione os objetos a serem migrados.
| Parâmetro | Descrição |
|---|---|
| Migration Types |
Selecione os tipos de migração conforme suas necessidades: - Apenas migração completa: Selecione Schema Migration e Full Data Migration. - Migração com continuidade de serviço: Selecione Schema Migration, Full Data Migration e Incremental Data Migration. Se não selecionar Incremental Data Migration, não grave no banco de dados de origem durante a migração. |
| Method to Migrate Triggers in Source Database | Selecione o método de migração de triggers conforme seus requisitos. Este parâmetro está disponível apenas quando Schema Migration e Incremental Data Migration estão selecionados. Consulte Sincronizar ou migrar triggers do banco de dados de origem. |
| Processing Mode of Conflicting Tables |
Precheck and Report Errors (padrão): O DTS verifica se existem tabelas com nomes idênticos em ambos os bancos de dados. A tarefa falha na pré-verificação se existirem duplicatas. Use o recurso de mapeamento de nomes de objetos para resolver conflitos de nomes. Consulte Mapear nomes de objetos. Ignore Errors and Proceed: Ignora a verificação de nomes duplicados. Se as tabelas de origem e de destino compartilharem o mesmo esquema, o DTS ignora registros com chaves primárias correspondentes. Se os esquemas forem diferentes, apenas colunas específicas serão migradas ou a tarefa falhará. |
| Source Objects | Selecione os objetos a serem migrados na seção Source Objects e clique no ícone de seta para adicioná-los aos Selected Objects. É possível selecionar colunas, tabelas ou bancos de dados. Selecionar tabelas ou colunas exclui views, triggers e stored procedures da migração. |
| Selected Objects | Para renomear um único objeto, clique com o botão direito nele em Selected Objects. Consulte Mapear o nome de um único objeto. Para renomear vários objetos simultaneamente, clique em Batch Edit. Consulte Mapear vários nomes de objetos simultaneamente. Para filtrar dados com condições WHERE, clique com o botão direito em um objeto e especifique as condições. Consulte Definir condições de filtro. Para especificar operações DML ou DDL a serem migradas para um objeto, clique com o botão direito no objeto e selecione as operações. |
Renomear um objeto com o recurso de mapeamento de nomes de objetos pode fazer com que outros objetos dependentes dele falhem na migração.
Etapa 6: Configurar definições avançadas
Clique em Next: Advanced Settings.
|
Parâmetro |
Descrição |
|
Select the dedicated cluster used to schedule the task |
Por padrão, o DTS usa o cluster compartilhado. Para usar um cluster dedicado, adquira e especifique um. Consulte O que é um cluster dedicado do DTS. |
|
Set Alerts |
No: Sem alertas. Yes: Alertas são enviados quando a tarefa falha ou a latência da migração excede o limiar. Especifique o limiar de alerta e os contatos. Consulte Configurar monitoramento e alertas. |
|
Retry Time for Failed Connections |
Janela de nova tentativa para falhas de conexão. Valores válidos: 10–1.440 minutos. Padrão: 720 minutos. Defina como mais de 30 minutos. Se o DTS reconectar dentro da janela de nova tentativa, a tarefa será retomada. Caso contrário, a tarefa falhará. Várias tarefas que compartilham o mesmo banco de dados de origem ou de destino usam o tempo de nova tentativa configurado mais recentemente. |
|
The wait time before a retry when other issues occur in the source and destination databases |
Janela de nova tentativa para problemas que não sejam de conexão, como falhas em operações DML ou DDL. Valores válidos: 1–1.440 minutos. Padrão: 10 minutos. Defina como mais de 10 minutos. Este valor deve ser menor que o valor de Retry Time for Failed Connections. |
|
Enable Throttling for Full Data Migration |
Limita o QPS para o banco de dados de origem, o RPS da migração completa de dados e a velocidade de migração (MB/s) para reduzir a carga no destino. Exibido apenas quando Full Data Migration está selecionado. |
|
Enable Throttling for Incremental Data Migration |
Limita o RPS e a velocidade de migração (MB/s) para a migração incremental. Exibido apenas quando Incremental Data Migration está selecionado. |
|
Environment Tag |
Uma tag opcional para identificar a instância DTS. |
|
Configure ETL |
Yes: Abre um editor de código para inserir instruções de processamento de dados. Consulte Configurar ETL em uma tarefa de migração ou sincronização de dados e O que é ETL?. No: Ignora a configuração de ETL. |
Etapa 7: 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.
O DTS executa uma pré-verificação antes que a tarefa de migração possa começar. Se houver falhas em itens:
Clique em View Details ao lado do item com falha, corrija o problema com base na mensagem de erro e clique em Precheck Again.
Para itens de alerta: se o item puder ser ignorado, clique em Confirm Alert Details > Ignore > OK e, em seguida, clique em Precheck Again. Ignorar alertas pode causar inconsistência de dados.
Etapa 8: Adquirir uma instância de migração
Aguarde até que a taxa de sucesso da pré-verificação atinja 100% e clique em Next: Purchase Instance.
Na página Purchase Instance, configure o seguinte:
| Seção | Parâmetro | Descrição |
|---|---|---|
| New Instance Class | Resource Group | Grupo de recursos para a instância de migração. Padrão: default resource group. Consulte O que é Resource Management? |
| Instance Class | Selecione a classe da instância com base na velocidade de migração necessária. Consulte Especificações de instâncias de migração de dados. |
Leia e aceite os Termos de Serviço do Data Transmission Service (Pagamento conforme o uso) marcando a caixa de seleção e clique em Buy and Start.
A tarefa de migração é iniciada e aparece na lista de tarefas. Monitore o progresso da tarefa na lista de tarefas.
Próximos passos
Após a conclusão da tarefa de migração, verifique se os dados foram gravados corretamente executando analyze table <table_name> na instância de destino. Em seguida, alterne suas cargas de trabalho para a instância ApsaraDB RDS for MySQL de destino.