Importación de datos a Oracle HeatWave

Utilice el shell MySQL para conectarse al sistema de base de datos e importar los datos a Oracle HeatWave con las utilidades de carga de volcado y volcado del shell MySQL.

Para obtener instrucciones para configurar conexiones de cliente a un sistema de base de datos e instalar el shell MySQL, consulte Conexión a Oracle HeatWave.

A continuación, se muestra un resumen de un proceso con Oracle Database Service for Azure para exportar datos de una instancia de servidor MySQL local e importarlos al sistema de base de datos para el cluster HeatWave:

  • En la red local, utilice una de las utilidades de volcado del shell MySQL para exportar los datos de la instancia del servidor MySQL a un juego de archivos de volcado locales. Aplique las opciones de compatibilidad para Oracle HeatWave.
  • Transfiera los archivos de volcado con el método de transferencia de archivos preferido a una máquina virtual de Azure que se pueda conectar al sistema de base de datos.
  • En la máquina virtual de Azure, utilice la utilidad de carga de volcado del shell MySQL para importar los archivos de volcado al sistema de base de datos y, a continuación, utilice la función de carga paralela automática de Oracle HeatWave para cargar los datos en los nodos HeatWave.
Si desea probar este proceso con archivos de volcado de ejemplo ya creados por las utilidades de volcado del shell MySQL, puede utilizar la descarga de airportdb (aproximadamente 640 MB de tamaño). Para descargarlo y desempaquetarlo, use estos comandos:

wget https://downloads.mysql.com/docs/airport-db.tar.gz
tar xvzf airport-db.tar.gz
o:

wget https://downloads.mysql.com/docs/airport-db.zip
unzip airport-db.zip
En Windows, utilice la URL proporcionada para descargar el archivo Zip. El desempaquetado del archivo comprimido tar o Zip da como resultado un directorio denominado airport-db, que contiene los archivos de datos.

A continuación, se detallan los pasos del proceso:

  1. Utilice la utilidad de volcado de instancia de shell MySQL util.dumpInstance o la utilidad de volcado de esquema util.dumpSchemas para volcar los datos de una instancia de servidor MySQL en un juego de archivos de volcado locales.
    Para obtener la documentación de referencia de las utilidades de volcado del shell MySQL, consulte Instance Dump Utility, Schema Dump Utility, and Table Dump Utility. Aquí puede encontrar la sintaxis para llamar a las utilidades y la lista completa de opciones que puede agregar a la estructura de la salida de volcado, como la inclusión y exclusión de tablas.
    Si está probando el proceso con airportdb, puede omitir este paso, a menos que desee probar la transferencia de datos de la red local a la máquina virtual de Azure. En ese caso, descargue y desempaquete los archivos airportdb en la máquina local.
    1. En una máquina de la red local, inicie el shell MySQL y seleccione el modo JavaScript escribiendo \js o el modo Python escribiendo \py. Estos ejemplos se muestran en modo JavaScript.
    2. Ejecute el siguiente comando para iniciar una sesión global conectándose al punto final de la instancia de MySQL Server:
      \connect <UserName>@<EndpointIPAddress>
      • \connect: comando de shell MySQL para establecer una nueva conexión.
      • <UserName>: nombre de usuario de una cuenta de administrador para la instancia de MySQL Server.
      • <EndpointIPAddress>: dirección IP del punto final de la instancia de MySQL Server.
      Introduzca la contraseña de la cuenta de administrador cuando se le solicite.
    3. Realice una ejecución simulada del proceso de volcado para buscar cualquier problema de compatibilidad con un sistema de base de datos HeatWave de Oracle. Puede solucionar estos problemas cuando lleve a cabo el proceso de volcado de forma real.
      Utilice estas opciones para la ejecución simulada:
      dryRun: true
      Utilice esta opción la primera vez que ejecute la utilidad. Hace que la utilidad realice comprobaciones de compatibilidad y muestre los resultados, pero en realidad no vuelca los datos.
      ocimds: true
      Utilice esta opción para activar las comprobaciones y modificaciones de compatibilidad con Oracle HeatWave. En una ejecución simulada, la opción hace que la utilidad compruebe si hay problemas en la estructura de datos que se deben corregir antes de la importación.
      Especifique una ubicación en la que se colocarán los archivos de volcado. En este ejemplo, la utilidad de volcado de instancia se utiliza para volcar todos los esquemas de la instancia a los archivos de la carpeta C:/Users/hanna/worlddump, aunque los archivos aún no se están creando:
      util.dumpInstance("C:/Users/hanna/worlddump", {dryRun: true, ocimds: true})
      Obtendrá una respuesta como esta, con los problemas enumerados en la salida de volcado:
      
      Checking for compatibility with MySQL Database Service 8.0.30
      ...
      Compatibility issues with MySQL Database Service 8.0.30 were found. Please use the 
      'compatibility' option to apply compatibility adaptations to the dumped DDL.
      Util.dumpInstance: Compatibility issues were found (RuntimeError)
    4. Lleve a cabo el proceso de volcado real, elimine la opción dryRun y aplique las modificaciones de compatibilidad sobre las que se le haya informado en la salida de volcado.
      Utilice estas opciones para el volcado real:
      ocimds: true
      Utilice esta opción para activar las comprobaciones y modificaciones de compatibilidad con Oracle HeatWave. En el proceso de volcado real, la opción realiza cambios en los metadatos de volcado para que la importación funcione en un sistema de base de datos y comprueba los problemas restantes de la estructura de datos que no están cubiertos por las modificaciones de compatibilidad.
      compatibility: [array of strings]
      Utilice esta opción para agregar correcciones de compatibilidad a la salida de volcado. Enumere las opciones de modificación que se solicitan en los resultados de las comprobaciones de compatibilidad.
      Por ejemplo:
      util.dumpInstance("C:/Users/hanna/worlddump", {
              > ocimds: true, compatibility: ["strip_definers", "strip_restricted_grants"]})
      La utilidad vuelca los metadatos y los datos en un juego de archivos de volcado en la ubicación indicada.
  2. Utilice su método de transferencia de archivos preferido para realizar una conexión a una máquina virtual de Azure que se pueda conectar al sistema de base de datos. Transfiera todos los archivos de volcado y la carpeta contenedora a la máquina virtual de Azure.
    Si está probando el proceso con airportdb, puede descargar y desempaquetar los archivos en la máquina virtual de Azure.
  3. Utilice la utilidad de carga de volcado del shell MySQL util.loadDump en la VM de Azure para cargar los archivos de volcado en el sistema de base de datos.
    Para obtener la documentación de referencia de la utilidad de carga de volcado del shell MySQL, con la sintaxis y más opciones que puede agregar para controlar la carga de volcado, consulte Utilidad de carga de volcado.
    1. En la máquina virtual de Azure, inicie el shell MySQL y seleccione el modo JavaScript escribiendo \js o el modo Python escribiendo \py. Estos ejemplos se muestran en modo JavaScript.
    2. Ejecute el siguiente comando para iniciar una sesión global conectándose al punto final del sistema de base de datos:
      \connect <UserName>@<DBSystemEndpointIPAddress>
      • \connect: comando de shell MySQL para establecer una nueva conexión.
      • <UserName>: nombre de usuario de la cuenta de administrador que ha configurado para el sistema de base de datos HeatWave de Oracle.
      • <DBSystemEndpointIPAddress>: dirección IP del punto final del sistema de base de datos. Puede encontrarlo en el separador Conectar de la página de detalles del despliegue.
      Introduzca la contraseña de la cuenta de administrador cuando se le solicite.
    3. Ejecute la utilidad de carga de volcado para cargar los archivos de volcado en el sistema de base de datos desde la ubicación donde los colocó en la máquina virtual de Azure.
      Puede realizar una ejecución simulada primero si desea comprobar que no hay problemas. Por ejemplo:
      util.loadDump("/mnt/data/worlddump", {dryRun:true})
      En este ejemplo de carga real, el juego de GTID se transfiere al sistema de base de datos y se crea un archivo de estado de progreso para que pueda cancelar y reanudar la carga:
      util.loadDump("/mnt/data/worlddump", {progressFile: "loadprogress.json", updateGtidSet: append})
    4. Una vez finalizada la carga, puede verificar que los datos están presentes en el sistema de base de datos cambiando el shell MySQL al modo SQL (escriba \sql y pulse Intro). En este modo, puede utilizar sentencias MySQL para acceder a las bases de datos y tablas.
  4. Si ya ha creado los nodos HeatWave, utilice la función de carga paralela automática de Oracle HeatWave para cargar los datos en ellos. La carga paralela automática facilita el proceso de carga de datos en HeatWave mediante la automatización de muchos de los pasos implicados. Se puede ejecutar desde cualquier cliente o conector MySQL y se implanta como un procedimiento almacenado denominado heatwave_load, que reside en el esquema MySQL sys.
    1. En la máquina virtual de Azure, inicie el shell MySQL y seleccione el modo SQL escribiendo \sql.
    2. Ejecute el siguiente comando para iniciar una sesión global conectándose al punto final del sistema de base de datos:
      \connect <UserName>@<DBSystemEndpointIPAddress>
      • \connect: comando de shell MySQL para establecer una nueva conexión.
      • <UserName>: nombre de usuario de la cuenta de administrador que ha configurado para el cluster HeatWave.
      • <DBSystemEndpointIPAddress>: dirección IP del punto final del sistema de base de datos. Puede encontrarlo en el separador Conectar de la página de detalles del despliegue.
      Introduzca la contraseña de la cuenta de administrador cuando se le solicite.
    3. Llame a sys.heatwave_load para cargar los datos en el cluster HeatWave, asignando un nombre al esquema (base de datos) que desea cargar.
      Por ejemplo, para la base de datos airportdb de ejemplo, emita este comando:
      CALL sys.heatwave_load(JSON_ARRAY("airportdb"),NULL);
Ahora que los datos se han importado al sistema de base de datos, puede utilizar HeatWave Autopilot para estimar un número adecuado de nodos HeatWave para el cluster HeatWave. Consulte Aprovisionamiento de nodos HeatWave para obtener instrucciones.