Migración de Amazon Redshift a Autonomous Database

El asistente de migración de SQL Developer Amazon Redshift, disponible con SQL Developer 18.3 y versiones posteriores, proporciona un marco para una migración sencilla de entornos de Amazon Redshift por esquema.

En esta sección, se describen los pasos y el flujo de trabajo para una migración en línea de Amazon Redshift y para la generación de scripts para una migración manual programada que se ejecute posteriormente.

Visión general de la migración de Redshift de Autonomous Database

Con SQL Developer, puede migrar archivos de base de datos de Amazon Redshift a Autonomous Database.

  • Capturar: captura esquemas y tablas de metadatos de la base de datos de origen y los almacenes en el repositorio de migración.

  • Convertir: los tipos de dato Redshift se asignan a los tipos de dato Oracle. Los nombres de objeto de Redshift se convierten en nombres de Oracle según la Convención de nomenclatura de Oracle. Los valores por defecto de columna que utilizan las funciones Redshift se sustituyen por sus equivalentes de Oracle.

  • Generar: genere esquemas y DDL basados en los metadatos convertidos.

  • Desplegar: despliegue los esquemas y las DDL generados.

  • Copiar datos: descargue los datos de las tablas de Redshift en Amazon Storage S3 y, a continuación, copie los datos de Amazon Storage en las tablas (en esquemas) de Autonomous Database que se hayan desplegado anteriormente.

Conexión a Amazon Redshift

Con SQL Developer, puede migrar esquemas y tablas de base de datos de Amazon Redshift a Autonomous Database. Para extraer metadatos y datos de Amazon Redshift para una migración, debe conectarse a Amazon Redshift con SQL Developer.

Descargar el controlador JDBC de Amazon Redshift y agregar el controlador de terceros

  1. Descargue un controlador JDBC de Amazon Redshift para acceder a Amazon Redshift. Consulte la documentación de Amazon Redshift para conocer la ubicación del controlador JDBC más reciente. Para obtener más información, consulte Configuración de una conexión JDBC.

    Nota

    Utilice el controlador compatible con JDBC 4.2 del controlador JDBC de Amazon Redshift.
  2. Almacene el controlador JDBC de Amazon Redshift en un directorio local donde SQL Developer pueda acceder al controlador JDBC de Amazon Redshift.

  3. Agregue el controlador JDBC de Amazon Redshift como tercero a SQL Developer antes de realizar una conexión. En SQL Developer, vaya a Tools (Herramientas) > Preferences (Preferencias) > Database (Base de datos) > Third Party JDBC Drivers (Controladores JDBC de terceros) (para Mac, esto es Oracle SQL Developer > Preferences Database > Third Party JDBC Drivers).

  4. Haga clic en Agregar entrada y seleccione la ruta al controlador JDBC de Amazon Redshift que descargue.


    A continuación se muestra la descripción de dwcs_aws_migration_jdbc_add1.png
    Descripción de la ilustración dwcs_aws_migration_jdbc_add1.png
  5. Haga clic en Aceptar para agregar el controlador JDBC de Amazon Redshift que descargue.


A continuación se muestra la descripción de dwcs_aws_migration_jdbc_add2.png
Descripción de la ilustración dwcs_aws_migration_jdbc_add2.png

Agregar conexión a la base de datos de Amazon Redshift

Conéctese a la base de datos de Amazon Redshift.

  1. En el panel Conexiones, haga clic con el botón derecho en Conexiones y seleccione Nueva conexión....

  2. Seleccione la ficha Amazon Redshift e introduzca la información de conexión de Amazon Redshift.

    Si planea migrar varios esquemas, se recomienda conectarse con el nombre de usuario maestro a su sistema Amazon Redshift.


    A continuación se muestra la descripción de adw_migrate_aws_connect1.png
    Descripción de la ilustración adw_migrate_aws_connect1.png

Pruebe la conexión antes de guardarla.

Información adicional sobre la autenticación y el control de acceso de Amazon

Conexión a Autonomous Database

Mediante SQL Developer, puede crear una conexión a Autonomous Database

Obtenga el archivo zip de cartera de credenciales de cliente. Para obtener más información, consulte Descarga de credenciales de cliente (carteras).
  1. En el panel Conexiones, haga clic con el botón derecho en Conexiones y seleccione Nueva conexión....
  2. Seleccione el separador Oracle e introduzca la información de conexión de Autonomous Database.
  3. Para la conexión de migración de AWS Redshift, seleccione la conexión _low a la base de datos.

    Para obtener más información, consulte Nombres de servicios de base de datos para Autonomous Database para obtener más información.

  4. Agregar una conexión a Autonomous Database.


    A continuación se muestra la descripción de adb_connect_sqldev_17.4.png
    Descripción de la ilustración adb_connect_sqldev_17.4.png

    Consulte Conexión a Oracle SQL Developer con una cartera (mTLS) para obtener más información.

    Pruebe la conexión antes de guardarla.

Iniciar el asistente de migración a la nube

Llame al asistente de migración a la nube desde el menú Herramientas de SQL Developer para iniciar la migración de Amazon Redshift a Autonomous Database.

El asistente de migración a la nube se inicia al hacer clic en Migraciones a la nube en Migración en el menú Herramientas. El asistente de migración a la nube permite migrar esquemas, objetos (tablas) y datos de una base de datos de Amazon Redshift a Autonomous Database.

El asistente de migración a la nube es un juego sencillo de pasos. El asistente de migración a la nube le guiará a:

  • Identifique los esquemas de la base de datos de Amazon Redshift que desea migrar.

  • Identifique la instancia de Autonomous Database de destino.

  • Defina si desea migrar los metadatos (DDL), los datos o ambos.

  • Elija migrar el sistema en línea, generar scripts o ambos.

Identificación de la base de datos de Amazon Redshift

Identifique los esquemas de la base de datos de Amazon Redshift que desea migrar. Se migrarán todos los objetos, principalmente las tablas, del esquema. La migración a Autonomous Database se realiza por esquema. No se puede cambiar el nombre de los esquemas como parte de la migración.

  1. En la migración de AWS Redshift, especifique la conexión.


    A continuación se muestra la descripción de adw_migrate_redshift_step1of3.png
    Descripción de la ilustración adw_migrate_redshift_step1of3.png
  • Conexión: nombre de la conexión de base de datos de Redshift.

  • Esquemas disponibles: esquemas disponibles para la conexión específica.

  • Esquemas seleccionados: haga clic en el icono Agregar para seleccionar los esquemas que desea migrar de Esquemas disponibles.

  • Incluir datos: DDL y DATA migran los esquemas y los datos seleccionados.

Al migrar datos, debe proporcionar la clave de acceso de AWS, la clave de acceso secreta de AWS y un URI de cubo S3 existente donde los datos de Redshift se descargarán y almacenarán temporalmente. Las credenciales de seguridad necesitan determinados privilegios para almacenar datos en S3. Se recomienda crear claves de acceso nuevas e independientes para la migración. Posteriormente, se utilizará la misma clave de acceso para cargar los datos en Autonomous Database mediante solicitudes REST seguras.

Formato de URI de cubo de Amazon S3

Para los archivos de origen que residen en Amazon S3, consulte lo siguiente para obtener una descripción del formato de URI para acceder a los archivos: Acceso a un cubo. Por ejemplo, lo siguiente hace referencia a la carpeta de archivos 'folder_name' en el cubo adwc de la región us-west-2.

https://s3-us-west-2.amazonaws.com/adwc/folder_name

Ejemplo 1 de configuración de cubo S3

Si proporciona el siguiente URI de cubo S3:

https://s3-us-west-2.amazonaws.com/my_bucket

El asistente verifica toda la ruta, incluido my_bucket. Se intenta escribir un archivo de prueba, si no se puede acceder a él, aparece una petición de datos. En caso de que my_bucket no exista, se notifica un error:

Validation Failed

A continuación, la generación de código crea la siguiente ruta de acceso para la función DBMS_CLOUD.COPY_DATA:

file_uri_list => "https://s3-us-west-2.amazonaws.com/my_bucket/oracle_schema_name/oracle_table_name/*.gz"

El asistente de migración crea estas carpetas: oracle_schema_name/oracle_table_name dentro del cubo: my_bucket.

S3 Ejemplo de cubo 2

Si proporciona el siguiente URI de cubo S3:

https://s3-us-west-2.amazonaws.com/my_bucket/another_folder

El asistente verifica toda la ruta, incluido my_bucket. Se intenta escribir un archivo de prueba, si no se puede acceder a él, aparece una petición de datos. En caso de que my_bucket no exista, se notifica un error:

Validation Failed

En este caso, another_folder no tiene que existir. La migración crea el cubo another_folder dentro de my_bucket.

A continuación, la generación de código crea la siguiente ruta de acceso para la función DBMS_CLOUD.COPY_DATA:

file_uri_list => ‘https://s3-us-west-2.amazonaws.com/my_bucket/another_folder/oracle_schema_name/oracle_table_name/*.gz

Paso 2 de 3: Autonomous Data Warehouse Cloud

Primero, cree una conexión para la instancia de Autonomous Database de destino. Consulte Conexión a Autonomous Database. El usuario para esta conexión debe tener los privilegios administrativos; la conexión se utiliza a lo largo de la migración para crear esquemas y objetos.

Nota

Utilice el usuario ADMIN o un usuario con rol de administrador.

El Asistente de migración de Amazon Redshift le permite realizar una migración en línea de inmediato, para generar todos los scripts necesarios para una migración, o ambos. Si decide almacenar las secuencias de comandos en un directorio local, debe especificar el directorio local (el usuario debe poder escribir en el directorio).

  • Conexión: nombre de la conexión de Autonomous Data Warehouse Cloud. Cree una conexión para la instancia de Autonomous Database si es necesario. El usuario debe tener privilegios administrativos, ya que esta conexión se utiliza durante toda la migración para crear esquemas y objetos. 

  • Contraseña de repositorio de migración: contraseña para el repositorio de migración que está instalado en Autonomous Database como parte de la migración de esquema. Utilice la contraseña rellenada previamente o introduzca una nueva contraseña.

  • Eliminar repositorio tras una migración correcta: seleccione esta opción para eliminar el repositorio una vez finalizada la migración. El repositorio no es necesario después de la migración.

  • Migrar ahora: seleccione esta opción para realizar una migración en línea inmediatamente.

    Nota

    • Si la opción Incluir datos del paso 1 y la opción Migrar ahora no están seleccionadas, está optando por solo generar todos los scripts SQL necesarios para la migración manual.

    • Si la opción Incluir datos del paso 1 está desactivada y está seleccionada la opción Migrar ahora, todos los esquemas seleccionados y sus tablas se desplegarán en Autonomous Database, pero los datos no se cargarán en tablas.

    • Si se seleccionan Incluir datos del paso 1 y Migrar ahora, todos los esquemas seleccionados y sus tablas se desplegarán en Autonomous Database y los datos se cargarán en tablas.

  • Directorio: especifique el director para almacenar las secuencias de comandos generadas necesarias para la migración; esto guarda las secuencias de comandos en un directorio local.

Configuración avanzada (opcional)

La configuración por defecto debe funcionar a menos que desee controlar las opciones de formato al descargar en el almacenamiento S3 o al copiar desde el almacenamiento S3 en Autonomous Database. Para obtener más información sobre las opciones de formato, consulte DBMS_CLOUD Package Format Options. Para utilizar opciones avanzadas, haga clic en Configuración avanzada.

Directorio de salida: introduzca la ruta o haga clic en Seleccionar directorio para seleccionar el directorio o la carpeta para la migración.

Número máximo de threads: introduzca el número de threads paralelos que desea activar al cargar datos en tablas de Autonomous Database.

Usar programador: seleccione esta opción para activar el programador para la migración. Puede programar trabajos para operaciones de migración de carga de datos desde el cubo S3 de AWS hasta Autonomous Database. Tiene la opción de ejecutar los trabajos programados inmediatamente o en una fecha y hora futuras. Para supervisar los trabajos programados de carga de datos, utilice el nodo Scheduler en el navegador Connections.

Opción de ejecución de migración:

  • Inmediatamente ejecuta el programador tan pronto como se dispara la migración de Redshift.

  • Una vez ejecuta el programador en una fecha futura. Debe especificar la fecha de inicio y la zona horaria. De forma predeterminada, la Fecha de inicio muestra la fecha y hora actuales del sistema local. Para cambiar la fecha de inicio, utilice el icono de calendario para hacer doble clic y seleccionar la fecha, o bien utilice el selector de fecha para resaltar la fecha y, a continuación, haga clic en el campo para definirla.

Opciones de descarga de Redshift: Permitir sobrescritura: si esta opción está activada, el proceso de descarga sobrescribirá los archivos existentes, incluido el archivo de manifiesto (enumera los archivos de datos que crea el proceso de descarga). Por defecto, la descarga falla si hay archivos que se pueden sobrescribir.

Opciones de formato de ADWC: límite de rechazo: introduzca el número de filas que desea rechazar al cargar datos en tablas de Autonomous Database. Esta operación de migración dará error después de que se ha rechazado el número especificado de filas. El valor por defecto es 0.

Revisión y finalización de la migración de Amazon Redshift

El resumen muestra un resumen de la información que ha especificado.

Para cambiar cualquier información, pulse Atrás según sea necesario.


Descripción de adw_migrate_aws_summary.png a continuación
Descripción de la ilustración adw_migrate_aws_summary.png

Si ha elegido una migración inmediata, el cuadro de diálogo del asistente de migración permanecerá abierto hasta que finalice la migración. Si selecciona Generar scripts, el proceso de migración genera los scripts necesarios en el directorio local especificado y no ejecuta los scripts.

Para realizar la migración, haga clic en Finalizar.

Si el nombre de esquema seleccionado en AWS Redshift ya existe en Autonomous Database, el proceso de migración excluye el despliegue de estos esquemas seleccionados y muestra un cuadro de diálogo:


Descripción de adw_migrate_aws_schema_exists.png a continuación
Descripción de la ilustración adw_migrate_aws_schema_exists.png

Resumen: Lo que crea el asistente de migración

  • Crea un nuevo usuario de Autonomous Database mediante schema_name desde Redshift.

  • Crea un nuevo cubo en S3 según el nombre de esquema.

  • Crea subcarpetas en S3 para cada tabla.

Uso de scripts de migración de Amazon Redshift generados

Cuando decide generar secuencias de comandos de migración, se crea un nuevo subdirectorio en el directorio local especificado en el asistente de migración. Puede ejecutar estos scripts en tiempo real o utilizarlos para el procesamiento programático.

El directorio contiene las siguientes secuencias de comandos:

  • redshift_s3unload.sql

  • adwc_ddl.sql

  • adwc_dataload.sql

  • adwc_dataload_scheduler.sql

Estos scripts contienen todos los comandos necesarios para migrar el sistema Amazon Redshift a Autonomous Database. Puede ejecutar estos scripts en tiempo real o utilizarlos para el procesamiento programático.

Descarga tus datos de Amazon Redshift en S3

El primer paso de una migración exitosa es descargar tus datos de Amazon Redshift en Amazon S3, que actúa como un área temporal. La secuencia de comandos redshift_s3unload.sql tiene todos los comandos de descarga de Amazon Redshift para descargar los datos mediante las credenciales de acceso y el cubo S3 que se especificaron en el flujo de trabajo del asistente de migración.

Conéctese a su entorno de Amazon Redshift para ejecutar este script.

Creación de Objetos de Almacén de Datos

Para preparar Autonomous Database, cree un esquema de almacén de datos vacío antes de cargar los datos. El Asistente de migración de Amazon Redshift convirtió todas las estructuras de esquema de Amazon Redshift en estructuras de Oracle en el script adwc_ddl.sql.

El script se debe ejecutar mientras está conectado a Autonomous Database como usuario con privilegios; por ejemplo, ADMIN.

De forma predeterminada, el esquema creado para la migración tiene el mismo nombre que el esquema en Amazon Redshift. Debe cambiar la contraseña por la contraseña válida para el usuario especificado, ya sea en el script o después de ejecutar el script. Si desea cambiar el nombre del esquema, cambie el nombre del esquema y todas las referencias al nombre.

Carga de los datos de Amazon Redshift en Oracle Autonomous Database

El script adwc_dataload.sql contiene todos los comandos de carga necesarios para cargar los datos de Amazon Redshift descargados directamente desde S3 en su instancia de Autonomous Database.

Ejecute el script mientras está conectado a Autonomous Database como usuario con privilegios; por ejemplo, ADMIN.

Si desea cambiar el nombre del esquema de destino al crear los objetos del almacén de datos, debe ajustar los nombres de esquema de destino en este script según corresponda.

Uso de JOB SCHEDULER

SQL Developer proporciona una interfaz gráfica para utilizar el paquete PL/SQL DBMS_SCHEDULER para trabajar con objetos de Oracle Scheduler. Para utilizar las funciones de programación de SQL Developer, consulte el tema "Programación de trabajos mediante SQL Developer" de la Guía del usuario de SQL Developer y la Guía del administrador de Oracle Database para comprender los conceptos y las tareas esenciales para la programación de trabajos.

El nodo Scheduler de una conexión aparece en el navegador Connections y en el navegador del DBA. Utilice el usuario 'admin' de ADWC para navegar, que muestra los objetos del programador que son propiedad del estado de supervisión 'admin' de los trabajos de carga de datos.

En Conexión 'admin' de ADWC → Planificador → Trabajos, verá que los trabajos de carga de datos de AWS Redshift a ADWC se crean con el nombre <schema_name>_<table_name>. 

Para ver el estado de finalización de cada carga de datos, expanda cada trabajo programado y compruebe el estado.

Para obtener información más detallada sobre la operación de carga de datos, consulte la tabla MD_REPORT en el esquema SQLDEV_MIGREPOS que almacena información sobre las columnas de la tabla: y

 OPERATION_ID, LOGFILE_TABLE, BADFILE_TABLE, SOURCE_SCHEMA_NAME, TARGET_SCHEMA_NAME, SOURCE_TABLE_NAME, 

y

 TARGET_TABLE_NAME, SOURCE_TABLE_ROWS, TARGET_TABLE_ROWS_LOADED, ERROR MESSAGE, 

y

STATUS (COMPLETED or FAILED)

Archivos de informes y log de migración de Redshift

Después de la migración de Redshift, encontrará tres archivos:

  • MigrationResults.log : archivo log de la migración de Redshift

  • readme.txt: archivo explica cómo utilizar los scripts de migración de Amazon Redshift generados.

  • redshift_migration_reportxxx.txt : contiene información sobre migración, a continuación se muestra un ejemplo:

    ______________________________________________________________
    OPERATION ID : 8566
    LOGFILE TABLE : COPY$8566_LOG
    BADFILE TABLE : COPY$8566_BAD
    SOURCE SCHEMA : sample
    TARGET SCHEMA : SAMPLE
    SOURCE TABLE : listing
    TARGET TABLE : LISTING
    SOURCE TABLE ROWS : 192497
    TABLE ROWS LOADED : 192497
    ERROR MESSAGE : null
    STATUS : COMPLETED
    START TIME : 2018-09-27 17:25:18.662075
    END TIME : 2018-09-27 17:25:25.012695
    ______________________________________________________________

Realizar Tareas Posteriores a la Migración

Después de la migración correcta del entorno de Redshift, debe tener en cuenta las siguientes tareas posteriores a la migración:

  • Borrar esquema SQLDEV_MIGREPOS

  • Borrar el cubo de Amazon S3 utilizado para la ubicación temporal

  • Reforzar la cuenta de Amazon utilizada para acceder a S3

  • Borrar la credencial de base de datos utilizada para la carga de datos desde S3

  • Refuerce sus cuentas en su instancia de Autonomous Database

  1. Borrar esquema SQLDEV_MIGREPOS

    Como parte de la migración de esquema, el asistente de migración instala un repositorio de migración mínimo en la instancia de Autonomous Database de destino. Después de la migración, esta cuenta ya no es necesaria y se puede borrar o bloquear de manera alternativa.

  2. Borrar el cubo de Amazon S3 utilizado para la ubicación temporal

    A menos que desee utilizar los datos de Redshift descargados, de lo contrario, puede borrar el cubo que contiene los datos descargados.

  3. Reforzar la cuenta de Amazon utilizada para acceder a S3

    Debe desactivar la clave de acceso de seguridad utilizada para el acceso S3 a menos que sea necesario para otros fines.

  4. Borrar la credencial de base de datos utilizada para la carga de datos desde S3

    Las credenciales de seguridad de Amazon para acceder a S3 se almacenan cifradas como credenciales de base de datos REDSHIFT_DWCS_CREDS en su instancia de Autonomous Database en el esquema de usuario con privilegios que se utilizó para la migración. Oracle recomienda borrar esta credencial después de una migración correcta a menos que sea necesario para otros fines. Para obtener más información, consulte el procedimiento DROP_CREDENTIAL.

  5. Refuerzo de las cuentas en Autonomous Database

    Para el nuevo esquema creado como parte de la migración con el asistente de migración, asegúrese de cambiar las contraseñas de estas cuentas o de bloquearlas y caducarlas si se utilizan únicamente para el almacenamiento de datos.