Centralizar toda la información de Sybase en sola maquina

Tengo una base de datos en sybase con un programa en Powerbuilder la cual toco instalarla en ocho maquinas diferentes por que no hay red y se requería hacer un trabajo urgente.
¿Ahora quiero centrar la información en una sola maquina como se podría hacer?

2 respuestas

Respuesta
1
Lo primero que tienes que hacer es crear la estructura de las tablas completamente vacía en la máquina en que se va a centralizar la información. Después debes exportar las tablas desde cada uno de las otras máquinas e importar esos datos en la central.
Al importarlos es importante indicar que se haga un APPEND, es decir, que los pegue debajo de los registros que ya hay.
El problema son la llaves primarias y foráneas de cada una de las tablas, porque puede ser que existan registros duplicados. Si es factible de que hayan, debes hacer un proceso de carga, y hay la cosa se complica.
Respuesta
1
En estos casos se plantean principalmente 2 problemas:
1) Duplicación de claves primarias
2) Duplicación de datos
En casos así lo ideal es prever de antemano que vas a unificar los datos más adelante.
Entonces para el caso:
1) Podes setear rangos de claves para cada estación
2) Podes identificar las posibles zonas de conflicto
Ahora en tu situación:
Tenés que preparar una migración de datos.
a) Identificá las zonas de conflictos para datos duplicados
b) tendrías que para cada base actualizar las claves primarias a valores únicos (en lo que sería la base unificada) y especialmente en los lugares que las PORQUE son claves foráneas
Como tenés varias bases tendrías que hacer alguna rutina. (También podes ver las opciones de la bd como ser: actualizar en cascada)
c) Una vez que hiciste esto para cada base (7) las integras en la octava
d) revisas las zonas de conflicto detectadas en a) para ver datos duplicados y decidir sobre ellos
Nota:
Siempre se migran primero las tablas independientes para que no salten errores de integridad referencial
Saludos
AldoB
No te olvides de cerrar la pregunta
La verdad no te entendí, partamos que no hay información duplicada.
¿Cómo seria físicamente el procedimiento?
Por información duplicada me refiero a que hayan ingresado los mismos datos en 2 de las BD que tenés.
Por ej: si estaban realizando atención al público, tomando datos de las personas y un día Juan Perez fue a la PC1 y otro a la PC2 probablemente tengas 2 registros para juan perez (1 en cada tabla personas de las BD1 y BD2)
Procedimiento:
1. Si podes setear la opción de actualizar en cascada en la BD, tendrías que ir haciendo update de los registros, seteando los valores de las claves a valores únicos (en relación con las otras bases) y una vez que actualizastes todas las bases, vas leyendo de una e insertando en otra.
EJ: BD1 tabla Personas 100 regs. PK -> (1 - 100)
BD2 tabla Personas 90 regs. PK -> (1 - 90)
En la BD2 (con una rutina) vas seteando la PORQUE a PORQUE + 100 >> 1 pasa a 101... 90 pasa a 190
Después con una rutina te conectas a BD1 y BD2. Lees de BD2 e insertas en BD1
Lo de actualización en cascada te sirve en BD2 porque al actualizar la PORQUE de personas probablemente tengas que actualizar tablas relacionadas (x ej: personas/compras donde la PORQUE es id_persona + id_producto, entonces si cambias la PORQUE de personas de 1 a 101 en esta tabla tenés que cambiar también el 1 a 101, entonces SI tenés actualización en cascada el DBMS lo hace solo SI NO tenés lo tenés que hacer vos a mano)
Verificá si podes usar actualización en cascada y preguntame de nuevo que si no se puede te detallo la forma de hacerlo a mano

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas