Todos os produtos
Search
Central de documentação

Data Transmission Service:Altere o conjunto de caracteres de uma instância do ApsaraDB RDS for MySQL sem interrupções

Última atualização: Jul 17, 2026

Alterar o conjunto de caracteres de uma tabela (por exemplo, de gbk para utf8mb4) com o comando ALTER bloqueia a tabela. Esse bloqueio pode impactar significativamente seus services se a tabela for grande.

Para evitar o bloqueio da tabela, crie um esquema de tabela com o novo conjunto de caracteres em uma instância de destino, migre os dados da instância de source usando o Data Transmission Service (DTS) e configure uma solução de rollback ou escrita dupla para garantir uma transição suave.

Precauções

  • Antes de alterar o conjunto de caracteres, teste suas aplicações e instruções SQL para garantir compatibilidade com o novo conjunto.

  • Durante uma migração completa de dados, o DTS consome recursos de leitura e gravação nas instâncias de source e de destino, o que pode aumentar a carga do banco de dados. Avalie o desempenho de ambas as instâncias e considere migrar os dados em horários de baixa demanda.

  • Se uma tabela na instância de source não tiver chave primária ou restrição única, e suas colunas não garantirem unicidade, a migração poderá criar dados duplicados na instância de destino.

Etapa 1: Exportar e importar o esquema da tabela

Neste exemplo, todas as instâncias acessadas pelo Data Management (DMS) usam o Flexible Control Mode.

  1. Exporte o script de esquema das tabelas cujo conjunto de caracteres você deseja alterar da instância de source.

    1. Faça login na instância de source usando o DMS. Para mais informações, consulte Fazer login em uma instância do ApsaraDB RDS usando o DMS.

    2. Na barra de navegação superior, escolha Database Development > Data Export > Database Export.

      Nota

      Para executar esta operação, ative primeiro a opção Drop-down Menus in Top Navigation Bar no menu de configurações, acessível pelo ícone no canto superior direito.

    3. Configure as definições de exportação.

      Nota

      Os parâmetros obrigatórios e o processo de configuração podem variar dependendo do modo de gerenciamento da instância de destino. Para mais informações, consulte Exportar bancos de dados.

      Configuração

      Descrição

      Data Export Type in Application

      Selecione Database Export.

      Database name

      Selecione o banco de dados que deseja exportar.

      Nota

      É necessário ter as permissões adequadas para exportar o banco de dados. Para mais informações, consulte Visualizar minhas permissões.

      Exported table

      Neste exemplo, Specific Tables está selecionado. Escolha Specific Tables ou All Tables conforme sua necessidade.

      Nota

      Ao selecionar Specific Tables, marque as tabelas desejadas e configure as condições de filtro no lado direito da página.

      Export content

      Selecione Code Structure.

      File Format

      Neste exemplo, SQL vem selecionado por padrão e não pode ser alterado.

      Exported Structure Type

      Selecione os tipos de esquema a exportar conforme os requisitos do seu negócio.

      • Procedure

      • Function

      • Trigger

      • View

      • Event

      Nota

      Os tipos de esquema suportados variam conforme o tipo de banco de dados. As opções exibidas no console são definitivas.

      More Options

      Clique em Big Data Export Options ou SQL Script Options e selecione as opções necessárias.

    4. Clique em Submit an application e aguarde a aprovação do ticket.

    5. Após a aprovação do ticket, na seção Download, clique em Download Exported File. O link de download é válido por 24 horas. Baixe o arquivo dentro desse período.

  2. Descompacte o arquivo baixado. Em seguida, abra o script de esquema e modifique a configuração do conjunto de caracteres para o conjunto de destino.

  3. Adquira uma nova instância do ApsaraDB RDS for MySQL com as mesmas especificações da instância de source. Para mais informações, consulte Criar uma instância do ApsaraDB RDS for MySQL.

  4. Importe o script de esquema modificado para a nova instância do ApsaraDB RDS for MySQL.

    1. Faça login na nova instância do ApsaraDB RDS for MySQL usando o DMS. Para mais informações, consulte Fazer login em uma instância do ApsaraDB RDS usando o DMS.

    2. Na barra de navegação superior, escolha Database Development > Data Change > Data Import.

    3. Configure as definições de importação.

      Nota

      Os parâmetros obrigatórios e o processo de configuração podem variar dependendo do modo de gerenciamento da instância. Para mais informações, consulte Importar dados.

      Parâmetro

      Descrição

      Data Change Type in Application

      Selecione Large Data Import.

      Database

      Banco de dados de destino da importação.

      Nota

      Para instâncias nos modos de controle Flexible ou Stable Control Mode, faça login no banco de dados antes de selecioná-lo.

      File Encoding

      Selecione a codificação de caracteres do arquivo de importação:

      • UTF-8

      • GBK

      • ISO-8859-1

      • Auto-detect

      Import Mode

      Escolha um modo de importação:

      • Speed Mode: Durante a fase de execução, o sistema lê o arquivo e executa diretamente as instruções SQL no banco de dados de destino. Este modo é mais rápido, porém menos seguro que o Security Mode.

        Nota

        Por padrão, as regras de segurança do modo Speed Mode não permitem importação de dados nesse modo. Ative esse recurso na regra de segurança correspondente em Speed Mode > Security Rules > SQL Correct.

      • Basic Configuration Item: Na fase de pré-verificação, o sistema analisa o arquivo e armazena em cache os dados SQL ou CSV. Na fase de execução, lê do cache e executa as instruções no banco de dados de destino. Este modo oferece maior segurança, mas é mais lento que o Speed Mode.

      Security Mode

      Selecione o tipo de arquivo a ser importado.

      • Script SQL: No modo Security Collaboration, apenas os comandos INSERT e REPLACE são permitidos por padrão. Um DBA ou administrador pode modificar as configurações em File Type > Security Rules > SQL Correct.

      • CSV: O delimitador no arquivo deve ser vírgula.

      • Excel: O arquivo Excel pode conter cabeçalhos (atributos) ou apenas dados.

      Large Data Import

      Clique em Attachment para enviar o anexo.

      Nota
      • Arquivos dos tipos SQL, CSV, TXT, XLSX e ZIP são suportados.

      • O tamanho máximo do arquivo é de 5 GB.

      File

      Defina se deseja ignorar erros.

      • Não ignorar (desmarcado): Padrão. Se ocorrer um erro, o sistema interrompe a execução das instruções SQL subsequentes e reporta o erro.

      • Ignorar (selecionado): Se ocorrer um erro, o sistema o ignora e continua executando as instruções SQL subsequentes.

    4. Clique em Other Options. Aguarde a aprovação da pré-verificação do sistema. Se falhar, identifique e corrija o problema conforme a mensagem exibida e envie o ticket novamente.

      Nota

      O sistema faz uma pré-verificação do script SQL enviado. Se você enviar um arquivo CSV, ele gera as instruções INSERT correspondentes.

    5. Após a aprovação do ticket, na seção Submit an application, clique em Perform.

    6. Na caixa de diálogo Execute Change, escolha quando executar o ticket. Selecione Task Settings para execução imediata. Caso contrário, desative a chave Execute Immediately e selecione um horário de início. Em seguida, clique em Execute Immediately. A caixa de diálogo também exibe um Note for Security Change: Tente executar em horários de baixa demanda.

      O procedimento consiste nas seguintes etapas:

      • Confirm Execution: Configuração padrão. O ticket é executado imediatamente após você clicar em Execute Immediately.

      • Confirm Execution: Selecione um horário de início para a tarefa. O sistema executa automaticamente a tarefa no horário especificado após você clicar em Scheduled Execution.

      Nota
      • Durante a execução, o sistema lê o SQL analisado em fluxo e o executa no banco de dados em lotes (1 MB por lote).

      • Na seção Confirm Execution, visualize o status de execução da tarefa, detalhes da verificação SQL da tarefa e logs de agendamento.

      • Se uma tarefa pausada for reiniciada, ela será executada desde o início ou do ponto onde foi pausada, dependendo do modo de importação.

        • Modo Speed: Ao reiniciar uma tarefa pausada, o script é executado ou o arquivo de dados é importado desde o início.

        • Modo Security: Ao reiniciar uma tarefa pausada, o script é executado ou o arquivo de dados é importado a partir do ponto onde foi pausada.

    7. Após a importação bem-sucedida, verifique o conjunto de caracteres da tabela executando o comando show create table <table_name>;.

Etapa 2: Migrar dados para a nova instância

  1. Faça login no console do Data Transmission Service (DTS).

    Nota
    • Se você for redirecionado automaticamente para o console do Data Management (DMS), clique no ícone 返回旧版 no chatbot jiqiren no canto inferior direito para retornar à versão anterior do console do DTS.

    • Se estiver no novo console do DTS, clique no ícone 返回旧版 no canto inferior direito para retornar à versão anterior.

  2. No painel de navegação à esquerda, clique em Execution.

  3. No topo da página Migration Tasks, selecione a região do cluster de destino.

  4. No canto superior direito da página, clique em Data Migration.

  5. Configure os bancos de dados de source e de destino para a tarefa de migração.

    Categoria

    Configuração

    Descrição

    Nome da tarefa

    -

    O DTS gera automaticamente um nome para a tarefa. Especifique um nome descritivo para facilitar a identificação. O nome não precisa ser único.

    Banco de dados de source

    Tipo de instância

    Selecione Create Data Migration Task.

    Região da instância

    Selecione a região onde a instância RDS de source está localizada.

    ID da instância RDS

    Selecione o ID da instância RDS de source.

    Conta do banco de dados

    Insira a conta do banco de dados da instância RDS de source. Esta conta deve ter permissões de leitura e gravação nos bancos de dados a serem migrados.

    Senha do banco de dados

    Insira a senha da conta do banco de dados.

    Nota

    Após inserir as informações do banco de dados de source, clique em RDS Instance ao lado de Test Connectivity para verificar se as informações estão corretas. Se estiverem corretas, a mensagem Database Password será exibida. Se a mensagem Passed for exibida, clique em Failed ao lado da mensagem Diagnose e ajuste as informações do banco de dados de source conforme as orientações.

    Método de conexão

    Selecione Failed ou Non-encrypted. Se escolher SSL-encrypted, ative primeiro a criptografia SSL para a instância RDS. Para mais informações, consulte Configurar criptografia SSL.

    Nota

    A configuração SSL-encrypted está disponível apenas em regiões da China continental.

    Banco de dados de destino

    Tipo de instância

    Selecione Encryption.

    Região da instância

    Selecione a região onde a instância RDS de destino está localizada.

    ID da instância RDS

    Selecione o ID da instância RDS de destino.

    Conta do banco de dados

    Insira a conta do banco de dados da instância RDS de destino. Esta conta deve ter permissões de leitura e gravação nos bancos de dados de destino.

    Senha do banco de dados

    Insira a senha da conta do banco de dados.

    Nota

    Após inserir as informações do banco de dados de destino, clique em RDS Instance após Test Connectivity para verificar se as informações inseridas estão corretas. Se estiverem corretas, a mensagem Database Password será exibida. Se a mensagem Passed for exibida, clique em Failed após Diagnose e ajuste as informações do banco de dados de destino conforme as orientações.

    Método de conexão

    Selecione Failed ou Non-encrypted. Se escolher SSL-encrypted, ative primeiro a criptografia SSL para a instância RDS. Para mais informações, consulte Configurar criptografia SSL.

    Nota

    A configuração SSL-encrypted está disponível apenas em regiões da China continental.

  6. Após concluir a configuração, clique em Encryption no canto inferior direito da página.

    Nota

    Os endereços ip dos servidores do DTS são adicionados automaticamente à lista de permissões da instância do ApsaraDB RDS for MySQL para garantir conectividade entre os servidores do DTS e as instâncias de source e de destino.

  7. Selecione os tipos e objetos de migração.

    Configuração

    Descrição

    Tipos de migração

    Como a migração de esquema foi concluída na Etapa 1, não é necessário selecionar Schema Migration aqui.

    • Para realizar apenas uma migração completa, selecione somente Add Whitelist and Proceed to Next Step.

      Aviso

      Para garantir a consistência dos dados, não grave novos dados na instância de source durante a migração completa de dados.

    • Para uma migração sem tempo de inatividade, selecione tanto Full Data Migration quanto Full Data Migration.

      Nota

      As operações SQL suportadas durante a fase de migração incremental de dados são INSERT, UPDATE, DELETE, CREATE TABLE, ALTER TABLE, RENAME TABLE, TRUNCATE TABLE e DROP TABLE.

    Objetos de migração

    Na caixa Incremental Data Migration, selecione os objetos cujos esquemas você migrou na Etapa 1. Em seguida, clique no ícone 向右小箭头 para movê-los para a caixa Migration Object.

    Aviso

    Não realize mapeamento de nomes de objetos, pois o esquema já foi migrado. Isso causará falha na migração.

  8. Inicie a tarefa de migração.

    1. No canto inferior direito da página, clique em Selected Objects.

      Nota
      • O DTS realiza uma pré-verificação antes de iniciar a tarefa de migração. A tarefa só prossegue após passar na pré-verificação.

      • Se a pré-verificação falhar, clique no ícone 提示 ao lado de um item de verificação específico para visualizar seus detalhes. Corrija o problema conforme a orientação e execute a pré-verificação novamente.

    2. Após a aprovação na pré-verificação, clique em Precheck and Start.

    3. Na caixa de diálogo Next, selecione a Confirm Settings e marque a caixa de seleção Instance Class.

    4. Clique em Data Transmission Service (Pay-As-You-Go) Terms of Service para iniciar a tarefa de migração.

Etapa 3: Realizar o switchover da carga de trabalho

Escolha uma das soluções abaixo conforme as necessidades do seu negócio.

  • Solução de rollback (não requer alterações na aplicação, mas o rollback pode falhar):

    1. Verifique os dados migrados na instância do ApsaraDB RDS for MySQL de destino.

    2. Siga o procedimento no documento Procedimento de switchover da carga de trabalho para alternar sua carga de trabalho e estabelecer um plano de rollback. Isso envolve migrar dados incrementais da nova instância de destino de volta para a instância de source original.

    3. Mantenha a tarefa de migração reversa de dados em execução por um ciclo de negócios. Após o ciclo, teste todas as funcionalidades. Se tudo funcionar corretamente, pare a tarefa de migração reversa de dados.

    4. Opcional: Se a instância de source não for mais necessária, libere-a (se for uma instância de pagamento conforme o uso) ou cancele a assinatura (se for uma instância de assinatura).

  • Solução de escrita dupla (maior taxa de sucesso de rollback, mas requer alterações significativas na aplicação):

    1. Modifique sua aplicação para implementar uma lógica de escrita dupla, onde as alterações de dados são gravadas simultaneamente nas instâncias de source e de destino.

    2. Pare a tarefa de migração de dados.

      • Migração completa de dados

        Não pare manualmente uma tarefa durante a migração completa de dados. Caso contrário, o sistema pode falhar ao migrar todos os dados. Aguarde até que a tarefa de migração termine automaticamente.

      • Migração incremental de dados

        Este tipo de tarefa não para automaticamente; você deve pará-la manualmente.

        1. Aguarde até que a tarefa entre no estágio de Buy and Start com status Incremental Data Migration. Em seguida, pare as gravações no banco de dados de source por alguns minutos. Durante esse período, o status de Undelayed pode reportar latência.

        2. Aguarde o status de Incremental Data Migration retornar para Incremental Data Migration. Uma vez confirmado na lista, marque a caixa de seleção da tarefa e clique no botão StopEnd na barra de operações em lote na parte inferior.

      Nota

      Faça login na instância de source e execute show processlist; para verificar as informações de sessão e garantir que nenhuma nova sessão esteja realizando operações de gravação.

    3. Verifique os dados migrados na instância do ApsaraDB RDS for MySQL de destino.

    4. Configure sua aplicação para escrita dupla, onde as alterações de dados são gravadas tanto na instância de source quanto na de destino.

    5. Mantenha o estado de escrita dupla por um ciclo de negócios. Após o ciclo, teste todas as funcionalidades. Se tudo funcionar corretamente, ajuste a aplicação para gravar apenas na instância de destino.

    6. Opcional: Se a instância de source não for mais necessária, libere-a (se for uma instância de pagamento conforme o uso) ou cancele a assinatura (se for uma instância de assinatura).