Use o Data Transmission service (DTS) para migrar dados de uma instância do ApsaraDB RDS for MariaDB TX para uma instância do ApsaraDB RDS for MySQL. O DTS oferece suporte à migração de esquema, à migração completa de dados e à migração incremental de dados, permitindo a transferência com tempo de inatividade mínimo.
Pré-requisitos
Antes de começar, verifique se:
Crie a instância de destino do ApsaraDB RDS for MySQL. Para mais informações, consulte Create an ApsaraDB RDS for MySQL instance
Verifique se a instância de destino tem espaço de armazenamento livre suficiente para acomodar todos os dados da instância de origem
Concedeu as permissões necessárias às contas do banco de dados. Consulte Permissions required for database accounts
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 Billing overview |
Permissões necessárias para as contas do banco de dados
| Banco de dados | Migração de esquema | Migração completa de dados | Migração incremental de dados |
|---|---|---|---|
| Instância de origem do ApsaraDB RDS for MariaDB TX | 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 de destino do ApsaraDB RDS for MySQL | Leitura e gravação no banco de dados de destino | ||
Para criar contas e conceder as permissões necessárias, consulte:
ApsaraDB RDS for MariaDB TX: Create an account e modifique or reset account permissions
ApsaraDB RDS for MySQL: Create an account e modifique account permissions
Operações SQL compatíveis para migração incremental
|
Tipo |
Instruções compatíveis |
|
DML |
INSERT, atualize, exclua |
|
DDL |
ALTER TABLE, ALTER VIEW, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, CREATE VIEW, DROP INDEX, DROP TABLE, RENAME TABLE, TRUNCATE TABLE |
As operações RENAME TABLE podem causar inconsistência de dados. Se você renomear uma tabela durante a migração e ela estiver selecionada como objeto de migração (em vez do banco de dados), os dados dessa tabela não serão migrados. Para evitar isso, selecione o banco de dados como objeto de migração, e não a 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 as chaves estrangeiras do banco de dados de origem para o de destino durante a migração de esquema. Durante a migração completa de dados e a migração incremental de dados, o DTS desativa temporariamente as verificações de restrição de chave estrangeira e as operações em cascata no nível da sessão. Se você executar operações em cascata ou de exclusão no banco de dados de origem durante a migração, poderá 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. A 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 exclusivos. 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 você 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 a migração de esquema, a migração completa de dados e a migração incremental de dados em conjunto. |
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 obrigatório |
Motivo |
|
Log binário |
Ativado |
O DTS lê as alterações dos logs binários para a migração incremental. |
|
|
|
O formato baseado em linha captura todas as alterações no nível da linha exigidas pelo DTS. |
|
|
|
A imagem completa captura os valores antes e depois de cada alteração de linha. |
Defina o período de retenção do log binário com base no tipo de migração:
Apenas migração incremental: Mantenha os logs binários por mais de 24 horas.
Migração completa de dados + migração incremental de dados: Mantenha os logs binários por pelo menos 7 dias. Após a conclusão da migração completa de dados, você pode reduzir o período de retenção para mais de 24 horas.
Se o DTS não conseguir recuperar os logs binários necessários, a tarefa falhará ou poderá haver perda de dados. Definir períodos de retenção abaixo desses mínimos anula o SLA do DTS.
Outras limitações
Tempo: Avalie o impacto no desempenho dos bancos de dados de origem e de destino antes de começar. Execute as migrações em horários de baixa demanda, 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 os valores das 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 as 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 as permissões de gravação das contas do DTS no banco de dados de destino. Caso contrário, a retomada de uma tarefa com falha pode sobrescrever os dados no banco de dados de destino.Falhas de DDL no destino: Se as instruções DDL falharem no banco de dados de destino, a tarefa do DTS continuará em execução. Verifique os logs da tarefa e visualize as instruções DDL com falha. Para mais informações, consulte View task logs.
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 no uso de maiúsculas e minúsculas, o resultado da migração pode não corresponder às expectativas.
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 de destino do RDS for MySQL foi criada e possui espaço de armazenamento suficiente |
Verifique o status e o armazenamento da instância no console do RDS |
|
2 |
As contas do 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 possuem restrições PRIMARY KEY ou UNIQUE |
Execute |
|
5 |
O log binário está ativado (apenas para migração incremental) |
Execute |
|
6 |
|
Execute |
|
7 |
|
Execute |
|
8 |
O período de retenção do log binário atende aos requisitos (apenas para 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/migração completa de dados |
Coordene com sua equipe |
|
10 |
A migração está agendada para horários de baixa demanda |
Revise os padrões de tráfego do aplicativo |
Crie uma tarefa de migração
Etapa 1: Acesse a página de tarefas de migração de dados
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.
Como alternativa, acesse diretamente a página de tarefas de migração de dados do novo console do DTS. O layout do console e as operações disponíveis podem variar. Para mais informações, consulte Simple mode e Customize the layout and style of the DMS console.
Etapa 2: Selecione a região
Na lista suspensa ao lado de Data Migration Tasks, selecione a região onde a instância de migração está localizada.
No novo console do DTS, selecione a região no canto superior esquerdo.
Etapa 3: Configure os 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 continuar. Ignorar 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 de origem do ApsaraDB RDS for MariaDB TX está localizada. |
|
Replicate Data Across Alibaba Cloud Accounts |
Selecione No para migração na mesma conta. |
|
Instance ID |
Selecione ou insira o ID da instância de origem do ApsaraDB RDS for MariaDB TX. |
|
Database Account |
Insira a conta do banco de dados para a instância de origem. Consulte Permissions required for database accounts. |
|
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 de destino do ApsaraDB RDS for MySQL está localizada. |
|
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 de destino do ApsaraDB RDS for MySQL. |
|
Database Account |
Insira a conta do banco de dados para a instância de destino. Consulte Permissions required for database accounts. |
|
Database Password |
Insira a senha da conta do banco de dados. |
|
Encryption |
Selecione Non-encrypted ou SSL-encrypted. Se você selecionar SSL-encrypted, ative primeiro a criptografia ssl na instância de destino. Consulte Configure the SSL encryption feature. |
Etapa 4: Testar a 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 do Alibaba Cloud e às regras do grupo de segurança das instâncias do 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 Add the CIDR blocks of DTS servers to the security settings of on-premises databases.
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 as senhas das contas, limitar as portas expostas, autenticar chamadas de API e auditar regularmente as listas de permissões de IP e as regras de grupo de segurança. Sempre que possível, conecte-se ao DTS usando o Express Connect, o VPN Gateway ou o Smart Access Gateway em vez de acesso por rede pública.
Etapa 5: Configure 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 de acordo com suas necessidades: - Apenas migração completa: Selecione Schema Migration e Full Data Migration. - Migração com continuidade operacional: Selecione Schema Migration, Full Data Migration e Incremental Data Migration. Se você 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 gatilhos de acordo com seus requisitos. Este parâmetro está disponível apenas quando tanto Schema Migration quanto Incremental Data Migration estão selecionados. Consulte Synchronize or migrate triggers from the source database. |
| Processing Mode of Conflicting Tables |
Precheck and Report Errors (padrão): O DTS verifica se há 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 Map object names. 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 a Selected Objects. Você pode selecionar colunas, tabelas ou bancos de dados. Selecionar tabelas ou colunas exclui visualizações, gatilhos e procedimentos armazenados da migração. |
| Selected Objects | Para renomear um único objeto, clique com o botão direito nele em Selected Objects. Consulte Map the name of a single object. Para renomear vários objetos de uma vez, clique em Batch Edit. Consulte Map multiple object names at a time. Para filtrar dados com condições WHERE, clique com o botão direito em um objeto e especifique as condições. Consulte Set filter conditions. 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 falhem na migração.
Etapa 6: Configure configuraçõ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 What is a DTS dedicated cluster. |
|
Set Alerts |
No: Sem alertas. Yes: Os 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 Configure monitoring and alerting. |
|
Retry Time for Failed Connections |
A janela de repetição para falhas de conexão. Valores válidos: 10 a 1.440 minutos. Padrão: 720 minutos. Defina para mais de 30 minutos. Se o DTS reconectar dentro da janela de repetição, 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 repetição configurado mais recentemente. |
|
The wait time before a retry when other issues occur in the source and destination databases |
A janela de repetição para problemas que não sejam de conexão, como operações DML ou DDL com falha. Valores válidos: 1 a 1.440 minutos. Padrão: 10 minutos. Defina para 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 do DTS. |
|
Configure ETL |
Yes: Abre um editor de código para inserir instruções de processamento de dados. Consulte Configure ETL in a data migration or synchronization task e What is ETL?. No: Ignora a configuração de ETL. |
Etapa 7: Execute 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: salve Task Settings and Precheck e clique em Preview OpenAPI parameters.
O DTS executa uma pré-verificação antes do início da tarefa de migração. Se houver itens com falha:
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 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 os seguintes itens:
| Seção | Parâmetro | Descrição |
|---|---|---|
| New Instance Class | Resource Group | O grupo de recursos para a instância de migração. Padrão: default resource group. Consulte What is Resource Management? |
| Instance Class | Selecione a classe da instância com base na velocidade de migração necessária. Consulte Specifications of data migration instances. |
Leia e aceite os Data Transmission service (Pay-as-you-go) service Terms marcando a caixa de seleção e clique em Buy and Start.
A tarefa de migração é iniciada e exibida na lista de tarefas. Monitore o progresso da tarefa nessa lista.
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 de destino do ApsaraDB RDS for MySQL.