Replicar los mismos datos

17/07/2007 - 07:19 por Albert | Informe spam
Hola compañeros:

Tengo un problema de replicacion en una aplicacion que estoy haciendo con
sql 2005.

El meollo de la cuestion es que tiene que funcionar en 2 o 3 portatiles
desconectados del servidor, que estan de viaje de una semana a un mes, y
luego se quiere integrar los datos en la oficina.

Eso seria sencillo con replica de mezcla y particionando los datos.

El problema está en que los datos vienen del mismo sitio para todos. Es
decir, se bajan de internet en los portatiles y en el servidor y cuando los
quiero replicar saltan errores de clave primaria duplicada por todos los
lados.

Para colmo, los datos se modifican a mano en cada portatil, y cada uno
ajusta los suyos, por tanto, hay que integrar las modificaciones
individuales de cada uno. Y no se como hacerlo.

He probado con replica de mezcla, pero no he sido capaz de modificar los
trigers de la replica para que hagan lo que necesito.

Alguna solucion para que no me replique las claves primarias o para que me
deje gestionarlas a mi manera???

Gracias por vuestra ayuda.

Preguntas similare

Leer las respuestas

#1 Miguel Egea
17/07/2007 - 08:34 | Informe spam
Hola Albert no entiendo tu problema, si la historia es que tanto tu servidor
como los portátiles descargan la bbdd desde internet, el server de internet
también ha de participar en la replicación de mezcla, para los conflictos
puedes o bien usar alguno de los resolutores de conflictos que ya lleva SQL
(verás que hay bastantes) o bien implementar el tuyo propio. De esta forma
en principio no tendrías porqué modificar los triggers.

Si tu problema es que en el server de internet no puedes montar la
replicación de mezcla, entonces usa tu servidor para que sea el origen de
tus portátiles y ya solo te quedará un problema, que será sincronizar tu
server con el servidor de internet.

Espero que esto te ayude.
Saludos
Miguel Egea

"Albert" wrote in message
news:
Hola compañeros:

Tengo un problema de replicacion en una aplicacion que estoy haciendo con
sql 2005.

El meollo de la cuestion es que tiene que funcionar en 2 o 3 portatiles
desconectados del servidor, que estan de viaje de una semana a un mes, y
luego se quiere integrar los datos en la oficina.

Eso seria sencillo con replica de mezcla y particionando los datos.

El problema está en que los datos vienen del mismo sitio para todos. Es
decir, se bajan de internet en los portatiles y en el servidor y cuando
los quiero replicar saltan errores de clave primaria duplicada por todos
los lados.

Para colmo, los datos se modifican a mano en cada portatil, y cada uno
ajusta los suyos, por tanto, hay que integrar las modificaciones
individuales de cada uno. Y no se como hacerlo.

He probado con replica de mezcla, pero no he sido capaz de modificar los
trigers de la replica para que hagan lo que necesito.

Alguna solucion para que no me replique las claves primarias o para que me
deje gestionarlas a mi manera???

Gracias por vuestra ayuda.



Respuesta Responder a este mensaje
#2 Javier Loria
17/07/2007 - 15:58 | Informe spam
Hola Albert:
Una alternativa es renombrar todas las tablas, y agregar una columna
adicional que contenga el lugar donde se originaron los datos (nombre del
computador), esta columna puede ser parte de la llave primaria, sin nulos y
con un default @@SERVERNAME. Luego para no cambiar la aplicación creas
vistas con el nombre original de cada una de las tablas y que incluyan todas
las columnas excepto la agregada con el nombre del "servidor".
Luego replicas sin mayor problema filtrando por la columna con el nombre
del "servidor".
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

"Albert" wrote in message
news:
Hola compañeros:

Tengo un problema de replicacion en una aplicacion que estoy haciendo con
sql 2005.

El meollo de la cuestion es que tiene que funcionar en 2 o 3 portatiles
desconectados del servidor, que estan de viaje de una semana a un mes, y
luego se quiere integrar los datos en la oficina.

Eso seria sencillo con replica de mezcla y particionando los datos.

El problema está en que los datos vienen del mismo sitio para todos. Es
decir, se bajan de internet en los portatiles y en el servidor y cuando
los quiero replicar saltan errores de clave primaria duplicada por todos
los lados.

Para colmo, los datos se modifican a mano en cada portatil, y cada uno
ajusta los suyos, por tanto, hay que integrar las modificaciones
individuales de cada uno. Y no se como hacerlo.

He probado con replica de mezcla, pero no he sido capaz de modificar los
trigers de la replica para que hagan lo que necesito.

Alguna solucion para que no me replique las claves primarias o para que me
deje gestionarlas a mi manera???

Gracias por vuestra ayuda.



Respuesta Responder a este mensaje
#3 Albert
17/07/2007 - 21:20 | Informe spam
No me estais entendiendo o no me he explicado bien.

No tengo ningún servidor en intermet. Lo que hay en internet es, por
ejemplo, la pagina web del ministerio de economía, desde la que se descargan
unos ficheros de texto con los datos de ipc, importaciones, exportaciones,
por segmentos y algunas otras cosas. Y hay más paginas web desde las que se
descargan ficheros de texto que se importan en los portatiles y en el
servidor de la oficina.

Por eso digo que tengo que replicar los mismos datos con las mismas claves
primarias. Porque tanto en el servidor de la oficina como en los portatiles,
al meter los ficheros de texto se van creando en las tablas registros con
las mismas claves primarias pero con distinto autonumerico (identidad)

Y cuando quiero juntar los datos mediante replica me saltan miles de errores
de conflictos de claves primarias duplicadas, con toda la razon del mundo,
porque realmente esas claves primarias con distinto autonumerico ya estan en
todas las maquinas.

Como demonios replico eso. Que trigers tengo que poner para que cuando
replique pueda interceptar y controlar los errores de clave primaria.

Y si no tengo que poner triger, que gestor de resolucion de conflictos tengo
que usar.

Gracias por vuestro interes.


"Miguel Egea" escribió en el mensaje
news:
Hola Albert no entiendo tu problema, si la historia es que tanto tu
servidor como los portátiles descargan la bbdd desde internet, el server
de internet también ha de participar en la replicación de mezcla, para los
conflictos puedes o bien usar alguno de los resolutores de conflictos que
ya lleva SQL (verás que hay bastantes) o bien implementar el tuyo propio.
De esta forma en principio no tendrías porqué modificar los triggers.

Si tu problema es que en el server de internet no puedes montar la
replicación de mezcla, entonces usa tu servidor para que sea el origen de
tus portátiles y ya solo te quedará un problema, que será sincronizar tu
server con el servidor de internet.

Espero que esto te ayude.
Saludos
Miguel Egea

"Albert" wrote in message
news:
Hola compañeros:

Tengo un problema de replicacion en una aplicacion que estoy haciendo con
sql 2005.

El meollo de la cuestion es que tiene que funcionar en 2 o 3 portatiles
desconectados del servidor, que estan de viaje de una semana a un mes, y
luego se quiere integrar los datos en la oficina.

Eso seria sencillo con replica de mezcla y particionando los datos.

El problema está en que los datos vienen del mismo sitio para todos. Es
decir, se bajan de internet en los portatiles y en el servidor y cuando
los quiero replicar saltan errores de clave primaria duplicada por todos
los lados.

Para colmo, los datos se modifican a mano en cada portatil, y cada uno
ajusta los suyos, por tanto, hay que integrar las modificaciones
individuales de cada uno. Y no se como hacerlo.

He probado con replica de mezcla, pero no he sido capaz de modificar los
trigers de la replica para que hagan lo que necesito.

Alguna solucion para que no me replique las claves primarias o para que
me deje gestionarlas a mi manera???

Gracias por vuestra ayuda.






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida