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. En el panel Borrador de Cloud SQL para PostgreSQL, se muestra el esquema y el código de PostgreSQL resultante 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.
En la consola de Google Cloud , ve a Espacios de trabajo de conversión.
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.
Opcional: Sube un archivo de configuración de Ora2Pg para proporcionar asignaciones adicionales para el SQL generado:
Haz clic en Editar configuración > Personalizar asignación con un archivo de configuración.
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.
Haz clic en Agregar archivo > Generar.
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:
En el panel Oracle, selecciona el objeto para el que deseas ajustar la SQL generada.
Navega a la pestaña SQL y, luego, inspecciona las instrucciones.
Ajusta las secuencias de comandos según sea necesario para tu situación y haz clic en Guardar.
Una vez que termines todos los ajustes, haz clic en Convertir fuente.
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.
En la consola de Google Cloud , ve a Espacios de trabajo de conversión.
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.
En la pestaña Oracle, junto al objeto que quieres quitar, selecciona > Quitar.
MásEn el diálogo de confirmación Quitar objeto, haz clic en Quitar.
Vuelve a convertir la fuente para que se reflejen las actualizaciones en la pestaña Borrador de Cloud SQL 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.
En la consola de Google Cloud , ve a Espacios de trabajo de conversión.
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.
En la pestaña Oracle, haz clic en
Agregar objetos.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.
Haz clic en Agregar objetos.
Vuelve a convertir la fuente para que se reflejen las actualizaciones en la pestaña Borrador de Cloud SQL 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.
En la consola de Google Cloud , ve a Espacios de trabajo de conversión.
Haz clic en Editar configuración > Volver a obtener la instantánea del esquema de origen.
En el cuadro de diálogo, haz lo siguiente:
- (Opcional) Selecciona Restablecer asignación personalizada para quitar las asignaciones personalizadas existentes y las modificaciones de DDL.
- 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
En la consola de Google Cloud , ve a Espacios de trabajo de conversión.
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.
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.
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:
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.
En la pestaña Cloud SQL para PostgreSQL draft, usa el editor de SQL para actualizar el código generado.
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:
Actualiza tu fuente:
- Actualiza el esquema y el código directamente en tu base de datos de origen.
- Extrae las fuentes actualizadas a Database Migration Service.
- Vuelve a convertir las fuentes y comprueba si los problemas persisten.
Proporciona asignaciones adicionales con la herramienta de configuración de Ora2Pg:
- Configura tu Ora2Pg y crea un archivo de asignación para el objeto defectuoso.
- Agrega el archivo de configuración al espacio de trabajo. Consulta Cómo modificar los lugares de trabajo de conversión.
Intenta quitar el objeto de la pestaña de fuentes y volver a convertir el esquema.
Modifica el código directamente en la instancia de destino. Asegúrate de no actualizar objetos que puedan afectar tus asignaciones.
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.
En la consola de Google Cloud , ve a Espacios de trabajo de conversión.
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.
Haz clic en Aplicar a destino > Probar (recomendado).
Aparecerá el asistente para aplicar el esquema a la base de datos de destino.
En la sección Definir destino, selecciona el perfil de conexión que apunta a tu base de datos de destino.
Haz clic en Definir y continuar.
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.
Haz clic en Probar aplicación.
Puedes revisar el estado de la aplicación en la pestaña Borrador de Cloud SQL 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.
En la consola de Google Cloud , ve a Espacios de trabajo de conversión.
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.
Haz clic en Aplicar a destino > Aplicar.
Aparecerá el asistente para aplicar el esquema a la base de datos de destino.
En la sección Definir destino, selecciona el perfil de conexión que apunta a tu base de datos de destino.
Haz clic en Definir y continuar.
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.
Haz clic en Aplicar al destino.
Puedes revisar el estado de la aplicación en la pestaña Borrador de Cloud SQL 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.
En la consola de Google Cloud , ve a Espacios de trabajo de conversión.
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.
Haz clic en Crear trabajos de migración.
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:
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.
- Nombre del objeto para filtrar los objetos por un nombre, por ejemplo,
Ingresa tu consulta. Por ejemplo:
type=table
.Para obtener más información sobre la sintaxis de filtros, consulta Sintaxis de filtros compatibles.
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.
- Filtrado de texto libre
-
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 substringJOB
. La vista filtrada muestra algunas tablas y un procedimiento almacenado: - 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
yevent_trigger
.Ejemplo:
El filtro
type=table
solo muestra las tablas presentes en tu esquema:
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:
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.