Exportación de una instancia MySQL
Exporte una instancia MySQL a un cubo de Object Storage mediante las utilidades de volcado del shell MySQL. A continuación, puede utilizar la función de importación de datos para importar datos del cubo de Object Storage a un sistema de base de datos presente en la misma región.
Use una de las siguientes utilidades de volcado:
util.dumpInstance(outputUrl[, options])
: utilidad de exportación de instancias de MySQL que exporta todos los esquemas compatibles a un cubo de Object Storage o a archivos locales. Por defecto, esta utilidad exporta usuarios, eventos, rutinas y disparadores. Consulte Dump Utilities.util.dumpSchemas(schemas, outputUrl[, options])
: utilidad de exportación de esquemas MySQL que exporta los esquemas seleccionados a un cubo de Object Storage o a archivos locales.util.dumpTables(schema, tables, outputUrl[, options])
: utilidad de exportación de tablas MySQL que exporta las tablas seleccionadas de un esquema a un cubo de Object Storage o a archivos locales.
Al exportar datos, realice comprobaciones de compatibilidad en los esquemas. Si hay algún problema, la utilidad de volcado anula la exportación y produce una lista detallada de problemas y sugiere pasos para corregirlos. Además, si hay una interrupción de conexión durante la exportación de datos, debe volver a ejecutar la utilidad de volcado. No puede pausar y reanudar la exportación de datos.
Con MySQL Shell
Use la utilidad dumpInstance
de shell de MySQL para exportar una instancia de MySQL a un cubo de almacenamiento de objetos.
- MySQL Shell 8.0.27 o superior. Las exportaciones creadas por MySQL Shell 8.0.27 o superior no las pueden importar las versiones anteriores de MySQL Shell. Se recomienda la última versión de MySQL Shell.
- Acceso a Object Storage y un cubo existente.
- Un archivo de configuración válido. Si ha instalado y configurado la CLI en la ubicación por defecto, tiene un archivo de configuración válido. Si no ha instalado ni configurado la CLI, debe instalarla o crear un archivo de configuración manualmente. Consulte Archivo de configuración de SDK y CLI.
Comprobaciones de Compatibilidad
El servicio HeatWave tiene varias restricciones relacionadas con la seguridad que no están presentes en una instancia MySQL. Utilice la opción ocimds
de la utilidad de volcado para realizar comprobaciones de compatibilidad en los datos volcados y, si hay algún problema, la utilidad anula el volcado y produce una lista detallada de problemas y sugiere pasos para corregirlos.
El siguiente comando muestra cómo realizar comprobaciones de compatibilidad con la opción ocimds
en el modo dryrun
. Algunos problemas encontrados por la opción ocimds
pueden requerir que edite manualmente el esquema antes de que se pueda cargar en el servicio HeatWave.
util.dumpInstance("", {mode: "dryrun", ocimds: true})
Después de identificar los problemas de compatibilidad y las opciones de compatibilidad, puede especificar las opciones en el comando que exporta los datos.
util.dumpInstance("<BucketPrefix>", {osBucketName: "<MDSBucket>", ocimds: true,
compatibility: ["force_innodb", "strip_definers", "strip_restricted_grants",
"skip_invalid_accounts", "strip_tablespaces", "ignore_missing_pks"] } )
Puede utilizar las siguientes opciones de compatibilidad separadas por comas para modificar automáticamente los datos exportados, lo que resuelve algunos de estos problemas de compatibilidad:
force_innodb
: HeatWave el servicio solo soporta el motor de almacenamiento InnoDB. Esta opción modifica la cláusulaENGINE
de las sentenciasCREATE TABLE
que utilizan motores de almacenamiento incompatibles y las sustituye por InnoDB.strip_definers
: elimina la cláusula"DEFINER=account"
de las vistas, rutinas, eventos y disparadores. El servicio HeatWave necesita privilegios especiales para crear estos objetos con un elemento de definición distinto del usuario que carga el esquema. Mediante la segmentación de la cláusulaDEFINER
, estos objetos se crearán con ese elemento de definición por defecto. En las vistas y las rutinas la cláusulaSQL SECURITY
cambia deDEFINER
aINVOKER
. Esto garantiza que se apliquen los permisos de acceso de la cuenta que consulta o llama a estos, en lugar del usuario que los ha creado. Si el modelo de seguridad de base de datos necesita vistas y las rutinas tienen más privilegios que su invocador, modifique manualmente el esquema antes de cargarlo. Consulte DEFINER y Seguridad SQL.strip_restricted_grants
: determinados privilegios están restringidos en el servicio HeatWave. Privilegios comoRELOAD
,FILE
,SUPER
,BINLOG_ADMIN
ySET_USER_ID
. No puede crear usuarios que otorguen estos privilegios. Esta opción elimina estos privilegios de las sentenciasGRANT
volcadas.skip_invalid_accounts
: no puede exportar un usuario que no tenga ninguna contraseña definida. Esta opción omite dichos usuarios.strip_tablespaces
: el servicio HeatWave tiene algunas restricciones en los tablespaces. Esta opción elimina la opciónTABLESPACE
de las sentenciasCREATE TABLE
, por lo que todas las tablas se crean en sus tablespaces por defecto.- Indicadores de clave primaria:
create_invisible_pks
: los sistemas de base de datos de alta disponibilidad requieren claves primarias. Si desea exportar datos para utilizarlos en un sistema de base de datos altamente disponible, agregue claves primarias si no están definidas en las tablas. Este indicador de compatibilidad agrega claves primarias invisibles a cada tabla que las necesite. Consulte Requisitos.ignore_missing_pks
: si no desea importar en un sistema de base de datos de alta disponibilidad, este indicador de compatibilidad ignora las claves primarias que faltan en el volcado.
Además, las opciones DATA DIRECTORY
, INDEX DIRECTORY
y ENCRYPTION
de las sentencias CREATE TABLE
siempre se comentan en scripts DDL si la opción ocimds
está activada.
Si desea exportar una versión anterior de MySQL, como la 5.7.9, y utiliza una versión de shell MySQL anterior a la 8.0.30, se recomienda ejecutar la utilidad de comprobación de actualización de shell MySQL para generar un informe de todos los problemas potenciales con la migración. Consulte Utilidad de comprobación de actualización.
Temas relacionados