Migración de un sistema de base de datos MySQL HeatWave a una instancia MySQL

Puede migrar los datos almacenados en un sistema de base de datos MySQL HeatWave a una instancia MySQL que se ejecute de forma local o en otros proveedores de nube como servicios gestionados o no gestionados. También puede exportar las tablas de base de datos a datos de texto que se utilizarán en otras bases de datos o aplicaciones.

El shell MySQL es un cliente avanzado y un editor de código para MySQL. Proporciona funcionalidad SQL además de capacidades de script para JavaScript y Python, e incluye varias API y utilidades para trabajar con bases de datos MySQL. El shell MySQL tiene utilidades de volcado y carga para exportar e importar datos almacenados en instancias MySQL. La versión del shell MySQL debe ser igual o superior a la versión de la instancia MySQL. Se recomienda instalar y utilizar la versión más reciente del shell MySQL.

Exportación de un sistema de base de datos MySQL HeatWave

Puede exportar los datos del sistema de base de datos MySQL HeatWave mediante una de las siguientes utilidades de volcado de shell MySQL:
  • util.dumpInstance(outputUrl[, options]): utilidad de exportación de instancias de MySQL que exporte todos los esquemas compatibles a un cubo de Object Storage o a archivos locales. Por defecto, esta utilidad exporta usuarios, eventos, rutinas y disparadores.
  • util.dumpSchemas(schemas, outputUrl[, options]): utilidad para exportar 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.
Puede escribir los archivos de volcado exportados en una de las siguientes ubicaciones:
  • Sistema de archivos local en la máquina cliente que ejecuta el shell MySQL
  • Almacenamiento de objeto de infraestructura de nube de Oracle
  • Cubo compatible con S3 de Amazon Web Services (AWS)
  • Almacenamiento de Microsoft Azure Blob

Puede instalar MySQL Shell en una instancia informática de Oracle Cloud Infrastructure u otra máquina cliente que pueda conectarse al sistema de base de datos MySQL HeatWave que contenga los datos que desea exportar. A continuación, ejecute el shell MySQL para conectarse al sistema de base de datos con una cuenta de usuario que tenga privilegios suficientes para acceder a los datos que desea exportar. Una vez conectado al sistema de base de datos, puede ejecutar las utilidades de volcado para exportar los datos.

Algunos ejemplos:
  • Exporte todos los esquemas de un sistema de base de datos MySQL HeatWave y almacene los archivos de volcado en un directorio del sistema de archivos denominado export-instance:
    shell-js> util.dumpInstance("export-instance", {ocimds: true})
    Cuando la opción ocimds se define en true en un volcado de instancia, todos los objetos de base de datos y las cuentas de usuario específicos de MySQL HeatWave se excluyen de la exportación. Exporta todos los esquemas, tablas, usuarios, eventos, rutinas y disparadores creados por el usuario en el sistema de base de datos MySQL HeatWave, que incluye:
    • Todos los esquemas creados por el usuario, junto con todos los objetos de base de datos y los datos de los esquemas.
    • Todas las cuentas de usuario de base de datos creadas por el usuario junto con sus privilegios otorgados.
  • Exporte el esquema world y almacene los archivos de volcado en un directorio del sistema de archivos denominado export-schemas-world:
    shell-js> util.dumpSchemas(["world"], "export-schemas-world")

    Este ejemplo exporta todos los objetos y datos de la base de datos en el esquema world. Las cuentas de usuario de la base de datos no se exportan.

  • Exporte las tablas city y country en el esquema world y almacene los archivos de volcado en un directorio del sistema de archivos denominado export-tables-city-country:
    shell-js> util.dumpTables("world", ["city", "country"],"export-tables-city-country")

    En este ejemplo se exportan todos los datos de las tablas city y country del esquema world. Otros objetos de base de datos del esquema world, como rutinas y eventos almacenados, no se exportan. Las cuentas de usuario de la base de datos tampoco se exportan.

  • Exporte las tablas city y country en el esquema world y almacene los archivos de volcado que contienen archivos de texto csv en un directorio del sistema de archivos denominado export-csv-city-country:
    shell-js> util.dumpTables("world", ["city", "country"],"export-csv-city-country", {dialect: "csv", compression: "none"})

    Este ejemplo exporta todos los datos de las tablas city y country del esquema world a archivos de texto csv sin comprimir. Estos archivos de texto se pueden cargar en otras bases de datos o aplicaciones, si es necesario.

  • Exporte la instancia MySQL y almacene los archivos de volcado en un cubo de Oracle Cloud Infrastructure especificado por una solicitud autenticada previamente (SAP):
    shell-js> util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/", {ocimds: true})
    El cubo debe estar vacío inicialmente.
  • Exporte la instancia MySQL y almacene los archivos de volcado en un cubo de Oracle Cloud Infrastructure con un prefijo especificado por una solicitud autenticada previamente (SAP):
    shell-js> util.dumpInstance("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/", {ocimds: true})
    El cubo no debe tener ningún objeto con el mismo prefijo.

Para obtener una referencia de todas las opciones disponibles, consulte MySQL Shell Dump Utilities.

Importación a una instancia MySQL

Puede utilizar la utilidad de carga de volcado de shell MySQL para importar los datos exportados mediante las utilidades de volcado de shell MySQL en cualquier instancia de MySQL. La instancia MySQL se puede ejecutar en entornos locales o en otros proveedores de servicios en la nube como servicios gestionados o no gestionados.
util.loadDump(url[, options])

Ejecute el shell MySQL en una máquina cliente y conéctese a la instancia MySQL con una cuenta de usuario que tenga los privilegios necesarios para importar los datos. Una vez conectado a la instancia MySQL, puede ejecutar la utilidad de carga de volcado del shell MySQL para importar los datos.

Algunos ejemplos:
  • En este ejemplo, se importan todos los objetos y datos de la base de datos de los archivos de volcado del directorio del sistema de archivos denominado export-instance:
    shell-js> util.loadDump("export-instance")
  • En este ejemplo se importan todos los objetos y datos de base de datos de un cubo de Oracle Cloud Infrastructure especificado por una solicitud autenticada previamente (PAR):
    shell-js> util.loadDump("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/", progressFile: "progress.json"})
    Al importar desde un bloque de Oracle Cloud Infrastructure mediante una PAR, se necesita un archivo de progreso local para realizar un seguimiento del estado de la importación.
  • En este ejemplo se importan todos los objetos y datos de base de datos de un cubo de Oracle Cloud Infrastructure con un prefijo especificado por una solicitud autenticada previamente (SAP):
    shell-js> util.loadDump("https://objectstorage.region.oraclecloud.com/p/secret/n/myTenancy/b/myBucket/o/MyPrefix/", progressFile: "progress.json"})
    Al importar desde un bloque de Oracle Cloud Infrastructure mediante una PAR, se necesita un archivo de progreso local para realizar un seguimiento del estado de la importación.

Para obtener una referencia de todas las opciones disponibles, consulte MySQL Shell Dump Loading Utilities.