10 formas de sincronizar datos de tablas de Oracle

En el proceso de desarrollo de bases de datos, muchos desarrolladores y probadores enfrentan el desafío de sincronizar datos entre una base de datos Oracle local y remota. Los cambios realizados en la base de datos local deben reflejarse en la base de datos remota. También es necesario verificar los resultados de la prueba con una base de datos modelo, encontrar tablas no sincronizadas que aparecieron después de estas pruebas, poder devolver la base de datos de prueba a su estado original durante la prueba intensiva de versiones de bases de datos recientemente desarrolladas. Otro problema puede ser la creación rápida de operaciones CRUD sin esforzarse demasiado en encontrar diferentes objetos y escribir declaraciones DML. Ahora aprendamos cómo puede sincronizar los datos de la base de datos de Oracle.

Soluciones simples:

  • Escribir guiones por lotes a mano
  • Uso de disparadores de base de datos

Utilizando las soluciones proporcionadas por Oracle:

  • Replicación base de Oracle
  • Replicación avanzada de Oracle
  • Corrientes de Oracle
  • Oracle GoldenGate
  • Paquete Oracle DBMS_COMPARISON

Uso de soluciones de replicación de terceros:

  • SharePlex para Oracle de Quest Software
  • Sistema de sincronización de base de datos WisdomForce
  • SymmetricDS de symmetricds.codehaus.org
Índice

    Escribir guiones por lotes a mano

    La forma de crear actualizar guiones y realizarlos manualmente después de cada actualización de la base de datos es, por supuesto, la forma más fácil y no requiere ninguna configuración de entorno. Pero el proceso de detección de cambios realizados en la base de datos es la creación. Operaciones CRUD y el proceso de sincronización siempre toma mucho tiempo, y en el futuro, aún más, si la base creada crecerá.

    Uso de disparadores de base de datos

    Este método de sincronización supone que se crearán vistas estándar adicionales para cada tabla en el sitio remoto, que consultarán la base de datos local y que EN LUGAR DE UN GATILLO se creará sobre estas vistas para manejar las operaciones DML. También puede crear un enlace de base de datos entre sus dos bases de datos. Esta sería la forma más fácil de sincronizar (menos código, menos mantenimiento). No habrá problemas hasta que los datos que ya están disponibles en el lado donde se realizan los cambios se agreguen al lado que acepta los cambios. En este caso, el activador mostrará un mensaje de error y deberá buscar manualmente los registros en conflicto en estas tablas.

    Replicación de Oracle básica y avanzada

    La replicación es el proceso de crear y mantener versiones de réplicas de tablas en un sistema de base de datos distribuido. Oracle Server admite dos formas diferentes de replicación.

    replicación básica implementada usando declaraciones estándar CREATE SNAPSHOT o CREATE MATERIALIZED VIEW. Solo puede replicar datos, la replicación siempre es unilateral y las copias de imágenes son de solo lectura. Oracle 8i implementa snapshots y vistas materializadas en una sola tabla, en versiones anteriores se implementaba como una vista con una tabla SNAP básica de $_%. Comience por crear un registro de instantánea adicional en la base de datos principal. Si no desea realizar una actualización rápida, no necesita crear un registro. También tenga en cuenta que una actualización rápida no es compatible con consultas complejas.

    Replicación avanzada admite varias configuraciones de replicación con instantáneas actualizadas, múltiples principales y actualizaciones en cualquier lugar. Es más difícil de configurar, pero le permite replicar datos y otros objetos de la base de datos, como índices y procedimientos. La replicación avanzada se puede implementar en cualquier aplicación sin necesidad de realizar cambios en la aplicación. La replicación avanzada solo está disponible en Enterprise Server. Para obtener más información sobre este método, consulte la Guía de replicación avanzada de bases de datos de Oracle.

    Desafortunadamente, ninguna de las replicaciones admite la sincronización de tipos de datos LONG y LONG RAW, y no es posible configurar la replicación de Oracle para tablas que no tienen una clave principal.

    Secuencias de Oracle y GoldenGate

    A diferencia de la replicación avanzada, la replicación es Corrientes de Oracle no requiere la creación de estructuras especiales en bases de datos (tablas de diarios, especies materializadas). Oracle Streams se basa en el procesamiento de información de un registro de base de datos. A partir de la versión 9.2 de Oracle, Oracle Corporation hace que Oracle Streams esté disponible solo en los sistemas Oracle Enterprise Edition. Pero en algunas versiones de las bases de datos de Oracle, el soporte para tablas organizadas por índices (IOT) no está disponible, así como el soporte para tablas con índices funcionales y descendentes, columnas LOB. Además, Oracle Streams no tiene un mecanismo de comparación de tablas.

    Oracle Corporation ahora alienta a los clientes a utilizar puerta Dorada en lugar de corrientes con nuevos programas. Las mejores soluciones de GoldenGate en su clase brindan integración de datos en tiempo real y disponibilidad continua de datos, capturando y entregando actualizaciones de información importante a medida que cambian y asegurando la sincronización continua de datos en entornos heterogéneos. Además, Oracle GoldenGate ofrece un módulo de software de alta velocidad Oracle GoldenGate Veridata que está diseñado para comparar datos rápidamente. El módulo encuentra diferencias en los datos en diferentes bases de datos y genera informes sin afectar su disponibilidad. Las desventajas de esta solución son la complejidad de la configuración (tiene su propio comando, código de error que no es SQL o no es similar) y el hecho de que los errores están mal documentados. Pero aún así el precio de esta solución es bastante alto.

    Paquete Oracle DBMS_COMPARISON

    Una nueva característica de Oracle 11g es Paquete DBMS_COMPARISON. Ayuda a descubrir cómo difieren los datos de 2 tablas y a sincronizar los datos si es necesario. Cuando compara un objeto con DBMS_COMPARISON, está comparando el objeto en el esquema local y el esquema remoto. El esquema remoto puede estar en la misma base de datos o en una base de datos distribuida accesible a través de un enlace de base de datos. Pero este método tiene sus limitaciones: uno de los servidores debe ser de la versión 11g y el otro, no inferior a la versión 10.2, las codificaciones del servidor deben ser las mismas y no todos los tipos de datos se pueden comparar y sincronizar.

    Soluciones para la replicación de terceros

    Los componentes de terceros ofrecen sus soluciones para la sincronización de datos, p. SharePlex para Oracle de Quest Software, SabiduríaFuerza Sistema de sincronización de base de datos, SD simétrico de metricds.codehaus.org. No describimos las ventajas y desventajas de estas soluciones en nuestro artículo. Póngase en contacto con estas empresas para obtener más información sobre sus ofertas de productos.

    Conclusión
    Como puede ver, las soluciones mencionadas en este artículo resuelven en cierta medida el problema descrito al principio, pero tienen limitaciones como dificultades de configuración, falta de una interfaz gráfica fácil de usar para el análisis rápido de diferencias, alto costo o soporte no disponible para algunas versiones. de Oráculo.

    Lo que ofrece Devart

    dbForge Data Compare for Oracle es una herramienta de interfaz gráfica de usuario para Windows que puede resolver las tareas descritas anteriormente. Esto le permite comparar y analizar visualmente las diferencias de los datos en las tablas y, si es necesario, sincronizarlos. Es fácil de instalar y no requiere configuración adicional de servidor o entorno, es compatible con todas las versiones de Oracle desde 7.3 y 8i hasta Oracle XE y 11gR2. La herramienta de comparación no requiere costos adicionales para comprar una licencia porque es completamente gratuita para uso comercial y no comercial. Por supuesto, no tiene la intención de reemplazar por completo la replicación, y su tarea principal es encontrar diferencias para un análisis posterior y, si es necesario, sincronizarlas, así como crear un script CRUD para su posterior ejecución manual.

    ¿Qué método de comparación y sincronización (replicación) utiliza para las bases de datos de Oracle?

    Artículos de interés

    Subir