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 antiguos y limitados. No admiten las funciones de conversión mejoradas con 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 conversión para tus migraciones, ya que presentan muchas otras limitaciones en el flujo de trabajo de conversión:

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 conversiones de objetos de esquema y código fuera Database Migration Service con la herramienta de migración Ora2Pg.
Puedes aplicar fuentes convertidas a la base de datos de destino directamente 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

Usa espacios de trabajo de conversión heredados

Si tu situación requiere el uso de espacios de trabajo de conversión 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. Expanda las siguientes secciones para obtener la lista completa de directivas compatibles con Database Migration Service.

    Configuración de Ora2Pg compatible con Database Migration Service

    Database Migration Service admite los siguientes elementos de configuración para 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 detalles de conectividad, por lo que no necesitas definir 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 espacio 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 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. Expande la siguiente sección para obtener más detalles.

    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:
      • Cliente psql. 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 comando. Este comando funciona solo para 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 comandos SQL de muestra:

      Crea claves primarias con columnas existentes

      Es posible que tu tabla ya tenga una clave primaria lógica basada en a columna o una combinación de columnas. Por ejemplo, puede haber columnas con una restricción o un índice únicos configurados. 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 exceder la longitud máxima de la clave primaria permitida por 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 columna para este propósito.

      Crea una restricción única con la seudocolumna ROWID

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

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

      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.