registros - Mover datos de SQL Server a Oracle repetidamente
numero de linea sql (6)
¿Cuáles son las formas más razonables de mover los datos de tabla de SQL Server a Oracle (en * nix) regularmente?
Puede tener una interfaz de SQL Server con Oracle directamente a través de SSIS (o DTS para 2k). Proporcionará funcionalidad ETL y se puede programar de forma regular.
Tuve éxito creando un servidor vinculado (desde el Enterprise Manager, creo) a Oracle en el lado de SQL Server. Entonces podría usar procedimientos almacenados normales en ambos lados para lograr un menor movimiento de datos y actualizaciones en ambas direcciones. Este enfoque puede eludir la necesidad de intentar y poner algo juntos fuera de las bases de datos.
Sin embargo, intente utilizar el último cliente de Oracle posible en el lado de SQL Server. Recuerdo algunos defectos en el cliente 10.2.0.2 y conseguir que el cliente 10.2.0.4 requiriera su número "oficial" de registro o compra de Oracle o algo así.
Para grandes movimientos de datos (o tal vez incluso movimientos / actualizaciones que desea realizar de forma diaria o con menos frecuencia), definitivamente use una de las herramientas de ETL. Tuvimos Informatica para nuestros procesos de ETL, pero si SSIS puede obtener lo que necesita, también está bien.
Usar SQL Server Integration Services (SSIS) es probablemente su mejor opción. Si no está familiarizado con SSIS, la mejor manera de probar algo es usar el Asistente de exportación de SQL Server y hacer que cree un paquete de SSIS para usted. Por ejemplo, si va a SQL Server Management Studio y hace clic derecho en su base de datos, seleccione Tareas-> Exportar datos. Desde allí, haga clic en siguiente hasta llegar al paso "Elegir un destino". Seleccione el "Proveedor Microsoft OLE DB para Oracle" y haga clic en Propiedades para definir su conexión a la base de datos. Cuando hace clic en el asistente, en la página Guardar y ejecutar, asegúrese de marcar la casilla de verificación "Guardar paquete SSIS", en la pantalla siguiente especifique dónde guardar el paquete SSIS. Una vez que termine el Asistente de exportación, sus datos habrán sido exportados y tendrá un paquete de SSIS que puede usar tal cual, o ingrese y modifíquelo para hacer cosas más específicas. Una vez que tenga su paquete SSIS, puede programarlo creando un trabajo del Agente SQL Server.
Cree un enlace de base de datos desde Oracle al servidor Sql (conectividad heterogénea). Puede usar este enlace para recuperar los datos del servidor Sql con una simple instrucción de selección. Si desea programar, puede usar una vista materializada o dbms_scheduler.
Una alternativa es poner sus datos en un archivo csv, puede usar una tabla externa o sqlloader para cargar estos datos en la base de datos Oracle.
- Puertas de enlace heterogéneas de Oracle / Database en conjunción con vistas materializadas, PL / SQL o Java
- SSIS o DTS : ambos pueden programarse, pero requieren más que solo acceso de lectura a SQL Server
- Java (probablemente dentro de Oracle pero opcionalmente en el SO) utilizando ODBC o SQLJ para acceder a SQL Server y, posiblemente, Oracle
- SQL Server programado para exportar a CSV, Oracle programado para importar desde CSV
- Cualquiera de las otras herramientas de ETL (por ejemplo, Informatica, Cognos)
- Cualquiera de los innumerables idiomas que pueden acceder a ambas bases de datos (pero requeriría mantener un tercer entorno para ejecutar la aplicación dentro)
Programación:
- Automático / no reuqired con vistas materializadas
- Oracle DBMS_JOB / DBMS_SCHEDULER
- Específico del sistema operativo (cron, tareas programadas de Windows, etc.)
- En el caso de la exportación de SSIS, DTS o CSV, programada dentro de SQL Server
Esto es lo que hago: Conéctese a SQL Server mediante el desarrollador de Oracle SQL utilizando este enlace: https://kentgraziano.com/2013/01/14/tech-tip-connect-to-sql-server-using-oracle-sql- desarrollador/
Después de haber agregado SQL jar, verá la pestaña SQL Server en la ventana de Conexión:
Luego, conéctese a la Instancia de SQL.
A continuación, abra la instancia de SQL y elija la base de datos o la tabla que desea copiar. Haga clic con el botón derecho en cualquier base de datos o tabla, luego haga clic en "copiar a Oracle" allí y elija la [base de datos] de usuario correcta en "Nombre de conexión de destino" donde desea copiar sus tablas.
También puedes cambiar algunas propiedades allí. Haga clic en "Aceptar" y eso es todo.
Avísame en caso de cualquier problema.