Todos los productos
Search
Centro de documentos

Data Transmission Service:Cambio del conjunto de caracteres en una instancia de ApsaraDB RDS for MySQL sin interrupciones

Última actualización: Sep 04, 2026

El cambio del conjunto de caracteres de una tabla (por ejemplo, de gbk a utf8mb4) mediante el comando ALTER bloquea la tabla, lo cual puede afectar significativamente sus servicios si la tabla es grande.

Para evitar el bloqueo de tablas, cree un esquema de tabla con el nuevo conjunto de caracteres en una instancia de destino, migre los datos desde la instancia de origen mediante Data Transmission Service (DTS) y configure una solución de reversión o escritura dual para garantizar una transición fluida.

Precauciones

  • Antes de cambiar el conjunto de caracteres, pruebe sus aplicaciones y sentencias SQL para asegurar que sean compatibles con el nuevo conjunto.

  • Durante una migración completa de datos, DTS consume recursos de lectura y escritura tanto en la instancia de origen como en la de destino, lo que puede aumentar la carga de la base de datos. Evalúe el rendimiento de ambas instancias y considere realizar la migración en horarios de baja demanda.

  • Si una tabla en la instancia de origen carece de clave primaria o restricción única, y sus columnas no garantizan unicidad, la migración podría generar datos duplicados en la instancia de destino.

Paso 1: Exportar e importar el esquema de la tabla

En este ejemplo, todas las instancias a las que se accede mediante Data Management (DMS) utilizan el Flexible Control Mode.

  1. Exporte el script de esquema de las tablas cuyo conjunto de caracteres desea modificar desde la instancia de origen.

    1. Inicie sesión en la instancia de origen mediante DMS. Para obtener más información, consulte Log on to an ApsaraDB RDS instance by using DMS.

    2. En la barra de navegación superior, seleccione Database Development > Data Export > Database Export.

      Nota

      Para realizar esta operación, primero debe habilitar Drop-down Menus in Top Navigation Bar en el menú de configuración, accesible mediante el icono en la esquina superior derecha.

    3. Configure los parámetros de exportación.

      Nota

      Los parámetros obligatorios y el proceso de configuración pueden variar según el modo de gestión de la instancia de destino. Para obtener más información, consulte Export databases.

      Configuración

      Descripción

      Data Export Type in Application

      Seleccione Database Export.

      Database name

      Seleccione la base de datos que desea exportar.

      Nota

      Debe contar con los permisos necesarios para exportar la base de datos. Para obtener más información, consulte View my permissions.

      Exported table

      En este ejemplo, se selecciona Specific Tables. Puede elegir Specific Tables o All Tables según sus necesidades.

      Nota

      Si selecciona Specific Tables, debe elegir las tablas y configurar las condiciones de filtro en el lado derecho de la página.

      Export content

      Seleccione Code Structure.

      File Format

      En este ejemplo, SQL está seleccionado de forma predeterminada y no se puede modificar.

      Exported Structure Type

      Seleccione los tipos de esquema que desea exportar según los requisitos de su negocio.

      • Procedure

      • Function

      • Trigger

      • View

      • Event

      Nota

      Los tipos de esquema compatibles varían según el tipo de base de datos. Las opciones que se muestran en la consola son definitivas.

      More Options

      Haga clic en Big Data Export Options o SQL Script Options y seleccione las opciones necesarias.

    4. Haga clic en Submit an application y espere a que se apruebe el ticket.

    5. Una vez aprobado el ticket, en la sección Download, haga clic en Download Exported File. El enlace de descarga tiene una validez de 24 horas; asegúrese de descargar el archivo dentro de este periodo.

  2. Descomprima el archivo descargado. Luego, abra el script de esquema y modifique la configuración del conjunto de caracteres al conjunto de destino.

  3. Adquiera una nueva instancia de ApsaraDB RDS for MySQL con las mismas especificaciones que la instancia de origen. Para obtener más información, consulte Create an ApsaraDB RDS for MySQL instance.

  4. Importe el script de esquema modificado en la nueva instancia de ApsaraDB RDS for MySQL.

    1. Inicie sesión en la nueva instancia de ApsaraDB RDS for MySQL mediante DMS. Para obtener más información, consulte Log on to an ApsaraDB RDS instance by using DMS.

    2. En la barra de navegación superior, seleccione Database Development > Data Change > Data Import.

    3. Configure los parámetros de importación.

      Nota

      Los parámetros obligatorios y el proceso de configuración pueden variar según el modo de gestión de la instancia. Para obtener más información, consulte Import data.

      Parámetro

      Descripción

      Data Change Type in Application

      Seleccione Large Data Import.

      Database

      Base de datos de destino para la importación.

      Nota

      Para instancias en Flexible o Stable Control Mode, debe iniciar sesión en la base de datos antes de poder seleccionarla.

      Flexible

      Seleccione la codificación de caracteres del archivo de importación:

      • UTF-8

      • GBK

      • ISO-8859-1

      • Auto-detect

      Stable

      Seleccione un modo de importación:

      • Control Mode: Durante la fase de ejecución, el sistema lee el archivo y ejecuta directamente las sentencias SQL en la base de datos de destino. Este modo es más rápido pero menos seguro que Security Mode.

        Nota

        De forma predeterminada, las reglas de seguridad para el modo File Encoding no permiten la importación de datos en Import Mode. Puede habilitar esta función en la regla de seguridad correspondiente dentro de Security Rules > SQL Correct > Basic Configuration Item.

      • Security Rules: Durante la fase de verificación previa, el sistema analiza el archivo y almacena en caché los datos SQL o CSV. En la fase de ejecución, lee desde la caché y ejecuta las sentencias en la base de datos de destino. Este modo ofrece mayor seguridad, pero es más lento que Speed Mode.

      SQL Correct

      Seleccione el tipo de archivo que va a importar.

      • Script SQL: En el modo Security Collaboration, solo se permiten los tipos de comando INSERT y REPLACE de forma predeterminada. Un DBA o administrador puede modificar esta configuración en Basic Configuration Item > Security Mode > File Type.

      • CSV: El delimitador en el archivo debe ser una coma.

      • Excel: El archivo de Excel puede contener encabezados (atributos) o solo datos.

      Security Rules

      Haga clic en SQL Correct para cargar el archivo adjunto.

      Nota
      • Se admiten archivos de tipo SQL, CSV, TXT, XLSX y ZIP.

      • El tamaño máximo del archivo es de 5 GB.

      Large Data Import

      Indique si se deben ignorar los errores.

      • No ignorar (desmarcado): Valor predeterminado. Si ocurre un error, el sistema detiene la ejecución de las sentencias SQL subsiguientes y reporta el error.

      • Ignorar (marcado): Si ocurre un error, el sistema lo ignora y continúa con la ejecución de las sentencias SQL subsiguientes.

    4. Haga clic en Attachment. Espere a que la verificación previa del sistema se complete correctamente. Si falla, identifique y corrija el problema según las indicaciones, y vuelva a enviar el ticket.

      Nota

      El sistema realiza una verificación previa del script SQL cargado. Si carga un archivo CSV, se generan las sentencias INSERT correspondientes.

    5. Una vez aprobado el ticket, en la sección File, haga clic en Other Options.

    6. En el cuadro de diálogo Submit an application, elija cuándo ejecutar el ticket. Puede seleccionar Perform. De lo contrario, desactive el interruptor Execute Change y seleccione una hora de inicio. Después, haga clic en Task Settings. El cuadro de diálogo también muestra una Nota para cambio de seguridad: Se recomienda ejecutar la tarea en horarios de baja demanda.

      Los métodos de ejecución son los siguientes:

      • Execute Immediately: Valor predeterminado. La tarea se ejecuta inmediatamente después de hacer clic en Execute Immediately.

      • Confirm Execution: Seleccione una hora de inicio para la tarea. Esta se ejecutará automáticamente a la hora especificada después de hacer clic en Running Immediately.

      Nota
      • Durante la ejecución, el sistema lee el SQL analizado en flujo y lo ejecuta por lotes en la base de datos. El tamaño de cada lote es de 1 MB.

      • Puede consultar el estado de la tarea, los detalles de la verificación de SQL y los registros de programación en la sección Confirm Execution.

      • Cuando se reinicia una tarea pausada, su comportamiento depende del modo de importación:

        • Speed Mode: La ejecución del script o la importación del archivo de datos comienza desde el inicio.

        • Security Mode: La ejecución del script o la importación del archivo de datos se reanuda desde el punto de pausa.

    7. Una vez completada la importación correctamente, puede verificar el conjunto de caracteres de la tabla mediante el comando show create table <table_name>;.

Paso 2: Migrar datos a la nueva instancia

  1. Inicie sesión en la consola de Data Transmission Service (DTS).

    Nota
    • Si se le redirige automáticamente a la consola de Data Management (DMS), haga clic en el icono 返回旧版 en el chatbot jiqiren de la esquina inferior derecha para volver a la versión anterior de la consola de DTS.

    • Si se encuentra en la nueva consola de DTS, haga clic en el icono 返回旧版 en la esquina inferior derecha para volver a la versión anterior.

  2. En el panel de navegación izquierdo, haga clic en Schedule.

  3. En la parte superior de la página Migration Tasks, seleccione la región del clúster de destino.

  4. En la esquina superior derecha de la página, haga clic en Confirm Execution.

  5. Configure las bases de datos de origen y de destino para la tarea de migración.

    Categoría

    Configuración

    Descripción

    Nombre de la tarea

    -

    DTS genera automáticamente un nombre para la tarea. Especifique un nombre descriptivo para facilitar su identificación. No es necesario que el nombre sea único.

    Base de datos de origen

    Tipo de instancia

    Seleccione Execution.

    Región de la instancia

    Seleccione la región donde se encuentra la instancia RDS de origen.

    ID de instancia RDS

    Seleccione el ID de la instancia RDS de origen.

    Cuenta de la base de datos

    Introduzca la cuenta de la base de datos para la instancia RDS de origen. Esta cuenta debe tener permisos de lectura y escritura sobre las bases de datos que se van a migrar.

    Contraseña de la base de datos

    Introduzca la contraseña de la cuenta de la base de datos.

    Nota

    Después de introducir la información de la base de datos de origen, puede hacer clic en Data Migration junto a Create Data Migration Task para verificar que la información sea correcta. Si es correcta, se mostrará el mensaje RDS Instance. Si se muestra el mensaje Test Connectivity, haga clic en Database Password junto al mensaje Passed y ajuste la información de la base de datos de origen según las indicaciones.

    Método de conexión

    Seleccione Failed o Diagnose. Si elige Failed, primero debe habilitar el cifrado SSL para la instancia RDS. Para obtener más información, consulte Configure SSL encryption.

    Nota

    La configuración de Non-encrypted solo está disponible en regiones de China continental.

    Base de datos de destino

    Tipo de instancia

    Seleccione SSL-encrypted.

    Región de la instancia

    Seleccione la región donde se encuentra la instancia RDS de destino.

    ID de instancia RDS

    Seleccione el ID de la instancia RDS de destino.

    Cuenta de la base de datos

    Introduzca la cuenta de la base de datos para la instancia RDS de destino. Esta cuenta debe tener permisos de lectura y escritura sobre las bases de datos de destino.

    Contraseña de la base de datos

    Introduzca la contraseña de la cuenta de la base de datos.

    Nota

    Después de introducir la información de la base de datos de destino, puede hacer clic en SSL-encrypted junto a Encryption para verificar que la información introducida sea correcta. Si es correcta, se mostrará el mensaje RDS Instance. Si se muestra el mensaje Test Connectivity, haga clic en Database Password junto a Passed y ajuste la información de la base de datos de destino según las indicaciones.

    Método de conexión

    Seleccione Failed o Diagnose. Si elige Failed, primero debe habilitar el cifrado SSL para la instancia RDS. Para obtener más información, consulte Configure SSL encryption.

    Nota

    La configuración de Non-encrypted solo está disponible en regiones de China continental.

  6. Una vez completada la configuración, haga clic en SSL-encrypted en la esquina inferior derecha de la página.

    Nota

    Las direcciones IP de los servidores de DTS se agregan automáticamente a la lista de permitidos de la instancia de ApsaraDB RDS for MySQL para garantizar la conectividad entre los servidores de DTS y las instancias de origen y destino.

  7. Seleccione los tipos y objetos de migración.

    Configuración

    Descripción

    Tipos de migración

    Dado que la migración de esquemas se completó en Step 1, no es necesario seleccionar Schema Migration aquí.

    • Para realizar únicamente una migración completa, seleccione solo SSL-encrypted.

      Aviso

      Para garantizar la consistencia de los datos, no escriba nuevos datos en la instancia de origen durante la migración completa.

    • Para una migración sin tiempo de inactividad, seleccione tanto Encryption como Add Whitelist and Proceed to Next Step.

      Nota

      Las operaciones SQL compatibles durante la fase de migración incremental son INSERT, UPDATE, DELETE, CREATE TABLE, ALTER TABLE, RENAME TABLE, TRUNCATE TABLE y DROP TABLE.

    Objetos de migración

    En el cuadro Full Data Migration, seleccione los objetos cuyos esquemas migró en Step 1. Luego, haga clic en el icono 向右小箭头 para moverlos al cuadro Full Data Migration.

    Aviso

    No realice asignaciones de nombres de objetos, ya que el esquema ya fue migrado. Esto provocaría un error en la migración.

  8. Inicie la tarea de migración.

    1. En la esquina inferior derecha de la página, haga clic en Incremental Data Migration.

      Nota
      • DTS realiza una verificación previa antes de iniciar la tarea de migración. La tarea solo puede continuar tras superar dicha verificación.

      • Si la verificación previa falla, haga clic en el icono 提示 junto al elemento de verificación específico para consultar sus detalles. Corrija el problema según las indicaciones y vuelva a ejecutar la verificación previa.

    2. Una vez superada la verificación previa, haga clic en Migration Object.

    3. En el cuadro de diálogo Selected Objects, seleccione la Precheck and Start y marque la casilla Next.

    4. Haga clic en Confirm Settings para comenzar la tarea de migración.

Paso 3: Realizar el cambio de carga de trabajo

Elija una de las siguientes soluciones según las necesidades de su negocio.

  • Solución de reversión (no requiere cambios en la aplicación, pero la reversión podría fallar):

    1. Verifique los datos migrados en la instancia de ApsaraDB RDS for MySQL de destino.

    2. Siga el procedimiento descrito en el documento Workload switchover procedure para cambiar su carga de trabajo y establecer un plan de reversión. Esto implica migrar los datos incrementales desde la nueva instancia de destino de regreso a la instancia de origen original.

    3. Mantenga la tarea de migración inversa de datos en ejecución durante un ciclo de negocio. Tras completar el ciclo, pruebe todas las funcionalidades. Si todo funciona correctamente, detenga la tarea de migración inversa.

    4. Opcional: Si la instancia de origen ya no es necesaria, puede liberarla (si es una instancia pay-as-you-go) o cancelar la suscripción (si es una instancia subscription).

  • Solución de escritura dual (mayor tasa de éxito en la reversión, pero requiere cambios significativos en la aplicación):

    1. Modifique su aplicación para implementar una lógica de escritura dual, donde los cambios en los datos se escriban simultáneamente tanto en la instancia de origen como en la de destino.

    2. Detenga la tarea de migración de datos.

      • Migración completa de datos

        No detenga manualmente una tarea durante la migración completa de datos. De lo contrario, el sistema podría no migrar todos los datos. Espere hasta que la tarea de migración finalice automáticamente.

      • Migración incremental de datos

        Este tipo de tarea no se detiene automáticamente; debe detenerla manualmente.

        1. Espere hasta que la tarea entre en la etapa Instance Class con estado Data Transmission Service (Pay-As-You-Go) Terms of Service. Luego, detenga las escrituras en la base de datos de origen durante unos minutos. Durante este periodo, el estado de Buy and Start podría reportar latencia.

        2. Espere a que el estado de Incremental Data Migration vuelva a Undelayed. Una vez confirmado esto en la lista, seleccione la casilla de la tarea y haga clic en el botón StopEnd en la barra de operaciones por lotes en la parte inferior.

      Nota

      Puede iniciar sesión en la instancia de origen y ejecutar show processlist; para revisar la información de sesiones y asegurarse de que ninguna sesión nueva esté realizando operaciones de escritura.

    3. Verifique los datos migrados en la instancia de ApsaraDB RDS for MySQL de destino.

    4. Configure su aplicación para escritura dual, de modo que los cambios en los datos se escriban tanto en la instancia de origen como en la de destino.

    5. Mantenga el estado de escritura dual durante un ciclo de negocio. Tras completar el ciclo, pruebe todas las funcionalidades. Si todo funciona correctamente, ajuste la aplicación para que escriba únicamente en la instancia de destino.

    6. Opcional: Si la instancia de origen ya no es necesaria, puede liberarla (si es una instancia pay-as-you-go) o cancelar la suscripción (si es una instancia subscription).