Acerca de los espacios de trabajo de conversión heredados

Los espacios de trabajo de conversión heredados son un tipo de espacios de trabajo de conversión más antiguo y limitado. Los espacios de trabajo de conversión heredados no admiten las funciones de conversión mejoradas por Gemini ni el editor de SQL interactivo. Solo puedes usarlos para convertir tu esquema de origen con la herramienta de migración Ora2Pg.

No recomendamos usar el tipo heredado de espacios de trabajo de conversiones para tus migraciones, ya que presentan otras limitaciones en el flujo de trabajo de conversiones:

Espacio de trabajo de conversión interactivoEspacio de trabajo de conversión heredado
La conversión de objetos de esquema y código se realiza en Database Migration Service. Realizas las conversiones de esquemas y objetos de código fuera de Database Migration Service con la herramienta de migración Ora2Pg.
Puedes aplicar las fuentes convertidas directamente a la base de datos de destino en Database Migration Service. Eres responsable de aplicar el esquema convertido a la base de datos de destino en tu instancia de destino de Cloud SQL para PostgreSQL.
Puedes probar tu esquema y código de borrador directamente en Database Migration Service para asegurarte de que se puedan aplicar correctamente a tu instancia de destino. No puedes probar tu esquema y código de borrador sin afectar la instancia de destino.
Agrega automáticamente las columnas rowid faltantes para las tablas que no tienen claves primarias ni restricciones únicas. Debes agregar las claves primarias faltantes a las tablas de destino después de aplicar el esquema.
Tabla 1: Comparación de funciones del espacio de trabajo de conversión

Usar espacios de trabajo de conversión heredados

Si tu situación requiere el uso de espacios de trabajo de conversiones heredados, modifica el proceso de migración con las siguientes acciones:

  1. Escribe un archivo de configuración de Ora2Pg.

    Consulta la documentación de Ora2Pg para obtener orientación sobre cómo usar la herramienta de conversión de Ora2Pg. Expande las siguientes secciones para ver la lista completa de directivas compatibles con Database Migration Service.

    Configuración de Ora2Pg admitida en Database Migration Service

    Database Migration Service admite los siguientes elementos de configuración para los archivos de Ora2Pg:

    • BOOLEAN_VALUES
    • DATA_TYPE
    • DEFAULT_NUMERIC
    • ENABLE_MICROSECOND
    • EXPORT_SCHEMA
    • MODIFY_STRUCT
    • MODIFY_TYPE
    • PG_INTEGER_TYPE
    • PG_NUMERIC_TYPE
    • PG_SCHEMA
    • PRESERVE_CASE
    • REPLACE_AS_BOOLEAN
    • REPLACE_COLS
    • REPLACE_TABLES
    • REPLACE_ZERO_DATE
    • SCHEMA

    Database Migration Service usa perfiles de conexión para definir los detalles de conectividad, por lo que no es necesario que definas la siguiente información en tu archivo de configuración de Or2Pg:

    • ORACLE_DSN
    • ORACLE_HOME
    • ORACLE_PWD
    • ORACLE_USER
    • PG_DSN
    • PG_PWD
    • PG_USER

    Además, Database Migration Service no usa la directiva de configuración WHERE para limitar los registros que se migrarán.

  2. Crea un lugar de trabajo de conversión heredado y sube el archivo de Ora2Pg para convertir tu esquema.
  3. Aplica manualmente el esquema convertido a la base de datos de destino.

    Después de crear la configuración de Ora2Pg y el espacio de trabajo, debes aplicar el código generado por tu cuenta directamente en la base de datos de destino.

  4. Migra tablas sin claves primarias.

    Database Migration Service solo migra las tablas que tienen claves primarias. Si tu base de datos de origen incluye tablas que no tienen claves primarias, debes crear manualmente claves primarias o restricciones únicas en las tablas convertidas de la base de datos de destino después de aplicar el esquema convertido. Para obtener más detalles, expande la siguiente sección.

    Agrega restricciones de clave primaria en la base de datos de destino

    Para migrar tablas de Oracle sin claves primarias, haz lo siguiente:

    1. Conéctate a tu instancia de Cloud SQL de destino con un cliente de SQL. Puedes usar los siguientes métodos:
      • psql client. Puedes usar este método para conectarte a la IP privada de tu instancia, pero es posible que debas crear una máquina virtual de Compute Engine.
      • gcloud sql connect Este comando solo funciona para las instancias de Cloud SQL que tienen habilitada una dirección IP pública.
    2. Crea las restricciones de clave primaria faltantes para tus tablas. Para obtener más información sobre las claves primarias, consulta Claves primarias en la documentación de PostgreSQL.

      También puedes expandir las siguientes secciones para ver ejemplos de comandos SQL:

      Cómo crear claves primarias con columnas existentes

      Es posible que tu tabla ya tenga una clave primaria lógica basada en una columna o una combinación de columnas. Por ejemplo, podría haber columnas con una restricción única o un índice configurado. Usa estas columnas para generar una nueva clave primaria para las tablas de tu base de datos de origen. Por ejemplo:

      ALTER TABLE TABLE_NAME
      ADD PRIMARY KEY (COLUMN_NAME);

      Crea una clave primaria con todas las columnas

      Si no tienes una restricción preexistente que pueda servir como clave primaria, crea claves primarias con todas las columnas de la tabla. Asegúrate de no superar la longitud máxima de la clave primaria que permite tu instancia de PostgreSQL. Por ejemplo:

      ALTER TABLE TABLE_NAME
      ADD PRIMARY KEY (COLUMN_NAME_1, COLUMN_NAME_2, COLUMN_NAME_3, ...);

      Cuando creas una clave primaria compuesta como esta, debes enumerar explícitamente todos los nombres de columna que deseas usar. No es posible usar una instrucción para recuperar todos los nombres de las columnas con este fin.

      Crea una restricción única con la seudocolumna ROWID

      Las bases de datos de Oracle utilizan la pseudocolumna ROWID para almacenar la ubicación de cada fila en una tabla. Para migrar tablas de Oracle que no tienen claves primarias, puedes agregar una columna ROWID en la base de datos PostgreSQL de destino. Database Migration Service propaga la columna con los valores numéricos correspondientes de la pseudocolumna ROWID de Oracle de origen.

      Para agregar la columna y establecerla como clave primaria, ejecuta el siguiente comando:

      ALTER TABLE TABLE_NAME ADD COLUMN rowid numeric(33,0) NOT NULL;
      CREATE SEQUENCE TABLE_NAME_rowid_seq INCREMENT BY -1 START WITH -1 OWNED BY TABLE_NAME.rowid;
      ALTER TABLE TABLE_NAME ALTER COLUMN rowid SET DEFAULT nextval('TABLE_NAME_rowid_seq');
      ALTER TABLE TABLE_NAME ADD CONSTRAINT CONSTRAINT_DISPLAY_NAME PRIMARY KEY (rowid);

¿Qué sigue?

Después de realizar el flujo de trabajo de conversión con el espacio de trabajo heredado, puedes continuar con los procedimientos de migración estándar. Consulta Crea un trabajo de migración.