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 interactivo | Espacio 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. |
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:
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_VALUESDATA_TYPEDEFAULT_NUMERICENABLE_MICROSECONDEXPORT_SCHEMAMODIFY_STRUCTMODIFY_TYPEPG_INTEGER_TYPEPG_NUMERIC_TYPEPG_SCHEMAPRESERVE_CASEREPLACE_AS_BOOLEANREPLACE_COLSREPLACE_TABLESREPLACE_ZERO_DATESCHEMA
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_DSNORACLE_HOMEORACLE_PWDORACLE_USERPG_DSNPG_PWDPG_USER
Además, Database Migration Service no usa la directiva de configuración
WHEREpara limitar los registros que se migrarán.- Crea un espacio de trabajo de conversión heredado y sube el archivo de Ora2Pg para convertir tu esquema.
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.
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:
- 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 connectcomando. Este comando funciona solo para instancias de Cloud SQL que tienen habilitada una dirección IP pública.
-
Cliente
- 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
ROWIDLas bases de datos de Oracle usan la
ROWIDseudocolumna para almacenar la ubicación de cada fila en una tabla. Para migrar tablas de Oracle que no tienen claves primarias, puedes agregar unaROWIDcolumna en la base de datos PostgreSQL de destino. Database Migration Service propaga la columna con los valores numéricos correspondientes de la seudocolumnaROWIDde 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);
- Conéctate a tu instancia de Cloud SQL de destino con un cliente de SQL. Puedes usar los siguientes métodos:
¿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.