Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Cómo importar tablas de MySQL a Oracle de manera automática

Estas en el tema de Cómo importar tablas de MySQL a Oracle de manera automática en el foro de Oracle en Foros del Web. Buenas Tardes a todos los foristas: Tengo tiempo de trabajar con MySQL y en la empresa donde trabajo se tiene en operación un sistema que ...
  #1 (permalink)  
Antiguo 23/05/2012, 13:23
 
Fecha de Ingreso: noviembre-2011
Mensajes: 9
Antigüedad: 12 años, 5 meses
Puntos: 1
Cómo importar tablas de MySQL a Oracle de manera automática

Buenas Tardes a todos los foristas:

Tengo tiempo de trabajar con MySQL y en la empresa donde trabajo se tiene en operación un sistema que trabaja sobre MySQL 5.5. Se está planeando la migración hacia ORACLE, y en estos momentos se requiere copiar las tablas de MySQL hacia ORACLE. Esta actualización la hemos realizado de manera manual, utilizando la SQL Developer, se creó la conexión hacia MySQL y al dar clic derecho sobre cualquier tabla aparece la opción de copiar a ORACLE... El problema que se nos presenta es que ahora me están solicitando que esta copia de información se lleve a cabo de manera programática, cada hora, por lo que tengo que idear una manera automática para hacer esto. He estado leyendo acerca de DBLink, y estoy pensando en la posibilidad de crear un SP que se ejecute cada determinado tiempo (aunque aun no estoy seguro de cómo haría esto último )

Mi pregunta, primero que nada es si es posible realizar lo que quiero con DBLink o existe alguna otra manera de transferir la información de MySQL a Oracle...

He pensado también en la posibilidad de respaldar la información de MySQL en archivos XML y leer desde ORACLE estos archivos para poblar la información, pero no sé cual de las dos opciones pueda ser más eficiente. Si alguno de ustedes pudiera hablarme de sus experiencias en este campo estaré infinitamente agradecido.

Desde ya mi agradecimiento por cualquier ayuda que me puedan proporcionar.

Josué
  #2 (permalink)  
Antiguo 23/05/2012, 16:19
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Cómo importar tablas de MySQL a Oracle de manera automática

Si entendí bien, para lo que necesitas puede servirte montar un servicio heterogeneo.
HS -> Heterogeneous Services.
http://www.blogzote.com/2007/03/13/o...eous-services/

La idea de esto, es conectar logicamente una base de datos en mysql para que sea vista desde la consola de oracle mediante un dblink, posterior a las configuracione sque indica el articulo.

ya con una conexión creada, puedes tener un job que actualice cada cierto tiempo la información de una tabla a otra.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 24/05/2012, 07:52
 
Fecha de Ingreso: noviembre-2011
Mensajes: 9
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Cómo importar tablas de MySQL a Oracle de manera automática

Muchas gracias Huesos52:

Comienzo a leer inmediatamente la información de la liga, pero de primera vista creo que es justo lo que estaba buscando.

Saludos y nuevamente gracias
  #4 (permalink)  
Antiguo 24/05/2012, 17:21
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 meses
Puntos: 85
Respuesta: Cómo importar tablas de MySQL a Oracle de manera automática

La respuesta de huesos52 ya es correcta, solo quería agregar algunos comentarios:

1. Con un dblink y Heterogeneous Services podrás importar los datos desde un procedimiento en PL/SQL, esto facilita la gestión de errores, transacciones y llamada o scheduling del proceso, pero debes tener en cuenta que la conexión hacia MySQL se hace con ODBC y que la importación se hace con sentencias SQL, lo que puede ser muy lento en grandes volúmenes de datos. Esta opción se recomienda para pocos registros o cuando la importación requiere de alguna transformación de datos.

2. Con mysqldump puedes exportar los datos de MySQL a ficheros de texto y con sql*loader importar los datos de ficheros a Oracle, esto dificulta un poco el proceso, pero es mucho más rápido que un dblink. Esta opción se recomienda cuando hay muchos registros y no se requiere transformación de datos.


Saludos
  #5 (permalink)  
Antiguo 25/05/2012, 14:23
 
Fecha de Ingreso: noviembre-2011
Mensajes: 9
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Cómo importar tablas de MySQL a Oracle de manera automática

Mmm... muy buena observación matanga... de hecho una de las tablas es bastante grande... de casi un millón de registros , por lo que comenzaré a investigar inmediatamente acerca de este tema...

Gracias también por el apoyo

Josué
  #6 (permalink)  
Antiguo 25/05/2012, 15:32
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Cómo importar tablas de MySQL a Oracle de manera automática

jos1221

Tienes un millon de registros en total, o es una carga de un millon de registros en cada ejecución del job?

Por que de igual forma, el proceso sería pesado la primera vez, posterior al primer cargue, el numero de registros a trasnferir es el numero de registros generado desde la ultima ejecución del job.

Muy valida la explicación de matanga, pero creo que mysql no soporta backups incrementales, por lo que el backup y cargue sería de toda la información cada vez que se haga este proceso.
Ademas, la automatización de este proceso puede resultar engorrosa.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 28/05/2012, 14:38
 
Fecha de Ingreso: noviembre-2011
Mensajes: 9
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Cómo importar tablas de MySQL a Oracle de manera automática

Hola de nuevo compañer@s:

Cita:
Tienes un millon de registros en total, o es una carga de un millon de registros en cada ejecución del job?
Huesos52: Son 12 tablas las que se van a transferir, donde la de mayor volumen es una tabla de datos que contiene aproximadamente 900 mil registros... aunado a las tablas catálogo daría como resultado que el volumen total de las 12 tablas sea de aproximadamente el millón de registros que les comentaba. desde un principio se había presupuestado que cada vez que se realizara el job se tendría que transferir el total de la información (que según entendí es como se haría con el MySQLdump) pero si se puede realizar de manera escalar, pues sería genial... sólo la primer carga sería pesada y el resto serían solo los nuevos registros los que se tendrían que tranferir... de hecho se está planteando que las actualizaciones no se hagan cada hora, sino cada cambio de turno (es decir cada ocho horas).

De cualquier manera voy a proceder a hacer algunas pruebas con ambos esquemas, creo que los dos tienen pros y contras y los dos son igual de buenos (o malos, según el cristal con que se mire ) a final de cuentas el jefe tiene la última palabra

Saludos nuevamente y muchas gracias por el apoyo

Josué

Etiquetas: manera, mysql, sql, tabla, tablas, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:05.