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.
Migración de Oracle a Amazon RDS for My SQL o Amazon Aurora My SQL con el AWS Schema Conversion Tool
Para emular las funciones de la base de datos Oracle en el SQL código My convertido, utilice el paquete de extensiones Oracle to My SQL incluido. 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.
Temas
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* . *
CREATETEMPORARYTABLESENCENDIDO* . *
AWS_LAMBDA_ACCESS
INSERT, UPDATE EL AWS _ ORACLE _EXT. *
INSERT,UPDATE, DELETE EL AWS _ ORACLE _ EXT _DATA. *
Si utiliza como destino una versión 5.7 o inferior de Mi SQL base de datos, conceda el permiso INVOKE LAMBDA *.* en lugar de AWS _ LAMBDA _ACCESS. Para la versión 8.0 y superior de Mis SQL bases de datos, conceda el ACCESS permiso AWS _ LAMBDA _.
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 CREATE TEMPORARY TABLES ON *.* TO 'user_name
'; GRANT AWS_LAMBDA_ACCESS TO 'user_name
'; GRANT INSERT, UPDATE ON AWS_ORACLE_EXT.* TO 'user_name
'; GRANT INSERT, UPDATE, DELETE ON AWS_ORACLE_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, utilice GRANT INVOKE LAMBDA ON *.* TO '
en lugar deuser_name
'GRANT AWS_LAMBDA_ACCESS 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.
Configuración de conversión de Oracle a My SQL
Para editar la configuración de SQL conversión de Oracle a My, seleccione Configuración en y AWS SCT, a continuación, elija Configuración de conversión. En la lista superior, seleccione Oracle y, a continuación, Oracle — My SQL. AWS SCT muestra todos los ajustes disponibles para la SQL conversión de Oracle a My.
La configuración de SQL conversión de Oracle a My 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, seleccione 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 solucionar este problema, la base de datos Oracle de origen puede utilizar la
ROWID
pseudocolumna, pero My SQL no admite funciones similares. AWS SCT puede emular laROWID
pseudocolumna en el código convertido. Para ello, elija Generar como identidad en ¿Generar ID de fila?.Si el código fuente de Oracle no utiliza la pseudocolumna
ROWID
, seleccione No generar para generar en ¿Generar ID de fila? En este caso, el código convertido funciona más rápido. -
Para trabajar con el código fuente de Oracle cuando incluye las
TO_NUMBER
funcionesTO_CHAR
TO_DATE
, y con parámetros que My SQL no admite. De forma predeterminada, AWS SCT simula el uso de estos parámetros en el código convertido.Si el código fuente de Oracle incluye solo los parámetros SQL compatibles con Postgre, puede utilizar las funciones My SQL
TO_CHAR
TO_DATE
, yTO_NUMBER
nativas. En este caso, el código convertido funciona más rápido. Para incluir solo estos parámetros, seleccione los siguientes valores:La función TO_ CHAR () no utiliza cadenas de formato específicas de Oracle
La función TO_ DATE () no utiliza cadenas de formato específicas de Oracle
La función TO_ NUMBER () no utiliza cadenas de formato específicas de Oracle
-
Determinar si la base de datos y las aplicaciones se ejecutan en zonas horarias diferentes. De forma predeterminada, AWS SCT simula las zonas horarias del código convertido. Sin embargo, no necesita esta simulación cuando la base de datos y las aplicaciones utilizan la misma zona horaria. En este caso, seleccione La zona horaria del cliente coincide con la zona horaria del servidor.
Consideraciones sobre la migración
Al convertir Oracle en RDS for My SQL o Aurora MySQL, para cambiar el orden en el que se ejecutan las sentencias, puede utilizar una GOTO
sentencia y una etiqueta. SQLLas sentencias PL/ que siguen a una GOTO
sentencia se omiten 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 enumerar las declaraciones siguientesGOTO.
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.
Instrucción de Oracle | ¿Mi SQL declaración |
---|---|
|
|
|
|
|
|
Convertir el WITH estado de cuenta en Oracle RDS para My SQL o Amazon Aurora My SQL
La WITH cláusula (subquery_factoring) de Oracle se utiliza para asignar un nombre (query_name) a un bloque de subconsultas. A continuación, puede hacer referencia al bloque subquery en varios lugares de la consulta especificando el valor de query_name. Si un bloque de subconsultas no contiene enlaces o parámetros (local, procedimiento, función, paquete), AWS SCT convierte la cláusula en una vista o una tabla temporal.
El beneficio de convertir la cláusula en una tabla temporal es que las referencias repetidas a la subconsulta podrían ser más eficientes. La mayor eficiencia se debe a que los datos se recuperan fácilmente de la tabla temporal en lugar de que cada referencia tenga que solicitarlos. Puede emular esto mediante vistas adicionales o una tabla temporal. El nombre de la consulta utiliza el formato <procedure_name>$<subselect_alias>
.
Puede encontrar ejemplos en la siguiente tabla.
Instrucción de Oracle | Mi declaración SQL |
---|---|
|
|
|
|
|
|