Ao fazer o upgrade de uma instância Enterprise Edition para uma instância Cluster Edition, alternar as conexões sem migrar os dados pode causar tempo de inatividade e perda de dados. Use o Data Transmission Service (DTS) para migrar os dados entre as duas instâncias com tempo de inatividade mínimo, mantendo seu aplicativo em execução durante todo o processo.
Pré-requisitos
Antes de começar, certifique-se de ter:
Uma instância de origem do ApsaraDB RDS for MySQL Enterprise Edition e uma instância Cluster Edition de destino. Consulte Crie uma instância do ApsaraDB RDS for MySQL
Espaço de armazenamento disponível na instância de destino superior ao tamanho total dos dados na instância de origem
Defina o parâmetro
binlog_formatcomoROWe o parâmetrobinlog_row_imagecomoFULLna instância de origem. Consulte Modifique parâmetros da instância. Se esses parâmetros não estiverem configurados corretamente, a pré-verificação falha e não é possível iniciar a tarefa de migração
Permissões necessárias
Conceda as seguintes permissões às contas de banco de dados que o DTS utiliza antes de configurar a tarefa de migração.
|
Banco de dados |
Migração de esquema |
Migração de dados completa |
Migração de dados incremental |
|
Instância do ApsaraDB RDS for MySQL Enterprise Edition de origem |
SELECT |
SELECT |
Leitura e gravação |
|
Instância do ApsaraDB RDS for MySQL Cluster Edition de destino |
Leitura e gravação |
Leitura e gravação |
Leitura e gravação |
Crie contas e conceda permissões. Consulte Crie uma conta e Modifique as permissões de uma conta.
Tipos de migração
O DTS oferece suporte a três tipos de migração que você pode combinar conforme seus requisitos.
A Migração de esquema copia os esquemas dos objetos selecionados (tabelas, views, triggers, stored procedures e stored functions) da origem para o destino. Durante a migração de esquema:
O DTS migra foreign keys da origem para o destino.
O atributo SECURITY é alterado de DEFINER para INVOKER em views, stored procedures e funções. Para chamar esses objetos no destino, conceda permissões de leitura e gravação ao INVOKER.
O DTS não migra contas de usuário.
Durante a migração de dados completa e a migração de dados incremental, o DTS desativa temporariamente a verificação de restrições e as operações em cascata em foreign keys no nível da sessão. Caso atualize ou exclua registros em cascata no banco de dados de origem durante a migração de dados, pode ocorrer inconsistência de dados.
A Migração de dados completa copia todos os dados históricos nos objetos selecionados da origem para o destino.
A Migração de dados incremental replica continuamente as alterações da origem para o destino após a conclusão da migração de dados completa. Isso mantém as duas instâncias sincronizadas e permite que seu aplicativo continue em execução durante a migração.
Escolha sua abordagem de migração
|
Objetivo |
Selecione |
|
Migração única com uma janela de manutenção planejada |
Migração de esquema + Migração de dados completa |
|
Minimizar o tempo de inatividade — manter o aplicativo em execução durante a migração |
Migração de esquema + Migração de dados completa + Migração de dados incremental |
Caso execute apenas a migração de dados completa (sem migração incremental), interrompa todas as gravações no banco de dados de origem durante a migração para evitar inconsistência de dados.
Operações SQL com suporte na migração de dados incremental
|
Tipo de operação |
Instruções SQL |
|
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 |
As operações RENAME TABLE podem causar inconsistência de dados. Ao renomear uma tabela durante a migração, se essa tabela estiver selecionada como objeto de migração, os dados dela não serão replicados para o destino. Para evitar isso, selecione o banco de dados (e não tabelas individuais) como objeto de migração e certifique-se de incluir no escopo da migração tanto o nome do banco de dados antes da renomeação quanto o nome após a renomeação.
Faturamento
|
Tipo de migração |
Taxa de configuração da instância |
Taxa de tráfego de internet |
|
Migração de esquema + migração de dados completa |
Gratuita |
Cobrada apenas na migração de dados da Alibaba Cloud pela internet |
|
Migração de dados incremental |
Cobrada |
— |
Para obter detalhes sobre os preços, consulte Visão geral do faturamento.
Limitações
Banco de dados de origem
O servidor de origem deve ter largura de banda de saída suficiente. A largura de banda insuficiente reduz a velocidade da migração.
As tabelas devem ter restrições PRIMARY KEY ou UNIQUE, e todos os campos devem ser únicos. Tabelas sem essas restrições podem produzir registros duplicados no destino.
Selecione tabelas como objetos de migração e, se precisar renomear tabelas ou colunas no destino, o limite é de 1.000 tabelas por tarefa. Para migrações maiores, divida-as em várias tarefas ou selecione o banco de dados inteiro como objeto de migração.
-
Requisitos de retenção de log binário:
Apenas migração incremental: retenha os logs binários por mais de 24 horas
Migração completa + incremental: retenha os logs binários por pelo menos 7 dias
Após a conclusão da migração completa, você pode reduzir o período de retenção para mais de 24 horas. Reduzir a retenção abaixo desses limites pode impedir a recuperação dos logs binários pelo DTS, o que leva à falha da tarefa ou à perda de dados. O Acordo de Nível de Serviço (SLA) do DTS não cobre a confiabilidade do serviço se esses requisitos não forem atendidos.
Durante a migração de esquema e a migração de dados completa: não execute operações DDL que alterem os esquemas do banco de dados ou das tabelas. A tarefa falha.
Durante apenas a migração de dados completa: não grave dados no banco de dados de origem. Se precisar que as gravações continuem, inclua a migração de dados incremental.
Geral
Use a mesma versão do engine MySQL para as instâncias de origem e de destino para garantir a compatibilidade.
Agende a migração fora do horário de pico. A migração de dados completa utiliza recursos de leitura e gravação em ambas as instâncias, o que aumenta a carga do servidor.
Após a migração de dados completa, o tablespace no destino pode ser maior do que na origem devido à fragmentação causada por operações INSERT simultâneas.
Para colunas FLOAT e DOUBLE, o DTS usa
ROUND(COLUMN, PRECISION)para ler valores. Caso não especifique uma precisão, o DTS usa o padrão de 38 dígitos para FLOAT e 308 dígitos para DOUBLE. Verifique se esses padrões atendem aos seus requisitos antes de iniciar.O DTS repete automaticamente as tarefas com falha por até 7 dias. Antes de transferir as cargas de trabalho para o destino, pare ou libere quaisquer tarefas com falha, ou execute
REVOKEpara remover o acesso de gravação do DTS ao destino. Caso contrário, os dados de origem podem sobrescrever os dados de destino quando uma tarefa com falha for retomada.Se o nome do banco de dados de origem for inválido, crie manualmente o banco de dados de destino antes de configurar a tarefa. Consulte Gerencie bancos de dados. Para nomes de banco de dados válidos, o DTS cria o banco de dados de destino automaticamente.
Configure a tarefa de migração
Etapa 1: Acesse a página Data Migration Tasks
Faça login no console do Data Management (DMS).
-
Na barra de navegação superior, passe o mouse sobre DTS e escolha DTS (DTS) > Data Migration.
As etapas podem variar com base no modo do console do DMS. Consulte Modo simples e Personalizar o layout e o estilo do console do DMS . Como alternativa, acesse diretamente a página Data Migration do novo console do DTS .
Etapa 2: Selecione a região
Na lista suspensa no lado direito de Data Migration Tasks, selecione a região onde sua instância de migração de dados 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 Data Migration Task, configure os bancos de dados de origem e de destino.
Após configurar os bancos de dados de origem e de destino, leia os Limits exibidos na parte superior da página antes de prosseguir.
Banco de dados de origem
|
Parâmetro |
Valor |
|
Select an existing DMS database instance |
(Opcional) Selecione uma instância existente para preencher automaticamente os parâmetros abaixo. |
|
Database Type |
MySQL |
|
Access Method |
Alibaba Cloud Instance |
|
Instance Region |
A região onde a instância de origem está localizada |
|
Replicate Data Across Alibaba Cloud Accounts |
No |
|
RDS Instance ID |
O ID da instância Enterprise Edition de origem |
|
Database Account |
A conta do banco de dados com as permissões necessárias (consulte Permissões necessárias) |
|
Database Password |
A senha da conta |
|
Encryption |
Selecione Non-encrypted ou SSL-encrypted. Para usar a criptografia SSL, ative-a primeiro na instância RDS. Consulte Ative a criptografia SSL usando um certificado de nuvem. |
Banco de dados de destino
|
Parâmetro |
Valor |
|
Select an existing DMS database instance |
(Opcional) Selecione uma instância existente para preencher automaticamente os parâmetros abaixo. |
|
Database Type |
MySQL |
|
Access Method |
Alibaba Cloud Instance |
|
Instance Region |
A região onde a instância de destino está localizada |
|
RDS Instance ID |
O ID da instância Cluster Edition de destino |
|
Database Account |
A conta do banco de dados com permissões de leitura e gravação |
|
Database Password |
A senha da conta |
|
Encryption |
Selecione Non-encrypted ou SSL-encrypted. |
Etapa 4: Teste a conectividade
Clique em Test Connectivity and Proceed.
O DTS adiciona automaticamente seus blocos CIDR do servidor à lista de permissões de endereços IP das instâncias do ApsaraDB RDS. Para bancos de dados autogerenciados em instâncias do Elastic Compute Service (ECS), o DTS adiciona seus blocos CIDR às regras do grupo de segurança do ECS. Se o banco de dados for executado em várias instâncias do ECS, adicione manualmente os blocos CIDR do DTS ao grupo de segurança de cada instância. Para bancos de dados autogerenciados em data centers ou em nuvens de terceiros, adicione manualmente os blocos CIDR do DTS à lista de permissões de endereços IP do banco de dados. Para a lista completa de blocos CIDR, consulte Adicionar os blocos CIDR dos servidores DTS.
Adicionar blocos CIDR do servidor DTS às suas regras de lista de permissões ou grupo de segurança apresenta riscos de segurança. Tome medidas preventivas, como fortalecer as credenciais da conta, limitar as portas expostas, autenticar chamadas de API, auditar regularmente as regras de lista de permissões e grupos de segurança, e considerar opções de conectividade privada, como Express Connect, VPN Gateway ou Smart Access Gateway.
Etapa 5: Selecione objetos e configure as definições de migração
Configure os seguintes parâmetros.
|
Parâmetro |
Descrição |
|
Migration Types |
Selecione os tipos de migração com base na sua abordagem. Consulte Escolha sua abordagem de migração. |
|
Processing Mode of Conflicting Tables |
Precheck and Report Errors: a pré-verificação falha se o destino tiver tabelas com os mesmos nomes da origem. Use esta opção para detectar conflitos antes do início da migração. Ignore Errors and Proceed: ignora a verificação de conflito de nomes. Durante a migração de dados completa, os registros existentes no destino são mantidos. Durante a migração de dados incremental, os registros existentes são sobrescritos. Se os esquemas forem diferentes entre a origem e o destino, apenas colunas específicas são migradas ou a tarefa pode falhar. Use esta opção com cautela. |
|
Capitalization of Object Names in Destination Instance |
O padrão é DTS default policy. Ajuste se o banco de dados de destino tiver requisitos específicos de uso de maiúsculas e minúsculas. Consulte Especifique a capitalização de nomes de objetos na instância de destino. |
|
Source Objects |
Selecione um ou mais objetos e clique no ícone de seta para a direita para movê-los para Selected Objects. Selecione colunas, tabelas ou bancos de dados inteiros. A seleção de tabelas ou colunas exclui views, triggers e stored procedures da migração. |
|
Selected Objects |
Para renomear um único objeto, edite-o clicando com o botão direito nele e selecionando uma opção de renomeação. Caso precise renomear vários objetos, clique em Batch Edit. Consulte Mapear nomes de objetos. Para filtrar linhas com uma condição WHERE, clique com o botão direito no objeto e especifique a condição. Consulte Especifique condições de filtro. Se quiser selecionar quais operações DML ou DDL replicar incrementalmente, clique com o botão direito no objeto e configure as operações. |
Renomear um objeto pode fazer com que a migração de objetos dependentes falhe.
Etapa 6: Configure as definições avançadas
Clique em Next: Advanced Settings.
Data Verification Settings: Ative a verificação de dados; para isso, consulte Configurar uma tarefa de verificação de dados.
Advanced Settings:
| Parâmetro | Descrição |
|---|---|
| Monitoring and Alerting | Selecione Yes para receber alertas quando a tarefa falhar ou a latência da migração exceder um limiar. Configure o limiar de alerta e as configurações de notificação. Consulte Configurar monitoramento e alertas. |
| Copy the temporary table of the Online DDL tool that is generated in the source table to the destination database | Controla como o DTS lida com tabelas temporárias de ferramentas de DDL online. Yes: migra os dados da tabela temporária. Pode causar latência se o volume de dados for grande. No, Adapt to DMS Online DDL: migra apenas o DDL original do DMS; os dados da tabela temporária são ignorados. As tabelas no destino podem ser bloqueadas. No, Adapt to gh-ost: migra apenas o DDL original da ferramenta gh-ost; os dados da tabela temporária são ignorados. Use expressões regulares padrão ou personalizadas para filtrar tabelas sombra. As tabelas no destino podem ser bloqueadas. Importante
Não use o pt-online-schema-change no banco de dados de origem durante a migração — isso causará a falha da tarefa do DTS. |
| Retry Time for Failed Connections | A janela durante a qual o DTS tenta restabelecer uma conexão perdida. Intervalo válido: 10 a 1.440 minutos. Padrão: 720 minutos. Defina um valor de pelo menos 30 minutos. Se o DTS reconectar dentro desta janela, a tarefa é retomada automaticamente; caso contrário, ela falha. O DTS cobra pela instância durante as novas tentativas. Se várias tarefas compartilharem a mesma origem ou destino, o valor definido mais recentemente é aplicado. |
| Configure ETL | Selecione Yes para usar o recurso de extração, transformação e carga (ETL) para transformar dados durante a migração. Consulte O que é ETL? e Configurar ETL em uma tarefa de migração de dados ou sincronização de dados. |
Etapa 7: Execute a pré-verificação
Salve as configurações e execute a pré-verificação clicando em Next: Save Task Settings and Precheck.
O DTS executa uma pré-verificação automaticamente. A tarefa só inicia quando todos os itens da pré-verificação são aprovados.
Se um item da pré-verificação falhar, clique em View Details, corrija o problema e clique em Precheck Again.
Se um alerta for acionado e puder ser ignorado, confirme os detalhes do alerta clicando em Confirm Alert Details, depois em Ignore, depois em OK e clique em Precheck Again. Ignorar alertas pode levar à inconsistência de dados.
Visualize os parâmetros da API para esta configuração passando o mouse sobre Next: Save Task Settings and Precheck e clicando em Preview OpenAPI parameters .
Etapa 8: Compre a instância de migração
Aguarde até que a Success Rate atinja 100% e 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. O padrão é o default resource group. Consulte O que é o Resource Management? |
|
Instance Class |
Selecione uma classe de instância com base na velocidade de migração necessária. Classes superiores permitem uma migração mais rápida. Consulte Classes de instância de instâncias de migração de dados. |
Etapa 9: Inicie a migração
Leia e aceite os Data Transmission Service (Pay-as-you-go) Service Terms marcando a caixa de seleção.
Clique em Buy and Start e, em seguida, confirme a mensagem clicando em OK.
Acompanhe o progresso da migração na página Data Migration.