![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Sugerencias para replicacion en sucursales
Hola a todos
Se q es un tema q se ha hablado aqui varias veces , pero cuando se pasa 16 horas en un computador pensando como hacer ya uno como q no da mas Si pudieran orientarme un poco mas sobre este tema o alguien me puede guiar se lo agradeceria (se q Guillotmarc tiene un buen replicador espero me pueda el y todos ustedes dar la mano es las siguientes dudas ) Necesito saber si me puedes ayudar con el tema de replicacion estoy utilizando fb1.5 y delphi 6 , he visto algunas respuestas tuyas con este tema y tengo algunas Si hubiese un replicador q haga lo q yo necesito estaria dispuesto a comprar las licencias Los detalles q quisiera saber son los siguientes 1.- EL sistema sera instalado en varias sucursales ... estas estaran en linea siempre pero uno nunca sabe q puede salir mal (ahi es donde entra la opcion de saber q se ha enviado y q no) 2.- Una sucursal puede o podria estar sin coneccion maximo unas dos o 3 horas razon suficiente para generar unos 1000 registros (factura , detalle de facturas , forma de pagos , historicos, saldos acumulados , clientes etc) 3.- Los datos o la estructura de la base maestra como debe de ser en fin muchas dudas, si fueras tan amable queria saber tu opinion y disponibilidad para ayudarme en este tema muy importante y guiarme un poco De antemano muchas gracias por tu tiempo
__________________
IVAND |
#2
|
||||
|
||||
Hola, IVAND, si quieres puedes enviarle un mensaje privado a Guillotmarc enlazándole este tema, así estarás seguro de que no se le pasará esta pregunta tuya.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
||||
|
||||
Hola Iván.
Creo que todos los que hemos programados nuestros propios motores de replicación nos hemos basado en este documento, es todo un clásico (y muy bien explicado). Léelo y no vaciles en consultar cualquier duda. http://www.ibphoenix.com/main.nfs?a=...ge=ibp_howto10 El motor de Firebird ha evolucionado bastante en estos años, así que algunas cosas se pueden simplificar. El principal cambio que te recomiendo es utilizar un Rol en lugar del nombre de Usuario, para detectar cuando se está modificando una tabla desde dentro del motor de replicación. Es decir en los Triggers que se hacen para los sistemas bidireccionales, sustituímos la linea : IF (USER <> "REPLICATE") THEN por la línea : IF (CURRENT_ROLE <> "REPLICATE") THEN La ventaja de usar un Rol en lugar de un Usuario, es que deberías asignar derechos sobre todas las tablas para el nuevo usuario REPLICACION, cosa que es laboriosa y es fácil olvidarte en el futuro a medida que añades tablas al sistema. En cambio no es necesario añadir derechos a las tablas en los roles (puesto que el usuario que vienes utilizando ya tiene acceso a esas tablas). Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#4
|
|||
|
|||
Gracias a los dos por sus respuestas , leere el tema y no olvidare preguntarles
Muchas gracias Espero no ser muy molestoso y si consideran q pueden venderme alguna licencia de su replicador no duden en decirlo
__________________
IVAND |
#5
|
|||
|
|||
Ya he echo una prueba y me ha salido super bien ... hay un par de cositas q me gustaria q me orientaran , una vez q seguire probando les molestare gracias nuevamente
Tendre q cambiar un par de cositas en la base de datos como claves unicas
__________________
IVAND |
#6
|
||||
|
||||
Hola Iván, me alegra que vayas avanzando bien.
Respecto a las claves únicas. Tienes varias opciones. 1) Utilizar un UUID como clave primaria en todas las tablas (Es una solución sencilla, en la que no te tienes que preocupar de más problemas. Yo no la utilizo porqué es incómoda a la hora de trabajar con los datos, si quieres lanzar una consulta para ver todas las líneas de una factura, tendrás que escribir una consulta con una clave secundaria de 16 dígitos). http://www.firebirdfaq.org/faq98/ NOTA: Estos UUID se guardan en campos varchar(16) con el charset OCTETS. 2) Seguir utilizando un Entero largo, pero en este caso te tienes que asegurar de que no pueden entrar en conflicto los números asignados en las distintas ubicaciones en Replicación. Para solventar el punto 2) algunos amigos lo han solventado reservando paquetes. Es decir, el primer servidor asignará claves primarias del 1 al 10.000, el segundo servidor del 10.001 al 20.000, etc. ... A mi me parece muy laborioso, y además tienes que tener en cuenta de que un servidor puede agotar todas las claves primarias que tenía asignadas, y se le ha de asignar un nuevo paquete. Personalmente he optado por añadir un sufijo a las claves primarias. Es decir todos los claves primarias creadas por el primer servidor acaban en 01, las creadas por el segundo acaban en 02, etc. ... Para ello tengo una tabla CONFIG, donde se guarda el campo UBICACION (que indica si es el servidor 1, 2, 3, 4, ...). Asi pués, en el momento de asignar una nueva clave primaria, la calculo de la forma habitual, con un generador, pero mediante una consulta de este estilo : select gen_id(GENERADOR_TABLA, 1) * 100 + UBICACION from CONFIG
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Sugerencias para nueva aplicación | diegofhernando | Varios | 3 | 15-04-2009 15:33:49 |
Sugerencias para pasar XML a Tabla | MaMu | Varios | 0 | 01-11-2008 01:41:33 |
sugerencias para generar password | torito | Varios | 7 | 10-06-2008 19:30:52 |
Sugerencias para programa 3D... | Er_Manué | Varios | 2 | 30-10-2006 15:05:22 |
que usar para hacer replicacion | pani_alex | Conexión con bases de datos | 2 | 22-04-2006 14:49:25 |
![]() |
|