Cómo trabajar con lugares de trabajo de conversión

En este documento, se explica cómo usar diferentes lugares de trabajo de conversión en Database Migration Service.

Usa espacios de trabajo de conversión con el editor integrado

El lugar de trabajo de conversión te ayuda a convertir el esquema y los objetos de la base de datos de origen en un formato compatible para la base de datos de destino. El espacio de trabajo te permite revisar, modificar y aplicar la estructura general de la conversión, pero no altera ningún dato de la base de datos de origen.

Convierte el esquema y el código fuente

Cuando configuras un lugar de trabajo, Database Migration Service realiza la extracción inicial del esquema de la base de datos de origen y los objetos de código, y, luego, seleccionas cuáles quieres convertir (puedes agregar más objetos más adelante). Estos objetos ahora se muestran en la pestaña Oracle. El panel Borrador de AlloyDB para PostgreSQL muestra el esquema y el código de PostgreSQL resultantes que genera Database Migration Service.

En este punto, Database Migration Service muestra los objetos previstos después de la conversión, no los objetos reales de la instancia de destino.

  1. En la consola de Google Cloud , ve a Espacios de trabajo de conversión.

    Ir a Lugares de trabajo de conversión

  2. En la lista de lugares de trabajo de conversión disponibles, selecciona el lugar de trabajo de conversión con el que deseas trabajar.

    Se abrirá el editor del lugar de trabajo de conversión.

  3. Opcional: Sube un archivo de configuración de Ora2Pg para proporcionar asignaciones adicionales para el SQL generado:

    1. Haz clic en Editar configuración > Personalizar asignación con un archivo de configuración.

    2. En el cuadro Archivo de configuración de Ora2Pg, haz clic en Explorar y usa el selector de archivos del sistema para seleccionar tu archivo de configuración.

    3. Haz clic en Agregar archivo > Generar.

  4. Opcional: Si ya tienes un esquema y un código convertidos, pero deseas ajustar manualmente el SQL generado antes de volver a ejecutar la conversión, sigue estos pasos:

    1. En el panel Oracle, selecciona el objeto para el que deseas ajustar la SQL generada.

    2. Navega a la pestaña SQL y, luego, inspecciona las instrucciones.

    3. Ajusta las secuencias de comandos según sea necesario para tu situación y haz clic en Guardar.

  5. Una vez que termines todos los ajustes, haz clic en Convertir fuente.

  6. En el cuadro de diálogo de confirmación, haz clic en Convertir.

Quita objetos del esquema de la fuente

Quita objetos del esquema de fuente para excluirlos de la conversión. Si es necesario, puedes agregar objetos quitados más adelante.

  1. En la consola de Google Cloud , ve a Espacios de trabajo de conversión.

    Ir a Lugares de trabajo de conversión

  2. En la lista de lugares de trabajo de conversión disponibles, selecciona el lugar de trabajo de conversión con el que deseas trabajar.

    Se abrirá el editor del lugar de trabajo de conversión.

  3. En la pestaña Oracle, junto al objeto que quieres quitar, selecciona Más > Quitar.

  4. En el diálogo de confirmación Quitar objeto, haz clic en Quitar.

  5. Vuelve a convertir la fuente para que se reflejen las actualizaciones en la pestaña Borrador de AlloyDB para PostgreSQL.

Agrega objetos al esquema de origen

Puedes agregar objetos que se quitaron anteriormente del esquema de origen para agregarlos a la conversión.

  1. En la consola de Google Cloud , ve a Espacios de trabajo de conversión.

    Ir a Lugares de trabajo de conversión

  2. En la lista de lugares de trabajo de conversión disponibles, selecciona el lugar de trabajo de conversión con el que deseas trabajar.

    Se abrirá el editor del lugar de trabajo de conversión.

  3. En la pestaña Oracle, haz clic en Agregar objetos.

  4. En la sección Agregar objetos, usa la lista de origen para seleccionar todas las entidades que deseas agregar al esquema de origen.

    Puedes usar el campo Filtrar para reducir la cantidad de objetos que se muestran. Consulta Cómo filtrar objetos en la vista del esquema de origen.

  5. Haz clic en Agregar objetos.

  6. Vuelve a convertir la fuente para que se reflejen las actualizaciones en la pestaña Borrador de AlloyDB para PostgreSQL.

Extraer el esquema de origen y la instantánea del código

Puedes extraer el esquema y el código de tu base de datos de origen al lugar de trabajo de conversión en cualquier momento. Extraer la fuente te brinda la oportunidad de agregar objetos nuevos o actualizar los existentes en la conversión.

Extraer el esquema y el código de la base de datos actualizada no restablece las asignaciones adicionales que existen en el lugar de trabajo de conversión de los archivos de configuración de Ora2Pg, a menos que decidas quitar las asignaciones personalizadas de forma explícita.

Además, extraer la fuente no anula los cambios de SQL en tus objetos de código. Puedes restablecer estos cambios directamente a nivel del objeto.

  1. En la consola de Google Cloud , ve a Espacios de trabajo de conversión.

    Ir a Lugares de trabajo de conversión

  2. Haz clic en Editar configuración > Volver a obtener la instantánea del esquema de origen.

  3. En el cuadro de diálogo, haz lo siguiente:

    1. (Opcional) Selecciona Restablecer asignación personalizada para quitar las asignaciones personalizadas existentes y las modificaciones de DDL.
    2. Haz clic en Extraer instantánea del esquema.

    Database Migration Service extrae la nueva instantánea de tu base de datos de origen. Cuando se complete la operación, vuelve a convertir la fuente.

Revisar los resultados de conversiones

Después de realizar la conversión de origen, puedes revisar los resultados de la conversión y los posibles problemas de cada objeto convertido individual en el área del editor del lugar de trabajo. También puedes usar Google Cloud CLI para guardar todos los resultados y problemas en forma masiva en un archivo de texto.

Console

  1. En la consola de Google Cloud , ve a Espacios de trabajo de conversión.

    Ir a Lugares de trabajo de conversión

  2. Haz clic en el nombre visible del lugar de trabajo de conversión con el que deseas trabajar.

    Se abrirá el editor del lugar de trabajo de conversión.

  3. Selecciona la pestaña Oracle y busca el objeto para el que deseas revisar los resultados de las conversiones en la tabla de vista de árbol.

  4. Selecciona el objeto. Usa las pestañas SQL y Problemas de conversión para revisar la conversión.

gcloud

Con Google Cloud CLI, puedes imprimir todos los resultados o problemas de conversión en la terminal. Redirecciona el resultado a un archivo para realizar revisiones de objetos en bloque más convenientes.

Obtén una lista de los resultados de conversiones

gcloud CLI muestra los resultados de la conversión en la terminal en forma de sentencias del lenguaje de definición de datos (DDL). Para guardar los resultados de las conversiones en un archivo, ejecuta el siguiente comando:

  gcloud database-migration conversion-workspaces describe-ddls \
  CONVERSION_WORKSPACE_ID \
  --region=REGION_ID \
  > OUTPUT_FILE_PATH

Reemplaza lo siguiente:

  • CONVERSION_WORKSPACE_ID con el identificador del lugar de trabajo de conversión. Para obtener información sobre cómo recuperar los identificadores de los lugares de trabajo de conversión, consulta Cómo ver los detalles del lugar de trabajo de conversión.
  • REGION_ID por el nombre de la región en la que se encuentra el lugar de trabajo de conversión.
  • OUTPUT_FILE_PATH por la ruta de acceso al archivo de texto en el que deseas guardar el resultado.

    Ejemplo:

    gcloud database-migration conversion-workspaces describe-issues \
    my-conversion-workspace \
    --region=us-central1 \
    > ./my-conversion-issues.txt
    

    Resultado:

    Los resultados de la conversión de esquemas se guardan en un formato de texto en el que la primera línea dice DDLs y las líneas posteriores están ocupadas por instrucciones de SQL:

    DDLs
    CREATE SCHEMA IF NOT EXISTS "SCHEMA1";
    ALTER TABLE "SCHEMA1"."EMPLOYEES" ADD CONSTRAINT PK_ID PRIMARY KEY ("ID");
    CREATE OR REPLACE FUNCTION mockschema.func_test_datatype(str1 VARCHAR(65000))
      RETURNS DECIMAL
      LANGUAGE plpgsql
      AS $$
        DECLARE
          str2 VARCHAR(100);
        BEGIN
          SELECT
              employees.first_name
            INTO STRICT
              STR2
            FROM
              mockschema.employees
            WHERE employees.employee_id = CAST(FUNC_TEST_DATATYPE.str1 as DECIMAL)
          ;
          RAISE NOTICE '%', concat('Input : ', FUNC_TEST_DATATYPE.str1, ' Output : ', str2);
          RETURN 0;
        END;
      $$;
    CREATE OR REPLACE PROCEDURE greetings AS BEGIN dbms_output.put_line('Hello World!'); END;
    CREATE SYNONYM TABLE "SCHEMA1"."SYNONYM1" ON "SCHEMA1"."EMPLOYEES";
    CREATE OR REPLACE VIEW "SCHEMA1"."VIEW1" AS SELECT * FROM JOBS;
    

Obtén una lista de problemas de conversiones

Para guardar los problemas de conversión en un archivo, ejecuta el siguiente comando:

  gcloud database-migration conversion-workspaces describe-issues \
  CONVERSION_WORKSPACE_ID \
  --region=REGION_ID \
  > OUTPUT_FILE_PATH

Reemplaza lo siguiente:

  • CONVERSION_WORKSPACE_ID con el identificador del lugar de trabajo de conversión. Para obtener información sobre cómo recuperar los identificadores de los lugares de trabajo de conversión, consulta Cómo ver los detalles del lugar de trabajo de conversión.
  • REGION_ID por el nombre de la región en la que se encuentra el espacio de trabajo de conversiones.
  • OUTPUT_FILE_PATH por la ruta de acceso al archivo de texto en el que deseas guardar el resultado.

Ejemplo:

  gcloud database-migration conversion-workspaces describe-issues \
  my-conversion-workspace \
  --region=us-central1 \
  > ./my-conversion-issues.txt

Resultado:

Todos los problemas de conversión que se incluyen en tu espacio de trabajo se guardan en un formato de texto en el que la primera línea contiene encabezados de columna y cada línea posterior contiene un problema de conversión independiente:

  PARENT   NAME               ENTITY_TYPE       ISSUE_TYPE  ISSUE_SEVERITY  ISSUE_CODE  ISSUE_MESSAGE
  SCHEMA1  EMPLOYEES          TABLE             DDL         ERROR           500         unable to parse DDL.
  SCHEMA1  EMPLOYEES          TABLE             CONVERT     WARNING         206         no conversion done.
  SCHEMA1  STORED_PROCEDURE1  STORED_PROCEDURE  DDL         ERROR           500         invalid DDL.
  SCHEMA1  SYNONYM1           SYNONYM           CONVERT     WARNING         206         synonym warning message.

Corregir problemas de conversiones

Es posible que Database Migration Service no pueda convertir automáticamente toda tu fuente.

Para la mayoría de los objetos de Oracle, puedes usar el editor de conversiones directamente en Database Migration Service para ajustar el SQL generado. En otros casos, es posible que debas cambiar el objeto directamente en la base de datos de origen y, luego, volver a extraer la instantánea de origen.

Para obtener una lista completa de los objetos que Database Migration Service admite para editar directamente en el lugar de trabajo de conversión, consulta Objetos de Oracle editables.

Para solucionar problemas de conversión que se encuentran con objetos que admiten la edición en vivo, haz lo siguiente:

  1. Revisa los resultados de las conversiones y, luego, identifica los posibles problemas.

    Puedes usar la consola de Google Cloud para revisar objetos individuales o gcloud CLI para revisar todos los objetos de forma masiva.

  2. En la pestaña Borrador de AlloyDB para PostgreSQL, usa el editor de SQL para actualizar el código generado.

  3. Prueba la aplicación para verificar que Database Migration Service pueda aplicar correctamente tu código a la base de datos de destino.

Para solucionar los problemas de conversión que se encuentran con objetos que no son compatibles con el editor de Workspace, realiza una de las siguientes acciones:

Prueba la aplicación en tu destino

Antes de aplicar el esquema a la base de datos de destino, puedes realizar una aplicación de prueba que no afecte a tu instancia de Cloud SQL de destino. Probar la aplicación de esquemas puede ayudarte a detectar posibles problemas de forma proactiva.

  1. En la consola de Google Cloud , ve a Espacios de trabajo de conversión.

    Ir a Lugares de trabajo de conversión

  2. Haz clic en el nombre visible del lugar de trabajo de conversión con el que deseas trabajar.

    Se abrirá el editor del lugar de trabajo de conversión.

  3. Haz clic en Aplicar a destino > Probar (recomendado).

    Aparecerá el asistente para aplicar el esquema a la base de datos de destino.

  4. En la sección Definir destino, selecciona el perfil de conexión que apunta a tu base de datos de destino.

  5. Haz clic en Definir y continuar.

  6. En la sección Selecciona objetos y prueba la aplicación, selecciona los esquemas de las entidades de base de datos que deseas probar para tu base de datos de destino.

    Puedes usar el campo Filtrar para reducir la cantidad de objetos que se muestran. Consulta Cómo filtrar objetos en la vista del esquema de origen.

  7. Haz clic en Probar aplicación.

    Puedes revisar el estado de la aplicación en la pestaña Borrador de AlloyDB para PostgreSQL.

Aplica el esquema al destino

Cuando el esquema que deseas usar en la base de datos de destino se convierte según tus requisitos y asignaciones, puedes aplicar los resultados a la base de datos de destino.

  1. En la consola de Google Cloud , ve a Espacios de trabajo de conversión.

    Ir a Lugares de trabajo de conversión

  2. Haz clic en el nombre visible del lugar de trabajo de conversión con el que deseas trabajar.

    Se abrirá el editor del lugar de trabajo de conversión.

  3. Haz clic en Aplicar a destino > Aplicar.

    Aparecerá el asistente para aplicar el esquema a la base de datos de destino.

  4. En la sección Definir destino, selecciona el perfil de conexión que apunta a tu base de datos de destino.

  5. Haz clic en Definir y continuar.

  6. En la sección Revisar objetos y aplicar conversión al destino, selecciona los esquemas de las entidades de base de datos que deseas crear en tu base de datos de destino.

    Puedes usar el campo Filtrar para reducir la cantidad de objetos que se muestran. Consulta Cómo filtrar objetos en la vista del esquema de origen.

  7. Haz clic en Aplicar al destino.

    Puedes revisar el estado de la aplicación en la pestaña Borrador de AlloyDB para PostgreSQL.

Crea un trabajo de migración desde el editor de conversiones

Puedes crear un trabajo de migración que use tu lugar de trabajo de conversión directamente desde la interfaz del editor de conversiones.

  1. En la consola de Google Cloud , ve a Espacios de trabajo de conversión.

    Ir a Lugares de trabajo de conversión

  2. Haz clic en el nombre visible del lugar de trabajo de conversión con el que deseas trabajar.

    Se abrirá el editor del lugar de trabajo de conversión.

  3. Haz clic en Crear trabajos de migración.

  4. Continúa con los pasos estándar del trabajo de migración, como se describe en Cómo crear un trabajo de migración.

Cómo filtrar objetos en la vista del esquema de origen

Los esquemas de bases de datos suelen contener miles de objetos, lo que dificulta la partición del trabajo de conversión. Cuando agregas objetos de la instantánea del esquema a la vista del esquema de origen, puedes usar filtros para limitar la cantidad de objetos que se muestran. Los filtros te permiten agregar objetos de forma más detallada y enfocarte en convertir un subconjunto seleccionado de tu esquema.

Usa la vista filtrada cuando agregues objetos a la vista del esquema de origen:

  1. En el campo Filtro, usa uno de los siguientes métodos de filtrado:

    • En la lista Propiedades, selecciona una de las siguientes opciones sugeridas automáticamente:

      • Nombre del objeto para filtrar los objetos por un nombre, por ejemplo, ADMIN.
      • Tipo de objeto para filtrar los objetos por varios tipos, como Función o Tabla.
      • Estado de conversión para filtrar los objetos por el estado de conversión, como Acción necesaria o Sin problemas.

      Puedes combinar propiedades de filtro con operadores lógicos.

    • Ingresa tu consulta. Por ejemplo: type=table.

      Para obtener más información sobre la sintaxis de filtros, consulta Sintaxis de filtros compatibles.

  2. Selecciona los objetos que deseas agregar a la vista del esquema de origen.

Sintaxis de filtrado admitida

Puedes filtrar objetos por nombre con la búsqueda básica de texto libre o usar una propiedad type dedicada. Ambos enfoques admiten la especificación formal de la API de Google para filtrar, lo que significa que puedes usar literales con comodines, así como operadores lógicos y de comparación.

Usa texto libre para filtrar los objetos por nombre. Este enfoque distingue mayúsculas de minúsculas y admite comodines.

Ejemplo:

La consulta *JOB* usa comodines para buscar entidades que contengan la substring JOB. La vista filtrada muestra algunas tablas y un procedimiento almacenado:

Captura de pantalla de los resultados de ejemplo para filtrar objetos por nombre.
Cómo filtrar con la propiedad type

Puedes filtrar los objetos por todos los tipos estándar compatibles con Database Migration Service.

La propiedad type admite las siguientes literales con los operadores de igualdad (=) y desigualdad (!=): database, schema, table, column, index, sequence, stored_procedure, function, view, synonym, materialized_view, udt, constraint, database_package, trigger y event_trigger.

Ejemplo:

El filtro type=table solo muestra las tablas presentes en tu esquema:

Captura de pantalla de los resultados de ejemplo para filtrar objetos por propiedad de tipo.
Combina condiciones de filtrado

Puedes especificar varias condiciones combinándolas con operadores lógicos.

Por ejemplo, para buscar exclusivamente tablas cuyos nombres contengan las subcadenas JOB o EMPLOYEE, usa esta consulta:

  type=table AND (*JOB* OR *EMPLOYEE*)

Como resultado, el filtro muestra todas las tablas que coinciden:

Captura de pantalla de resultados de ejemplo para filtrar objetos por una combinación de propiedades de tipo y nombre.

Usa espacios de trabajo de conversión heredados

Los lugares de trabajo de conversión heredados son lugares de trabajo de solo lectura que sirven para vincular los archivos de configuración de Ora2Pg con un perfil de conexión.

Convierte el esquema de origen

En el caso de los lugares de trabajo heredados, puedes convertir el esquema con la herramienta de migración de Ora2Pg directamente en tu base de datos de origen. La conversión de esquemas se administra fuera de Database Migration Service. Consulta Prepárate para la conversión de esquemas.

Database Migration Service ejecuta la conversión del esquema de origen cuando creas el lugar de trabajo de conversión heredado. Si quieres actualizar tus asignaciones, vuelve a crear el espacio de trabajo heredado con el archivo de configuración actualizado.

Aplicar al destino

Después de crear el archivo de configuración de Ora2Pg y el lugar de trabajo, debes aplicar el código generado por tu cuenta directamente en la base de datos de destino. Si necesitas cambiar la conversión, ajusta el archivo de configuración de Ora2Pg y vuelve a crear el lugar de trabajo heredado con la configuración nueva.