Use o Data Transmission Service (DTS) para migrar dados de uma instância do PolarDB-X 2.0 para uma instância do PolarDB-X 1.0. O DTS oferece suporte à migração completa e incremental de dados, e você pode combiná-las para minimizar o tempo de inatividade.
Este recurso está em fase de lançamento canary e disponível apenas para alguns usuários.
escolha um tipo de migração
|
Tipo de migração |
Quando usar |
Custo |
|
Full data migration only |
Para migrar um conjunto de dados estático, sem gravações na origem durante a migração. |
Taxa de configuração da tarefa: gratuita. Taxa de transferência de dados: gratuita, exceto quando o Access Method do banco de dados de destino estiver definido como Public IP Address — nesse caso, haverá cobrança de tráfego de Internet. Consulte Itens faturáveis. |
|
Full + incremental data migration |
Para manter o banco de dados de origem ativo durante a migração; exige um cutover ao final. |
Migração completa: gratuita (mesmas condições acima); migração incremental: cobrada. Consulte Visão geral de faturamento. |
Ao usar apenas a migração completa, interrompa todas as gravações no banco de dados de origem antes de iniciar a tarefa. Caso contrário, os bancos de dados de origem e de destino ficarão com dados inconsistentes.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância de destino do PolarDB-X 1.0 com espaço de armazenamento superior ao volume de dados a migrar. Consulte crie uma instância do PolarDB-X 1.0
Banco de dados e tabelas criados na instância de destino para receber os dados migrados. Consulte crie um banco de dados e execute operações SQL básicas
Contas de banco de dados com as permissões necessárias nas instâncias de origem e de destino (consulte Permissões necessárias)
Use os mesmos nomes de banco de dados e tabelas na instância de destino e na de origem. Caso os nomes sejam diferentes, utilize o recurso de mapeamento de nomes de objetos na seção Selected Objects ao configurar a tarefa.
Permissões necessárias
| Banco de dados | Migração completa | Migração incremental |
|---|---|---|
| PolarDB-X 2.0 de origem | SELECT | REPLICATION SLAVE, REPLICATION CLIENT e SELECT nos objetos a migrar |
| PolarDB-X 1.0 de destino | Leitura e gravação | |
Para criar contas e conceder permissões:
Para o PolarDB-X 2.0: consulte gerencie contas de banco de dados e Account permission issues during data synchronization
Para o PolarDB-X 1.0: consulte gerencie contas de banco de dados
Limitações
Banco de dados de origem
O servidor host do banco de dados de origem deve ter largura de banda de saída suficiente. A largura de banda insuficiente reduz a velocidade da migração.
Instâncias somente leitura do PolarDB-X 2.0 Enterprise Edition não têm suporte como origem.
-
Não é possível migrar os seguintes objetos:
Tabelas com letras maiúsculas em seus nomes
Objetos TABLEGROUP e bancos de dados ou schemas com o atributo Locality
Tabelas com nomes de palavras reservadas (por exemplo,
select)Tabelas sem restrições PRIMARY KEY ou UNIQUE, ou com campos não únicos — o destino pode conter registros duplicados
Ao renomear tabelas ou colunas no destino e migrar tabelas individuais (não bancos de dados inteiros), a tarefa aceita no máximo 1.000 tabelas. Exceder esse limite causa um erro de solicitação. Divida as tabelas em várias tarefas ou migre bancos de dados inteiros.
Para a migração incremental, ative o log binário (ativado por padrão no PolarDB-X 2.0) e defina o parâmetro
binlog_row_imagecomofull. Se o parâmetro não estiver definido comofull, a pré-verificação falhará e a tarefa não poderá ser iniciada. Consulte Configurações de parâmetros.Não execute operações DDL para alterar o schema do banco de dados ou da tabela durante a migração completa de dados. O DTS consulta o banco de dados de origem durante a migração completa, criando bloqueios de metadados capazes de impedir operações DDL.
Caso a configuração de rede da instância do PolarDB-X 2.0 mude, a instância de migração poderá sofrer um atraso temporário.
Outras limitações
O DTS executa periodicamente
CREATE DATABASE IF NOT EXISTSno banco de dados de origem para gravar dados de heartbeat e avançar o offset do binlog. Caso Whether to delete SQL operations on heartbeat tables of forward and reverse tasks esteja definido como Yesconfigurações de notificação de alerta (ou se a conta do banco de dados de origem não tiver a permissão CREATE DATABASE) e nenhuma operação DML seja executada na origem por um longo período, a latência exibida pelo DTS poderá ser imprecisa. Para atualizar a latência, execute uma operação DML no banco de dados de origem.A migração completa de dados usa operações INSERT simultâneas, causando fragmentação de tabela no banco de dados de destino. Após a conclusão da migração completa, o espaço de armazenamento usado pelas tabelas de destino é maior que o das tabelas de origem.
A migração completa de dados consome recursos de leitura e gravação nos bancos de dados de origem e de destino. Execute as tarefas de migração em horários de baixa demanda — por exemplo, quando as cargas de cpu em ambos os bancos de dados estiverem abaixo de 30%.
A gravação de dados no destino a partir de fontes diferentes do DTS durante a migração pode causar inconsistência de dados ou falha na tarefa.
Em caso de falha de uma instância, o suporte do DTS tentará recuperá-la em até 8 horas. As operações de recuperação podem incluir a reinicialização da instância e o ajuste de parâmetros da instância do DTS (não parâmetros do banco de dados). Para ver os parâmetros ajustáveis, consulte modifique parâmetros da instância.
Operações SQL com suporte para migração incremental
|
Tipo de operação |
Instruções |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
CREATE TABLE, RENAME TABLE, ALTER TABLE, DROP TABLE, TRUNCATE TABLE, CREATE INDEX, DROP INDEX |
Observações sobre DDL:
Apenas a instrução CREATE TABLE para tabelas únicas tem suporte para migração. A instrução CREATE TABLE para bancos de dados e tabelas fragmentados não tem suporte.
Caso a origem seja uma instância do PolarDB-X 2.0 Enterprise Edition, a instrução CREATE INDEX não tem suporte para migração.
O RENAME TABLE pode causar inconsistência de dados ao selecionar a tabela renomeada como um objeto de migração. Para evitar isso, selecione o banco de dados (e não a tabela individual) como objeto de migração e certifique-se de incluir os bancos de dados aos quais a tabela pertence — antes e depois da renomeação — nos objetos de migração.
Migrar dados do PolarDB-X 2.0 para o PolarDB-X 1.0
Etapa 1: acesse a página Data Migration
Use um dos seguintes métodos:
DTS console
acesse o console do DTS.console do DTS
No painel de navegação à esquerda, clique em Data Migration.
No canto superior esquerdo, selecione a região da instância de migração.
DMS console
Nota
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.
acesse o console do DMS.console do DMS
Na barra de navegação superior, acesse Data + AI > DTS (DTS) > Data Migration.
Na lista suspensa à direita de Data Migration Tasks, selecione a região da instância de migração.
Etapa 2: crie uma tarefa
Clique em Create Task para acessar a página de configuração da tarefa.
Etapa 3: Configure os bancos de dados de origem e de destino
| Categoria | Parâmetro | Descrição |
|---|---|---|
| (Nenhuma) | Task Name | O DTS gera um nome automaticamente. especifique um nome descritivo para facilitar a identificação da tarefa. O nome não precisa ser exclusivo. |
| Source Database | Select Existing Connection | Se a instância estiver registrada no DTS, selecione-a na lista suspensa — o DTS preenche os parâmetros automaticamente. Caso contrário, configure os parâmetros manualmente. No console do DMS, selecione a instância em Select a DMS database instance. |
| Database Type | Selecione PolarDB-X 2.0. | |
| Access Method | Selecione Alibaba Cloud Instance. | |
| Instance Region | Selecione a região da instância do PolarDB-X 2.0 de origem. | |
| Replicate Data Across Alibaba Cloud Accounts | Selecione No (este exemplo usa a conta atual). | |
| Instance ID | Selecione o ID da instância do PolarDB-X 2.0 de origem. | |
| Database Account | insira a conta do banco de dados para a instância de origem. Consulte Permissões necessárias. | |
| Database Password | insira a senha da conta do banco de dados. | |
| Destination Database | Select Existing Connection | Se a instância estiver registrada no DTS, selecione-a na lista suspensa — o DTS preenche os parâmetros automaticamente. Caso contrário, configure os parâmetros manualmente. No console do DMS, selecione a instância em Select a DMS database instance. |
| Database Type | Selecione PolarDB-X 1.0. | |
| Access Method | Selecione Alibaba Cloud Instance. | |
| Instance Region | Selecione a região da instância do PolarDB-X 1.0 de destino. | |
| Instance ID | Selecione o ID da instância do PolarDB-X 1.0 de destino. | |
| Database Account | insira a conta do banco de dados para a instância de destino. Consulte Permissões necessárias. | |
| Database Password | insira a senha da conta do banco de dados. |
Etapa 4: Teste a conexão
Clique em Test Connectivity and Proceed.
Certifique-se de adicionar os blocos CIDR dos servidores do DTS às configurações de segurança dos bancos de dados de origem e de destino. Consulte Adicionar endereços IP do servidor DTS a uma lista de permissões .
Etapa 5: Configure os objetos de migração
Na página Configure Objects, configure os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
| Migration Types | Selecione Full Data Migration para migrar um conjunto de dados estático. Selecione Full Data Migration e Incremental Data Migration para manter o banco de dados de origem ativo durante a migração. |
| Incremental CDC Type | Selecione um tipo com base no mecanismo de log da instância do PolarDB-X 2.0. Disponível apenas quando Incremental Data Migration estiver selecionado. Antes de selecionar Multi-stream Change Data Capture (CDC), certifique-se de que o multi-stream esteja ativado na instância do PolarDB-X 2.0. Consulte Enable multi-stream. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors: a pré-verificação falha se o destino contiver tabelas com os mesmos nomes da origem. Caso não seja possível excluir ou renomear as tabelas, use o recurso de mapeamento de nomes de objetos para renomear as tabelas migradas. Consulte Mapear nomes de objetos. Ignore Errors and Proceed: ignora a pré-verificação para nomes de tabelas idênticos. Durante a migração completa, os registros existentes no destino são mantidos. Durante a migração incremental, os registros existentes são substituídos. Se os schemas de origem e destino forem diferentes, o DTS migrará apenas colunas específicas ou a tarefa poderá falhar. |
| Source Objects | Selecione um ou mais objetos e clique no ícone de seta para adicioná-los a Selected Objects. Selecione bancos de dados ou tabelas como objetos de migração. |
| Selected Objects | Clique com o botão direito em um objeto para renomeá-lo no destino ou especificar um objeto de destino. Consulte Mapear nomes de objetos. Para remover um objeto, selecione-o e clique no ícone de remoção. Clique com o botão direito em uma tabela para especificar condições de filtro WHERE (consulte Especificar condições de filtro) ou para selecionar as operações SQL para migração incremental. Nota
A renomeação de um objeto pode causar falha na migração de objetos dependentes. |
Clique em Next: Advanced Settings.
Etapa 6: defina as configurações avançadas
| Parâmetro | Descrição |
|---|---|
| Dedicated Cluster for Task Scheduling | Por padrão, o DTS agenda a tarefa para um cluster compartilhado. Para maior estabilidade, adquira um cluster dedicado. Consulte O que é um cluster dedicado do DTS. |
| Retry Time for Failed Connections | Define por quanto tempo o DTS repete a tentativa de conexões com falha antes de marcar a tarefa como falha. Valores válidos: 10 a 1.440 minutos. Padrão: 720 minutos. defina para pelo menos 30 minutos. Se diferentes tarefas compartilharem o mesmo banco de dados de origem ou de destino, o valor definido mais recentemente entra em vigor. Enquanto o DTS estiver tentando novamente, a instância continuará sendo cobrada. |
| Retry Time for Other Issues | Define por quanto tempo o DTS repete a tentativa de operações DDL ou DML com falha. Valores válidos: 1 a 1.440 minutos. Padrão: 10 minutos. defina para mais de 10 minutos. Deve ser menor que Retry Time for Failed Connections. |
| Enable Throttling for Full Data Migration | Limita o uso de recursos durante a migração completa. Configure Queries per second (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. 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 of forward and reverse tasks | Yes: o DTS não grava SQL de heartbeat no banco de dados de origem. As informações de latência podem ser imprecisas. No: o DTS grava SQL de heartbeat. Isso pode afetar o backup físico e a clonagem do banco de dados de origem. |
| Environment Tag | (Opcional) Selecione uma tag para identificar a instância. |
| Monitoring and Alerting | No: nenhum alerta configurado. Yes: configure um limiar de alerta e as configurações de notificação. Consulte Configurar monitoramento e alertas ao criar uma tarefa do DTS. |
Etapa 7: Configure a verificação de dados (opcional)
Clique em Next Step: Data Verification para configurar uma tarefa de verificação de dados. Consulte Configurar uma tarefa de verificação de dados.
Etapa 8: Execute a pré-verificação
Clique em Next: Save Task Settings and Precheck e salve as configurações.
Para visualizar os parâmetros da API desta tarefa, passe o mouse sobre Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters.
A tarefa precisa ser aprovada na pré-verificação antes da inicialização.
Se a pré-verificação falhar, clique em View Details ao lado de cada item com falha, resolva o problema e clique em Precheck Again .
Se um alerta for acionado para um item que você pode ignorar, clique em Confirm Alert Details > Ignore > OK e, em seguida, clique em Precheck Again . Ignorar itens de alerta pode causar inconsistência de dados.
Etapa 9: Adquira a instância e inicie a tarefa
Aguarde até que Success Rate atinja 100% e clique em Next: Purchase Instance.
-
Na página Purchase Instance, configure os seguintes parâmetros:
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 O que é o Resource Management? Instance Class A classe da instância determina a velocidade da migração. Selecione de acordo com os seus requisitos. Consulte Classes de instâncias de migração de dados. 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, clique em OK na caixa de diálogo de confirmação.
visualize o progresso da tarefa na página Data Migration.
Uma tarefa de apenas migração completa é interrompida automaticamente ao ser concluída. O status mostra Completed .
Uma tarefa com migração incremental nunca é interrompida automaticamente. O status mostra Running .
Próximos passos
Após a tarefa de migração atingir o estado desejado, conclua as seguintes etapas:
Verifique a consistência dos dados — confirme se os dados na instância do PolarDB-X 1.0 de destino correspondem aos da origem. Caso tenha configurado a verificação de dados, confira os resultados no DTS.
Transfira o tráfego da aplicação — atualize a string de conexão do banco de dados da sua aplicação para apontar para a instância do PolarDB-X 1.0 de destino.
Interrompa a tarefa de migração — se a tarefa estiver executando a migração incremental, interrompa-a após o cutover para evitar cobranças desnecessárias.
Faça a limpeza — libere a instância do DTS assim que a migração for concluída para encerrar o faturamento.