Convertir SQL el servidor a Mi SQL - AWS Schema Conversion Tool

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Convertir SQL el servidor a Mi SQL

Para emular las funciones de la base de datos de Microsoft SQL Server en su SQL código convertido, utilice el paquete de SQL extensiones SQL Server to My en AWS SCT. Para obtener más información acerca de los paquetes de extensión , consulte Uso de paquetes de extensión con AWS Schema Conversion Tool.

Privilegios para My SQL como base de datos de destino

Los privilegios necesarios para My SQL como objetivo son los siguientes:

  • CREATEEN * . *

  • ALTERENCENDIDO* . *

  • DROPENCENDIDO* . *

  • INDEXENCENDIDO* . *

  • REFERENCESENCENDIDO* . *

  • SELECTENCENDIDO* . *

  • CREATEVIEWENCENDIDO* . *

  • SHOWVIEWENCENDIDO* . *

  • TRIGGERENCENDIDO* . *

  • CREATEROUTINEENCENDIDO* . *

  • ALTERROUTINEENCENDIDO* . *

  • EXECUTEENCENDIDO* . *

  • INSERT, UPDATE EL AWS _ SQLSERVER _EXT. *

  • INSERT,UPDATE, DELETE EL AWS _ SQLSERVER _ EXT _DATA. *

  • CREATETEMPORARYTABLESEL AWS _ SQLSERVER _ EXT _DATA. *

Puede usar el siguiente ejemplo de código para crear un usuario de base de datos y conceder los privilegios.

CREATE USER 'user_name' IDENTIFIED BY 'your_password'; GRANT CREATE ON *.* TO 'user_name'; GRANT ALTER ON *.* TO 'user_name'; GRANT DROP ON *.* TO 'user_name'; GRANT INDEX ON *.* TO 'user_name'; GRANT REFERENCES ON *.* TO 'user_name'; GRANT SELECT ON *.* TO 'user_name'; GRANT CREATE VIEW ON *.* TO 'user_name'; GRANT SHOW VIEW ON *.* TO 'user_name'; GRANT TRIGGER ON *.* TO 'user_name'; GRANT CREATE ROUTINE ON *.* TO 'user_name'; GRANT ALTER ROUTINE ON *.* TO 'user_name'; GRANT EXECUTE ON *.* TO 'user_name'; GRANT INSERT, UPDATE ON AWS_SQLSERVER_EXT.* TO 'user_name'; GRANT INSERT, UPDATE, DELETE ON AWS_SQLSERVER_EXT_DATA.* TO 'user_name'; GRANT CREATE TEMPORARY TABLES ON AWS_SQLSERVER_EXT_DATA.* TO 'user_name';

En el ejemplo anterior, sustituya user_name por el nombre de su usuario. A continuación, sustituya your_password con una contraseña segura.

Si utiliza como destino una versión 5.7 o inferior de Mi SQL base de datos, ejecute el siguiente comando. Para la versión 8.0 y superior de Mis SQL bases de datos, este comando está obsoleto.

GRANT SELECT ON mysql.proc TO 'user_name';

Para usar Amazon RDS for My SQL o Aurora My SQL como objetivo, defina el lower_case_table_names parámetro en1. Este valor significa que el SQL servidor My gestiona los identificadores de nombres de objetos como tablas, índices, activadores y bases de datos sin distinguir entre mayúsculas y minúsculas. Si ha activado el registro binario en la instancia de destino, establezca el parámetro log_bin_trust_function_creators en 1. En este caso, no es necesario utilizar las características DETERMINISTIC, READS SQL DATA o NO SQL para crear funciones almacenadas. Para configurar estos parámetros, cree un grupo de parámetros de base de datos nuevo o modifique uno existente.

SQLConfiguración de conversión del servidor a Mi SQL

Para editar la configuración de SQL conversión SQL del servidor a mi configuración de conversión, AWS SCT seleccione Configuración y, a continuación, seleccione Configuración de conversión. En la lista superior, selecciona SQLServidor y, a continuación, selecciona SQLServidor — Mi SQL. AWS SCT muestra todos los ajustes disponibles para la SQL conversión de SQL Servidor a Mi.

SQLLa configuración de SQL conversión de Servidor a Mi AWS SCT incluye opciones para lo siguiente:

  • Limitar el número de comentarios con elementos de acción en el código convertido.

    En Añadir comentarios en el código convertido para los elementos de acción de la gravedad seleccionada o superior, selecciona la gravedad de los elementos de acción. AWS SCT añade comentarios en el código convertido para los elementos de acción de la gravedad seleccionada o superior.

    Por ejemplo, para minimizar el número de comentarios en el código convertido, seleccione Solo errores. Para incluir comentarios para todos los elementos de acción del código convertido, seleccione Todos los mensajes.

  • Para permitir que la base de datos SQL del servidor de origen almacene los resultados EXEC en una tabla. AWS SCT crea tablas temporales y un procedimiento adicional para emular esta función. Para usar esta simulación, seleccione Crear rutinas adicionales para gestionar conjuntos de datos abiertos.

Consideraciones sobre la migración

Tenga en cuenta lo siguiente al migrar un esquema de SQL servidor a My: SQL

  • My SQL no apoya la MERGE afirmación. Sin embargo, AWS SCT puede emular la MERGE declaración durante la conversión utilizando la INSERT ON DUPLICATE KEY cláusula y las UPDATE FROM and DELETE FROM declaraciones.

    Para un uso correcto de la emulaciónINSERT ON DUPLICATE KEY, asegúrese de que exista una restricción única o clave principal en la base de datos My de destino. SQL

  • Puede usar una instrucción GOTO y una etiqueta para cambiar el orden en el que se ejecutan las instrucciones. Se omite cualquier declaración SQL de Transact que siga a una GOTO declaración y el procesamiento continúa en la etiqueta. Puede usar las instrucciones GOTO y las etiquetas se pueden utilizar en cualquier lugar de un procedimiento, lote o bloque de instrucciones. También puede anidar instrucciones GOTO.

    My SQL no usa GOTO declaraciones. Cuando AWS SCT convierte el código que contiene una GOTO sentencia, convierte la sentencia para usar una LOOP…END LOOP sentencia BEGIN…END o. Puede encontrar ejemplos de cómo se AWS SCT convierten GOTO las sentencias en la siguiente tabla.

    SQLDeclaración del servidor Mi SQL declaración
    BEGIN .... statement1; .... GOTO label1; statement2; .... label1: Statement3; .... END
    BEGIN label1: BEGIN .... statement1; .... LEAVE label1; statement2; .... END; Statement3; .... END
    BEGIN .... statement1; .... label1: statement2; .... GOTO label1; statement3; .... statement4; .... END
    BEGIN .... statement1; .... label1: LOOP statement2; .... ITERATE label1; LEAVE label1; END LOOP; statement3; .... statement4; .... END
    BEGIN .... statement1; .... label1: statement2; .... statement3; .... statement4; .... END
    BEGIN .... statement1; .... label1: BEGIN statement2; .... statement3; .... statement4; .... END; END
  • My SQL no admite funciones con valores de tabla con múltiples sentencias. AWS SCT simula funciones con valores de tabla durante una conversión mediante la creación de tablas temporales y la reescritura de sentencias para utilizarlas.