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: Oct 12, 2026

Alterar o conjunto de caracteres de uma tabela (por exemplo, de gbk para utf8mb4) com o comando ALTER bloqueia a tabela, o que pode impactar significativamente seus serviços quando a tabela é 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 source usando o Data Transmission Service (DTS) e configure uma solução de rollback ou gravação 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 que sejam compatíveis com o novo conjunto de caracteres.

  • Durante uma migração de dados completa, o DTS consome recursos de leitura e gravação nas instâncias 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 menor movimento.

  • Se uma tabela na instância source não tiver uma chave primária ou restrição de exclusividade, e suas colunas não garantirem exclusividade, 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 por meio do Data Management (DMS) utilizam o Flexible Control Mode.

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

    1. Faça logon na instância source usando o DMS. Para mais informações, consulte Log on to an ApsaraDB RDS instance by using DMS.

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

      Nota

      Para realizar esta operação, você deve primeiro ativar 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 opções de exportação.

      Nota

      Os parâmetros necessários e o processo de configuração podem variar dependendo do modo de gerenciamento da instância de destino. Para mais informações, consulte Export databases.

      Configuração

      Descrição

      Data Export Type in Application

      Selecione Database Export.

      Database name

      Selecione o banco de dados que deseja exportar.

      Nota

      Você deve ter as permissões necessárias para exportar o banco de dados. Para mais informações, consulte View my permissions.

      Exported table

      Neste exemplo, Specific Tables está selecionado. Você pode selecionar Specific Tables ou All Tables de acordo com suas necessidades.

      Nota

      Se você selecionar Specific Tables, deverá selecionar as tabelas e configurar as condições de filtro no lado direito da página.

      Export content

      Selecione Code Structure.

      File Format

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

      Exported Structure Type

      Selecione os tipos de esquema a serem exportados com base nos requisitos do seu negócio.

      • Procedure

      • Function

      • Trigger

      • View

      • Event

      Nota

      Os tipos de esquema suportados variam dependendo do 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, em seguida, 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 para download é válido por 24 horas. Certifique-se de baixar o arquivo dentro deste 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 caracteres de destino.

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

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

    1. Faça logon na nova instância do ApsaraDB RDS for MySQL usando o DMS. Para mais informações, consulte Log on to an ApsaraDB RDS instance by using DMS.

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

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

      Nota

      Os parâmetros necessários e o processo de configuração podem variar dependendo do modo de gerenciamento da instância. Para mais informações, consulte Import data.

      Parâmetro

      Descrição

      Data Change Type in Application

      Selecione Large Data Import.

      Database

      O banco de dados de destino para a importação.

      Nota

      Para instâncias no Flexible ou Stable Control Mode, você deve fazer logon no banco de dados antes de poder 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

      Selecione 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 para o modo Speed Mode não permitem a importação de dados no Speed Mode. Você pode ativar esse recurso para a regra de segurança relevante em Security Rules > SQL Correct > Basic Configuration Item.

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

      File Type

      Selecione o tipo de arquivo que você está importando.

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

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

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

      Attachment

      Clique em File para enviar o anexo.

      Nota
      • Os tipos de arquivo SQL, CSV, TXT, XLSX e ZIP são suportados.

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

      Other Options

      Selecione 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 um erro.

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

    4. Clique em Submit an application. Aguarde a aprovação da pré-verificação do sistema. Se a pré-verificação falhar, identifique e corrija o problema com base no aviso e, em seguida, envie o ticket novamente.

      Nota

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

    5. Após a aprovação do ticket, na seção Perform, clique em Execute Change.

    6. Na caixa de diálogo Task Settings, escolha quando executar o ticket. Você pode escolher Execute Immediately. Caso contrário, desative a opção Execute Immediately e selecione um horário de início. Em seguida, clique em Confirm Execution. A caixa de diálogo também exibe um Note for Security Change: Tente executar em horários de menor movimento.

      Os métodos de execução são os seguintes:

      • Running Immediately: Padrão. A tarefa é executada imediatamente após você clicar em Confirm Execution.

      • Schedule: Selecione um horário de início para a tarefa. A tarefa é executada automaticamente no horário especificado após você clicar em Confirm Execution.

      Nota
      • Durante a execução, o sistema lê o SQL analisado em um fluxo e o executa em lotes no banco de dados. O tamanho de cada lote é de 1 MB.

      • Você pode visualizar o status da tarefa, os detalhes da verificação de SQL e os logs de agendamento na seção Execution.

      • Quando uma tarefa pausada é reiniciada, seu comportamento depende do modo de importação:

        • Speed Mode: A execução do script ou a importação do arquivo de dados começa do início.

        • Security Mode: A execução do script ou a importação do arquivo de dados é retomada a partir do ponto de pausa.

    7. Após a importação ser concluída com sucesso, você pode verificar 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 logon 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 você 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 Data Migration.

  3. Na parte superior da página Migration Tasks, selecione a região do cluster de destino.

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

  5. Configure os bancos de dados 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 fácil identificação. O nome não precisa ser único.

    Banco de dados source

    Tipo de instância

    Selecione RDS Instance.

    Região da instância

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

    ID da instância RDS

    Selecione o ID da instância RDS source.

    Conta do banco de dados

    Insira a conta do banco de dados para a instância RDS 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 source, você pode clicar em Test Connectivity ao lado de Database Password para verificar se as informações estão corretas. Se as informações estiverem corretas, a mensagem Passed será exibida. Se a mensagem Failed for exibida, clique em Diagnose ao lado da mensagem Failed e ajuste as informações do banco de dados source com base nos avisos.

    Método de conexão

    Selecione Non-encrypted ou SSL-encrypted. Se você escolher SSL-encrypted, deverá primeiro ativar a criptografia SSL para a instância RDS. Para mais informações, consulte Configure SSL encryption.

    Nota

    A configuração Encryption está disponível apenas em regiões na parte continental da China.

    Banco de dados de destino

    Tipo de instância

    Selecione RDS Instance.

    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 para a 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, você pode clicar em Test Connectivity após Database Password para verificar se as informações inseridas estão corretas. Se as informações estiverem corretas, uma mensagem Passed será exibida. Se uma mensagem Failed for exibida, clique em Diagnose após Failed e ajuste as informações do banco de dados de destino com base nos avisos.

    Método de conexão

    Selecione Non-encrypted ou SSL-encrypted. Se você escolher SSL-encrypted, deverá primeiro ativar a criptografia SSL para a instância RDS. Para mais informações, consulte Configure SSL encryption.

    Nota

    A configuração Encryption está disponível apenas em regiões na parte continental da China.

  6. Após concluir a configuração, clique em Add Whitelist and Proceed to Next Step no canto inferior direito da página.

    Nota

    Os endereços IP dos servidores DTS são adicionados automaticamente à lista de permissões da instância do ApsaraDB RDS for MySQL para garantir a conectividade entre os servidores DTS e as instâncias 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 em Step 1, você não precisa selecionar Schema Migration aqui.

    • Para realizar apenas uma migração completa, selecione apenas Full Data Migration.

      Aviso

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

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

      Nota

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

    Objetos de migração

    Na caixa Migration Object, selecione os objetos cujos esquemas você migrou em Step 1. Em seguida, clique no ícone 向右小箭头 para movê-los para a caixa Selected Objects.

    Aviso

    Não realize o mapeamento de nomes de objetos, pois o esquema já foi migrado. Isso fará com que a migração falhe.

  8. Inicie a tarefa de migração.

    1. No canto inferior direito da página, clique em Precheck and Start.

      Nota
      • O DTS realiza uma pré-verificação antes de iniciar a tarefa de migração. A tarefa só pode prosseguir 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 com base no aviso e, em seguida, execute a pré-verificação novamente.

    2. Após a pré-verificação ser aprovada, clique em Next.

    3. Na caixa de diálogo Confirm Settings, selecione a Instance Class e marque a caixa de seleção Data Transmission Service (Pay-As-You-Go) Terms of Service.

    4. Clique em Buy and Start para iniciar a tarefa de migração.

Etapa 3: Realizar o switchover da carga de trabalho

Escolha uma das seguintes soluções com base nas 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 Workload switchover procedure 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 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, interrompa a tarefa de migração reversa de dados.

    4. Opcional: Se a instância source não for mais necessária, você pode liberá-la (se for uma instância de pagamento conforme o uso) ou cancelar sua assinatura (se for uma instância de assinatura).

  • Solução de gravação 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 gravação dupla, onde as alterações de dados são gravadas nas instâncias source e de destino simultaneamente.

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

      • Migração completa de dados

        Não interrompa 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 interrompê-la manualmente.

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

        2. Aguarde o status de Incremental Data Migration retornar para Undelayed. Assim que isso for confirmado na lista, selecione a caixa de seleção da tarefa e clique no botãoStopEndna barra de operações em lote na parte inferior.

      Nota

      Você pode fazer logon na instância source e executar show processlist; para verificar as informações da 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 gravação dupla, onde as alterações de dados são gravadas nas instâncias source e de destino.

    5. Mantenha o estado de gravação 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 source não for mais necessária, você pode liberá-la (se for uma instância de pagamento conforme o uso) ou cancelar sua assinatura (se for uma instância de assinatura).