Acerca de los espacios de trabajo de conversión heredados

Los espacios de trabajo de conversión heredados son un tipo de espacio 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 de Gemini ni el editor de SQL interactivo. Solo puedes usarlos para convertir tu esquema fuente con la herramienta de migración de Ora2Pg.

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

Lugar de trabajo de conversión interactivoEspacio de trabajo de conversión heredado
La conversión de objetos de esquemas y código se realiza en Database Migration Service. Para realizar conversiones de esquemas y objetos de código fuera de Database Migration Service, usa la herramienta de migración de 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 clúster de destino de AlloyDB para PostgreSQL.
Puedes probar el esquema y el código de borrador directamente en Database Migration Service para asegurarte de que se puedan aplicar correctamente a tu clúster de destino. No puedes probar el esquema y el código del borrador sin afectar el clúster 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 conversiones

Usa espacios de trabajo de conversión heredados

Si tu caso requiere el uso de espacios de trabajo de conversiones heredados, modifícalo 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 obtener la lista completa de directivas compatibles con Database Migration Service.

    Configuración de Ora2Pg compatible con Database Migration Service

    Database Migration Service admite la siguiente configuración para los archivos 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 lugar de trabajo de conversión heredado y convierte el 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 lugar 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 claves primarias o restricciones de unicidad de forma manual 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 claves primarias o restricciones únicas en la base de datos de destino.

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

    1. Conéctate a tu clúster de AlloyDB para PostgreSQL con el cliente psql.
    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:

      Crea 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 o un índice únicos configurados. Usa estas columnas para generar una clave primaria nueva 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 que permite tu clúster 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 de forma explícita todos los nombres de columna que deseas usar. No es posible usar una sentencia para recuperar todos los nombres de las columnas con este fin.

      Crea una restricción de unicidad con la pseudocolumna ROWID

      Las bases de datos de Oracle usan 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 de 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 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.