Newsgrupos.com  

Retroceder   Newsgrupos.com > Forum > Newsgroup microsoft.public.es.* 1 Foro > Newsgroup microsoft.public.es.sqlserver
Registrarse Preguntas Frecuentes Lista de Foreros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




Respuesta
 
LinkBack Herramientas Desplegado
  #1 (permalink)  
Antiguo 07-12-2007, 16:02:43
Alr'
 
Mensajes: n/a
Predeterminado Como pasar datos de un servidor remoto a otro

Tengo dos servidores Dell (uno con Win2k Server, y otro con Win 2003 R2
server, ambos con sus service pack respectivo), los dos tienen instalado
Sql2000 Standard Edition
Service Pack 4, los dos servidores estan en diferentes cuidades, en uno de
ellos se corre un sistema de pedidos. El caso es que me piden que la
informacion de este servidor
se pase al de la otra cuidad (Win 2003 R2 server, donde se encuentra la
administracion), ya que quieren ver los datos lo mas en linea que se pueda,
sin embargo me comentan
tambien que han tenido no muy buenas experiencias con el replicador de Sql,
por lo que me pidieron que usara otra cosa (aparte que nunca he implementado
un replicador), he
pensado en servidores vinculados (ya que en la cuidad donde llegaran los
datos, existe algo que hace las veces de una ip publica), de forma que si
tengo coneccion de un lado
hacia el otro (pero no hacia ambos lados).
Mi pregunta es, hay alguna forma de implementar esta situacion de forma mas
o menos simple ?
Ya que lo que se me ocurre son procedimientos almacenados que hagan las
veces de triggers (es decir que estos SP pasen los datos de un servidor al
otro), y que se ejecuten cada
digamos media hora o 1 hora, pero esto significaria tener que hacer a mano
todos los "INSERT, UPDATE y DELETE" de cada una de las tablas con sus
respectivos campos, Ejemplo:

-- Aqui van los DECLARE para cada campo
DECLARE ***Status char(1) -- <-- Ejemplo
DECLARE ***Campo1 int -- etc, etc.

/* Agrega/Cambia/Borra registros en el servidor remoto segun el campo Status
del servidor Local */
DECLARE FLE_ABC CURSOR FOR SELECT [Campos] FROM [Tabla] WHERE ISNULL(STATUS,
'A') <> 'P' -- 'P' de Procesado
OPEN FLE_ABC
FETCH NEXT FROM FLE_ABC INTO [***Variables]
WHILE ******FETCH_STATUS = 0
BEGIN
--SET XACT_ABORT ON
--BEGIN TRANSACTION ABC_Datos
IF (***Status = 'A') OR (***Status = 'B') OR (***Status = 'C') --
'A'=Alta, 'B'=Baja, 'C'=Cambio, solo los registros que no esten procesados
(Status<>'P').
BEGIN
IF (***Status = 'A') OR (***Status = 'C')
BEGIN
IF EXISTS(SELECT * FROM
[ServidorRemoto].[DbRemota].dbo.[TablaRemota] WHERE [Campo] =
[***Variable]) -- Si ya existe el registro en el servidor remoto, solo lo
actualiza
BEGIN
UPDATE [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
SET [Campo1]=[***Variable1], [Campo2]=[***Variable2]
WHERE [Campo] = [***Variable] -- Y asi con todos lo campos de la tabla
END
ELSE -- Si no existe el registro en el
servidor remoto, lo agrega
BEGIN
INSERT INTO
[ServidorRemoto].[DbRemota].dbo.[TablaRemota] ([Campo1], [Campo2])
VALUES([***Variable1], [***Variable2])
END
END
ELSE
BEGIN
DELETE FROM [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
WHERE [Campo] = [***Variable]
END
END
--COMMIT TRANSACTION ABC_Datos
FETCH NEXT FROM FLE_ABC INTO [***Variables]
END
CLOSE FLE_ABC
DEALLOCATE FLE_ABC

Despues de esto se ejecutaria otro procedimiento almacenado (u otro proceso
dentro de este mismo SP) que ponga el campo Status = 'P', segun localize o
no los registros en la
Db del servidor remoto.


Esto como dije significa que debo hacer algo asi, para cada tabla (son como
50), aparte de agregar un campo de status a cada tabla.

No existe algo en Sql, para dar de alta/modificar el registro completo sin
tener que entrar en detalle de especificar cada campo (como es el caso del
insert, o update) ?

Alguien tiene una idea sin tener que usar replicacion (ya que esa fue la
sugerencia que me hicieron[no usar replicacion]) ?
Si quieren mas informacion con gusto la proporciono.
Espero haber explicado bien la problematica.

Cualquier idea es bienvenida.

Gracias de antemano.

Saludos.


Responder Con Cita
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Newsgrupos.com
Standard Sponsored Links

  #2 (permalink)  
Antiguo 07-12-2007, 18:35:00
Juan Carlos Inestroza Lozano
 
Mensajes: n/a
Predeterminado RE: Como pasar datos de un servidor remoto a otro

Hola

Te recomendaria usar DTS y asi verifiques los medios de tranferencia de
estos servidores y uses SQL TASk para poder empotrar las clausulas que no
permitan datos repetidas y mantegas la integridad de la BD, el escenario de
agentes de replicacion es el mas recomendado con el modelo publicados y
suscriptor!!


pero debes d etener uan buena arquitectura de comunicaciones!!!

Saludos Cordiales.


Juan Carlos Inestroza Lozano.

"Alr'" wrote:

> Tengo dos servidores Dell (uno con Win2k Server, y otro con Win 2003 R2
> server, ambos con sus service pack respectivo), los dos tienen instalado
> Sql2000 Standard Edition
> Service Pack 4, los dos servidores estan en diferentes cuidades, en uno de
> ellos se corre un sistema de pedidos. El caso es que me piden que la
> informacion de este servidor
> se pase al de la otra cuidad (Win 2003 R2 server, donde se encuentra la
> administracion), ya que quieren ver los datos lo mas en linea que se pueda,
> sin embargo me comentan
> tambien que han tenido no muy buenas experiencias con el replicador de Sql,
> por lo que me pidieron que usara otra cosa (aparte que nunca he implementado
> un replicador), he
> pensado en servidores vinculados (ya que en la cuidad donde llegaran los
> datos, existe algo que hace las veces de una ip publica), de forma que si
> tengo coneccion de un lado
> hacia el otro (pero no hacia ambos lados).
> Mi pregunta es, hay alguna forma de implementar esta situacion de forma mas
> o menos simple ?
> Ya que lo que se me ocurre son procedimientos almacenados que hagan las
> veces de triggers (es decir que estos SP pasen los datos de un servidor al
> otro), y que se ejecuten cada
> digamos media hora o 1 hora, pero esto significaria tener que hacer a mano
> todos los "INSERT, UPDATE y DELETE" de cada una de las tablas con sus
> respectivos campos, Ejemplo:
>
> -- Aqui van los DECLARE para cada campo
> DECLARE ***Status char(1) -- <-- Ejemplo
> DECLARE ***Campo1 int -- etc, etc.
>
> /* Agrega/Cambia/Borra registros en el servidor remoto segun el campo Status
> del servidor Local */
> DECLARE FLE_ABC CURSOR FOR SELECT [Campos] FROM [Tabla] WHERE ISNULL(STATUS,
> 'A') <> 'P' -- 'P' de Procesado
> OPEN FLE_ABC
> FETCH NEXT FROM FLE_ABC INTO [***Variables]
> WHILE ******FETCH_STATUS = 0
> BEGIN
> --SET XACT_ABORT ON
> --BEGIN TRANSACTION ABC_Datos
> IF (***Status = 'A') OR (***Status = 'B') OR (***Status = 'C') --
> 'A'=Alta, 'B'=Baja, 'C'=Cambio, solo los registros que no esten procesados
> (Status<>'P').
> BEGIN
> IF (***Status = 'A') OR (***Status = 'C')
> BEGIN
> IF EXISTS(SELECT * FROM
> [ServidorRemoto].[DbRemota].dbo.[TablaRemota] WHERE [Campo] =
> [***Variable]) -- Si ya existe el registro en el servidor remoto, solo lo
> actualiza
> BEGIN
> UPDATE [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
> SET [Campo1]=[***Variable1], [Campo2]=[***Variable2]
> WHERE [Campo] = [***Variable] -- Y asi con todos lo campos de la tabla
> END
> ELSE -- Si no existe el registro en el
> servidor remoto, lo agrega
> BEGIN
> INSERT INTO
> [ServidorRemoto].[DbRemota].dbo.[TablaRemota] ([Campo1], [Campo2])
> VALUES([***Variable1], [***Variable2])
> END
> END
> ELSE
> BEGIN
> DELETE FROM [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
> WHERE [Campo] = [***Variable]
> END
> END
> --COMMIT TRANSACTION ABC_Datos
> FETCH NEXT FROM FLE_ABC INTO [***Variables]
> END
> CLOSE FLE_ABC
> DEALLOCATE FLE_ABC
>
> Despues de esto se ejecutaria otro procedimiento almacenado (u otro proceso
> dentro de este mismo SP) que ponga el campo Status = 'P', segun localize o
> no los registros en la
> Db del servidor remoto.
>
>
> Esto como dije significa que debo hacer algo asi, para cada tabla (son como
> 50), aparte de agregar un campo de status a cada tabla.
>
> No existe algo en Sql, para dar de alta/modificar el registro completo sin
> tener que entrar en detalle de especificar cada campo (como es el caso del
> insert, o update) ?
>
> Alguien tiene una idea sin tener que usar replicacion (ya que esa fue la
> sugerencia que me hicieron[no usar replicacion]) ?
> Si quieren mas informacion con gusto la proporciono.
> Espero haber explicado bien la problematica.
>
> Cualquier idea es bienvenida.
>
> Gracias de antemano.
>
> Saludos.
>
>
>

Responder Con Cita
  #3 (permalink)  
Antiguo 07-12-2007, 22:43:29
Alr'
 
Mensajes: n/a
Predeterminado Re: Como pasar datos de un servidor remoto a otro

Muchas gracias por la respuesta.
Tendras alguna pagina o sitio donde pueda ver algun ejemplo o simplemente me
doy un clavado a los
libros en linea de Sql 2000 ?

Saludos.

"Juan Carlos Inestroza Lozano"
<JuanCarlosInestrozaLozano***discussions.microsoft.c om> wrote in message
news:0289B3CF-BA7F-4993-8791-B39FEF06D59C***microsoft.com...
> Hola
>
> Te recomendaria usar DTS y asi verifiques los medios de tranferencia de
> estos servidores y uses SQL TASk para poder empotrar las clausulas que no
> permitan datos repetidas y mantegas la integridad de la BD, el escenario
> de
> agentes de replicacion es el mas recomendado con el modelo publicados y
> suscriptor!!
>
>
> pero debes d etener uan buena arquitectura de comunicaciones!!!
>
> Saludos Cordiales.
>
>
> Juan Carlos Inestroza Lozano.
>
> "Alr'" wrote:
>
>> Tengo dos servidores Dell (uno con Win2k Server, y otro con Win 2003 R2
>> server, ambos con sus service pack respectivo), los dos tienen instalado
>> Sql2000 Standard Edition
>> Service Pack 4, los dos servidores estan en diferentes cuidades, en uno
>> de
>> ellos se corre un sistema de pedidos. El caso es que me piden que la
>> informacion de este servidor
>> se pase al de la otra cuidad (Win 2003 R2 server, donde se encuentra la
>> administracion), ya que quieren ver los datos lo mas en linea que se
>> pueda,
>> sin embargo me comentan
>> tambien que han tenido no muy buenas experiencias con el replicador de
>> Sql,
>> por lo que me pidieron que usara otra cosa (aparte que nunca he
>> implementado
>> un replicador), he
>> pensado en servidores vinculados (ya que en la cuidad donde llegaran los
>> datos, existe algo que hace las veces de una ip publica), de forma que si
>> tengo coneccion de un lado
>> hacia el otro (pero no hacia ambos lados).
>> Mi pregunta es, hay alguna forma de implementar esta situacion de forma
>> mas
>> o menos simple ?
>> Ya que lo que se me ocurre son procedimientos almacenados que hagan las
>> veces de triggers (es decir que estos SP pasen los datos de un servidor
>> al
>> otro), y que se ejecuten cada
>> digamos media hora o 1 hora, pero esto significaria tener que hacer a
>> mano
>> todos los "INSERT, UPDATE y DELETE" de cada una de las tablas con sus
>> respectivos campos, Ejemplo:
>>
>> -- Aqui van los DECLARE para cada campo
>> DECLARE ***Status char(1) -- <-- Ejemplo
>> DECLARE ***Campo1 int -- etc, etc.
>>
>> /* Agrega/Cambia/Borra registros en el servidor remoto segun el campo
>> Status
>> del servidor Local */
>> DECLARE FLE_ABC CURSOR FOR SELECT [Campos] FROM [Tabla] WHERE
>> ISNULL(STATUS,
>> 'A') <> 'P' -- 'P' de Procesado
>> OPEN FLE_ABC
>> FETCH NEXT FROM FLE_ABC INTO [***Variables]
>> WHILE ******FETCH_STATUS = 0
>> BEGIN
>> --SET XACT_ABORT ON
>> --BEGIN TRANSACTION ABC_Datos
>> IF (***Status = 'A') OR (***Status = 'B') OR (***Status = 'C') --
>> 'A'=Alta, 'B'=Baja, 'C'=Cambio, solo los registros que no esten
>> procesados
>> (Status<>'P').
>> BEGIN
>> IF (***Status = 'A') OR (***Status = 'C')
>> BEGIN
>> IF EXISTS(SELECT * FROM
>> [ServidorRemoto].[DbRemota].dbo.[TablaRemota] WHERE [Campo] =
>> [***Variable]) -- Si ya existe el registro en el servidor remoto, solo lo
>> actualiza
>> BEGIN
>> UPDATE
>> [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
>> SET [Campo1]=[***Variable1], [Campo2]=[***Variable2]
>> WHERE [Campo] = [***Variable] -- Y asi con todos lo campos de la
>> tabla
>> END
>> ELSE -- Si no existe el registro en el
>> servidor remoto, lo agrega
>> BEGIN
>> INSERT INTO
>> [ServidorRemoto].[DbRemota].dbo.[TablaRemota] ([Campo1], [Campo2])
>> VALUES([***Variable1], [***Variable2])
>> END
>> END
>> ELSE
>> BEGIN
>> DELETE FROM
>> [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
>> WHERE [Campo] = [***Variable]
>> END
>> END
>> --COMMIT TRANSACTION ABC_Datos
>> FETCH NEXT FROM FLE_ABC INTO [***Variables]
>> END
>> CLOSE FLE_ABC
>> DEALLOCATE FLE_ABC
>>
>> Despues de esto se ejecutaria otro procedimiento almacenado (u otro
>> proceso
>> dentro de este mismo SP) que ponga el campo Status = 'P', segun localize
>> o
>> no los registros en la
>> Db del servidor remoto.
>>
>>
>> Esto como dije significa que debo hacer algo asi, para cada tabla (son
>> como
>> 50), aparte de agregar un campo de status a cada tabla.
>>
>> No existe algo en Sql, para dar de alta/modificar el registro completo
>> sin
>> tener que entrar en detalle de especificar cada campo (como es el caso
>> del
>> insert, o update) ?
>>
>> Alguien tiene una idea sin tener que usar replicacion (ya que esa fue la
>> sugerencia que me hicieron[no usar replicacion]) ?
>> Si quieren mas informacion con gusto la proporciono.
>> Espero haber explicado bien la problematica.
>>
>> Cualquier idea es bienvenida.
>>
>> Gracias de antemano.
>>
>> Saludos.
>>
>>
>>



Responder Con Cita
  #4 (permalink)  
Antiguo 08-12-2007, 05:55:00
Juan Carlos Inestroza Lozano
 
Mensajes: n/a
Predeterminado Re: Como pasar datos de un servidor remoto a otro

Bueno aca te envio unas paginas para ver tema por tema:

Implementacion de Replicacion:
http://www.monografias.com/trabajos1...on-datos.shtml
http://www.microsoft.com/spain/sql/2.../replicat.aspx

En cuanto a DTS de SQL Server 2000 te envio estos links de nivel basico a
intermedio:

http://www.manualespracticos.blogspot.com/
http://support.microsoft.com/default.aspx/kb/242391/es

Existe un libro que se llama SQL Server 2000 DTS step by step, o puedes
tomar un cursos certificado de SQL Server 2000 como el MOC 2092.

Saludos Cordiales.


Juan Carlos Inestroza Lozano.









"Alr'" wrote:

> Muchas gracias por la respuesta.
> Tendras alguna pagina o sitio donde pueda ver algun ejemplo o simplemente me
> doy un clavado a los
> libros en linea de Sql 2000 ?
>
> Saludos.
>
> "Juan Carlos Inestroza Lozano"
> <JuanCarlosInestrozaLozano***discussions.microsoft.c om> wrote in message
> news:0289B3CF-BA7F-4993-8791-B39FEF06D59C***microsoft.com...
> > Hola
> >
> > Te recomendaria usar DTS y asi verifiques los medios de tranferencia de
> > estos servidores y uses SQL TASk para poder empotrar las clausulas que no
> > permitan datos repetidas y mantegas la integridad de la BD, el escenario
> > de
> > agentes de replicacion es el mas recomendado con el modelo publicados y
> > suscriptor!!
> >
> >
> > pero debes d etener uan buena arquitectura de comunicaciones!!!
> >
> > Saludos Cordiales.
> >
> >
> > Juan Carlos Inestroza Lozano.
> >
> > "Alr'" wrote:
> >
> >> Tengo dos servidores Dell (uno con Win2k Server, y otro con Win 2003 R2
> >> server, ambos con sus service pack respectivo), los dos tienen instalado
> >> Sql2000 Standard Edition
> >> Service Pack 4, los dos servidores estan en diferentes cuidades, en uno
> >> de
> >> ellos se corre un sistema de pedidos. El caso es que me piden que la
> >> informacion de este servidor
> >> se pase al de la otra cuidad (Win 2003 R2 server, donde se encuentra la
> >> administracion), ya que quieren ver los datos lo mas en linea que se
> >> pueda,
> >> sin embargo me comentan
> >> tambien que han tenido no muy buenas experiencias con el replicador de
> >> Sql,
> >> por lo que me pidieron que usara otra cosa (aparte que nunca he
> >> implementado
> >> un replicador), he
> >> pensado en servidores vinculados (ya que en la cuidad donde llegaran los
> >> datos, existe algo que hace las veces de una ip publica), de forma que si
> >> tengo coneccion de un lado
> >> hacia el otro (pero no hacia ambos lados).
> >> Mi pregunta es, hay alguna forma de implementar esta situacion de forma
> >> mas
> >> o menos simple ?
> >> Ya que lo que se me ocurre son procedimientos almacenados que hagan las
> >> veces de triggers (es decir que estos SP pasen los datos de un servidor
> >> al
> >> otro), y que se ejecuten cada
> >> digamos media hora o 1 hora, pero esto significaria tener que hacer a
> >> mano
> >> todos los "INSERT, UPDATE y DELETE" de cada una de las tablas con sus
> >> respectivos campos, Ejemplo:
> >>
> >> -- Aqui van los DECLARE para cada campo
> >> DECLARE ***Status char(1) -- <-- Ejemplo
> >> DECLARE ***Campo1 int -- etc, etc.
> >>
> >> /* Agrega/Cambia/Borra registros en el servidor remoto segun el campo
> >> Status
> >> del servidor Local */
> >> DECLARE FLE_ABC CURSOR FOR SELECT [Campos] FROM [Tabla] WHERE
> >> ISNULL(STATUS,
> >> 'A') <> 'P' -- 'P' de Procesado
> >> OPEN FLE_ABC
> >> FETCH NEXT FROM FLE_ABC INTO [***Variables]
> >> WHILE ******FETCH_STATUS = 0
> >> BEGIN
> >> --SET XACT_ABORT ON
> >> --BEGIN TRANSACTION ABC_Datos
> >> IF (***Status = 'A') OR (***Status = 'B') OR (***Status = 'C') --
> >> 'A'=Alta, 'B'=Baja, 'C'=Cambio, solo los registros que no esten
> >> procesados
> >> (Status<>'P').
> >> BEGIN
> >> IF (***Status = 'A') OR (***Status = 'C')
> >> BEGIN
> >> IF EXISTS(SELECT * FROM
> >> [ServidorRemoto].[DbRemota].dbo.[TablaRemota] WHERE [Campo] =
> >> [***Variable]) -- Si ya existe el registro en el servidor remoto, solo lo
> >> actualiza
> >> BEGIN
> >> UPDATE
> >> [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
> >> SET [Campo1]=[***Variable1], [Campo2]=[***Variable2]
> >> WHERE [Campo] = [***Variable] -- Y asi con todos lo campos de la
> >> tabla
> >> END
> >> ELSE -- Si no existe el registro en el
> >> servidor remoto, lo agrega
> >> BEGIN
> >> INSERT INTO
> >> [ServidorRemoto].[DbRemota].dbo.[TablaRemota] ([Campo1], [Campo2])
> >> VALUES([***Variable1], [***Variable2])
> >> END
> >> END
> >> ELSE
> >> BEGIN
> >> DELETE FROM
> >> [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
> >> WHERE [Campo] = [***Variable]
> >> END
> >> END
> >> --COMMIT TRANSACTION ABC_Datos
> >> FETCH NEXT FROM FLE_ABC INTO [***Variables]
> >> END
> >> CLOSE FLE_ABC
> >> DEALLOCATE FLE_ABC
> >>
> >> Despues de esto se ejecutaria otro procedimiento almacenado (u otro
> >> proceso
> >> dentro de este mismo SP) que ponga el campo Status = 'P', segun localize
> >> o
> >> no los registros en la
> >> Db del servidor remoto.
> >>
> >>
> >> Esto como dije significa que debo hacer algo asi, para cada tabla (son
> >> como
> >> 50), aparte de agregar un campo de status a cada tabla.
> >>
> >> No existe algo en Sql, para dar de alta/modificar el registro completo
> >> sin
> >> tener que entrar en detalle de especificar cada campo (como es el caso
> >> del
> >> insert, o update) ?
> >>
> >> Alguien tiene una idea sin tener que usar replicacion (ya que esa fue la
> >> sugerencia que me hicieron[no usar replicacion]) ?
> >> Si quieren mas informacion con gusto la proporciono.
> >> Espero haber explicado bien la problematica.
> >>
> >> Cualquier idea es bienvenida.
> >>
> >> Gracias de antemano.
> >>
> >> Saludos.
> >>
> >>
> >>

>
>
>

Responder Con Cita
  #5 (permalink)  
Antiguo 10-12-2007, 23:32:58
Alr'
 
Mensajes: n/a
Predeterminado Re: Como pasar datos de un servidor remoto a otro

Muchas Gracias otra vez por responder, les echare un vistazo.

Saludos.


"Juan Carlos Inestroza Lozano"
<JuanCarlosInestrozaLozano***discussions.microsoft.c om> wrote in message
news:620CA43D-9B36-49BF-A04D-BB257F46C5F2***microsoft.com...
> Bueno aca te envio unas paginas para ver tema por tema:
>
> Implementacion de Replicacion:
> http://www.monografias.com/trabajos1...on-datos.shtml
> http://www.microsoft.com/spain/sql/2.../replicat.aspx
>
> En cuanto a DTS de SQL Server 2000 te envio estos links de nivel basico a
> intermedio:
>
> http://www.manualespracticos.blogspot.com/
> http://support.microsoft.com/default.aspx/kb/242391/es
>
> Existe un libro que se llama SQL Server 2000 DTS step by step, o puedes
> tomar un cursos certificado de SQL Server 2000 como el MOC 2092.
>
> Saludos Cordiales.
>
>
> Juan Carlos Inestroza Lozano.
>
>
>
>
>
>
>
>
>
> "Alr'" wrote:
>
>> Muchas gracias por la respuesta.
>> Tendras alguna pagina o sitio donde pueda ver algun ejemplo o simplemente
>> me
>> doy un clavado a los
>> libros en linea de Sql 2000 ?
>>
>> Saludos.
>>
>> "Juan Carlos Inestroza Lozano"
>> <JuanCarlosInestrozaLozano***discussions.microsoft.c om> wrote in message
>> news:0289B3CF-BA7F-4993-8791-B39FEF06D59C***microsoft.com...
>> > Hola
>> >
>> > Te recomendaria usar DTS y asi verifiques los medios de tranferencia de
>> > estos servidores y uses SQL TASk para poder empotrar las clausulas que
>> > no
>> > permitan datos repetidas y mantegas la integridad de la BD, el
>> > escenario
>> > de
>> > agentes de replicacion es el mas recomendado con el modelo publicados y
>> > suscriptor!!
>> >
>> >
>> > pero debes d etener uan buena arquitectura de comunicaciones!!!
>> >
>> > Saludos Cordiales.
>> >
>> >
>> > Juan Carlos Inestroza Lozano.
>> >
>> > "Alr'" wrote:
>> >
>> >> Tengo dos servidores Dell (uno con Win2k Server, y otro con Win 2003
>> >> R2
>> >> server, ambos con sus service pack respectivo), los dos tienen
>> >> instalado
>> >> Sql2000 Standard Edition
>> >> Service Pack 4, los dos servidores estan en diferentes cuidades, en
>> >> uno
>> >> de
>> >> ellos se corre un sistema de pedidos. El caso es que me piden que la
>> >> informacion de este servidor
>> >> se pase al de la otra cuidad (Win 2003 R2 server, donde se encuentra
>> >> la
>> >> administracion), ya que quieren ver los datos lo mas en linea que se
>> >> pueda,
>> >> sin embargo me comentan
>> >> tambien que han tenido no muy buenas experiencias con el replicador de
>> >> Sql,
>> >> por lo que me pidieron que usara otra cosa (aparte que nunca he
>> >> implementado
>> >> un replicador), he
>> >> pensado en servidores vinculados (ya que en la cuidad donde llegaran
>> >> los
>> >> datos, existe algo que hace las veces de una ip publica), de forma que
>> >> si
>> >> tengo coneccion de un lado
>> >> hacia el otro (pero no hacia ambos lados).
>> >> Mi pregunta es, hay alguna forma de implementar esta situacion de
>> >> forma
>> >> mas
>> >> o menos simple ?
>> >> Ya que lo que se me ocurre son procedimientos almacenados que hagan
>> >> las
>> >> veces de triggers (es decir que estos SP pasen los datos de un
>> >> servidor
>> >> al
>> >> otro), y que se ejecuten cada
>> >> digamos media hora o 1 hora, pero esto significaria tener que hacer a
>> >> mano
>> >> todos los "INSERT, UPDATE y DELETE" de cada una de las tablas con sus
>> >> respectivos campos, Ejemplo:
>> >>
>> >> -- Aqui van los DECLARE para cada campo
>> >> DECLARE ***Status char(1) -- <-- Ejemplo
>> >> DECLARE ***Campo1 int -- etc, etc.
>> >>
>> >> /* Agrega/Cambia/Borra registros en el servidor remoto segun el campo
>> >> Status
>> >> del servidor Local */
>> >> DECLARE FLE_ABC CURSOR FOR SELECT [Campos] FROM [Tabla] WHERE
>> >> ISNULL(STATUS,
>> >> 'A') <> 'P' -- 'P' de Procesado
>> >> OPEN FLE_ABC
>> >> FETCH NEXT FROM FLE_ABC INTO [***Variables]
>> >> WHILE ******FETCH_STATUS = 0
>> >> BEGIN
>> >> --SET XACT_ABORT ON
>> >> --BEGIN TRANSACTION ABC_Datos
>> >> IF (***Status = 'A') OR (***Status = 'B') OR (***Status = 'C') --
>> >> 'A'=Alta, 'B'=Baja, 'C'=Cambio, solo los registros que no esten
>> >> procesados
>> >> (Status<>'P').
>> >> BEGIN
>> >> IF (***Status = 'A') OR (***Status = 'C')
>> >> BEGIN
>> >> IF EXISTS(SELECT * FROM
>> >> [ServidorRemoto].[DbRemota].dbo.[TablaRemota] WHERE [Campo] =
>> >> [***Variable]) -- Si ya existe el registro en el servidor remoto, solo
>> >> lo
>> >> actualiza
>> >> BEGIN
>> >> UPDATE
>> >> [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
>> >> SET [Campo1]=[***Variable1],
>> >> [Campo2]=[***Variable2]
>> >> WHERE [Campo] = [***Variable] -- Y asi con todos lo campos de la
>> >> tabla
>> >> END
>> >> ELSE -- Si no existe el registro en el
>> >> servidor remoto, lo agrega
>> >> BEGIN
>> >> INSERT INTO
>> >> [ServidorRemoto].[DbRemota].dbo.[TablaRemota] ([Campo1], [Campo2])
>> >> VALUES([***Variable1], [***Variable2])
>> >> END
>> >> END
>> >> ELSE
>> >> BEGIN
>> >> DELETE FROM
>> >> [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
>> >> WHERE [Campo] = [***Variable]
>> >> END
>> >> END
>> >> --COMMIT TRANSACTION ABC_Datos
>> >> FETCH NEXT FROM FLE_ABC INTO [***Variables]
>> >> END
>> >> CLOSE FLE_ABC
>> >> DEALLOCATE FLE_ABC
>> >>
>> >> Despues de esto se ejecutaria otro procedimiento almacenado (u otro
>> >> proceso
>> >> dentro de este mismo SP) que ponga el campo Status = 'P', segun
>> >> localize
>> >> o
>> >> no los registros en la
>> >> Db del servidor remoto.
>> >>
>> >>
>> >> Esto como dije significa que debo hacer algo asi, para cada tabla (son
>> >> como
>> >> 50), aparte de agregar un campo de status a cada tabla.
>> >>
>> >> No existe algo en Sql, para dar de alta/modificar el registro completo
>> >> sin
>> >> tener que entrar en detalle de especificar cada campo (como es el caso
>> >> del
>> >> insert, o update) ?
>> >>
>> >> Alguien tiene una idea sin tener que usar replicacion (ya que esa fue
>> >> la
>> >> sugerencia que me hicieron[no usar replicacion]) ?
>> >> Si quieren mas informacion con gusto la proporciono.
>> >> Espero haber explicado bien la problematica.
>> >>
>> >> Cualquier idea es bienvenida.
>> >>
>> >> Gracias de antemano.
>> >>
>> >> Saludos.
>> >>
>> >>
>> >>

>>
>>
>>



Responder Con Cita
  #6 (permalink)  
Antiguo 11-12-2007, 00:15:00
Juan Carlos Inestroza Lozano
 
Mensajes: n/a
Predeterminado Re: Como pasar datos de un servidor remoto a otro

De nada estamos a la orden
Solo recuerda mas investigar sobre desarollo step by step de DTS en sql
server 2000 o de SSIS para sql 2005.


Saludos.

Juan Carlos Inestroza Lozano

"Alr'" wrote:

> Muchas Gracias otra vez por responder, les echare un vistazo.
>
> Saludos.
>
>
> "Juan Carlos Inestroza Lozano"
> <JuanCarlosInestrozaLozano***discussions.microsoft.c om> wrote in message
> news:620CA43D-9B36-49BF-A04D-BB257F46C5F2***microsoft.com...
> > Bueno aca te envio unas paginas para ver tema por tema:
> >
> > Implementacion de Replicacion:
> > http://www.monografias.com/trabajos1...on-datos.shtml
> > http://www.microsoft.com/spain/sql/2.../replicat.aspx
> >
> > En cuanto a DTS de SQL Server 2000 te envio estos links de nivel basico a
> > intermedio:
> >
> > http://www.manualespracticos.blogspot.com/
> > http://support.microsoft.com/default.aspx/kb/242391/es
> >
> > Existe un libro que se llama SQL Server 2000 DTS step by step, o puedes
> > tomar un cursos certificado de SQL Server 2000 como el MOC 2092.
> >
> > Saludos Cordiales.
> >
> >
> > Juan Carlos Inestroza Lozano.
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > "Alr'" wrote:
> >
> >> Muchas gracias por la respuesta.
> >> Tendras alguna pagina o sitio donde pueda ver algun ejemplo o simplemente
> >> me
> >> doy un clavado a los
> >> libros en linea de Sql 2000 ?
> >>
> >> Saludos.
> >>
> >> "Juan Carlos Inestroza Lozano"
> >> <JuanCarlosInestrozaLozano***discussions.microsoft.c om> wrote in message
> >> news:0289B3CF-BA7F-4993-8791-B39FEF06D59C***microsoft.com...
> >> > Hola
> >> >
> >> > Te recomendaria usar DTS y asi verifiques los medios de tranferencia de
> >> > estos servidores y uses SQL TASk para poder empotrar las clausulas que
> >> > no
> >> > permitan datos repetidas y mantegas la integridad de la BD, el
> >> > escenario
> >> > de
> >> > agentes de replicacion es el mas recomendado con el modelo publicados y
> >> > suscriptor!!
> >> >
> >> >
> >> > pero debes d etener uan buena arquitectura de comunicaciones!!!
> >> >
> >> > Saludos Cordiales.
> >> >
> >> >
> >> > Juan Carlos Inestroza Lozano.
> >> >
> >> > "Alr'" wrote:
> >> >
> >> >> Tengo dos servidores Dell (uno con Win2k Server, y otro con Win 2003
> >> >> R2
> >> >> server, ambos con sus service pack respectivo), los dos tienen
> >> >> instalado
> >> >> Sql2000 Standard Edition
> >> >> Service Pack 4, los dos servidores estan en diferentes cuidades, en
> >> >> uno
> >> >> de
> >> >> ellos se corre un sistema de pedidos. El caso es que me piden que la
> >> >> informacion de este servidor
> >> >> se pase al de la otra cuidad (Win 2003 R2 server, donde se encuentra
> >> >> la
> >> >> administracion), ya que quieren ver los datos lo mas en linea que se
> >> >> pueda,
> >> >> sin embargo me comentan
> >> >> tambien que han tenido no muy buenas experiencias con el replicador de
> >> >> Sql,
> >> >> por lo que me pidieron que usara otra cosa (aparte que nunca he
> >> >> implementado
> >> >> un replicador), he
> >> >> pensado en servidores vinculados (ya que en la cuidad donde llegaran
> >> >> los
> >> >> datos, existe algo que hace las veces de una ip publica), de forma que
> >> >> si
> >> >> tengo coneccion de un lado
> >> >> hacia el otro (pero no hacia ambos lados).
> >> >> Mi pregunta es, hay alguna forma de implementar esta situacion de
> >> >> forma
> >> >> mas
> >> >> o menos simple ?
> >> >> Ya que lo que se me ocurre son procedimientos almacenados que hagan
> >> >> las
> >> >> veces de triggers (es decir que estos SP pasen los datos de un
> >> >> servidor
> >> >> al
> >> >> otro), y que se ejecuten cada
> >> >> digamos media hora o 1 hora, pero esto significaria tener que hacer a
> >> >> mano
> >> >> todos los "INSERT, UPDATE y DELETE" de cada una de las tablas con sus
> >> >> respectivos campos, Ejemplo:
> >> >>
> >> >> -- Aqui van los DECLARE para cada campo
> >> >> DECLARE ***Status char(1) -- <-- Ejemplo
> >> >> DECLARE ***Campo1 int -- etc, etc.
> >> >>
> >> >> /* Agrega/Cambia/Borra registros en el servidor remoto segun el campo
> >> >> Status
> >> >> del servidor Local */
> >> >> DECLARE FLE_ABC CURSOR FOR SELECT [Campos] FROM [Tabla] WHERE
> >> >> ISNULL(STATUS,
> >> >> 'A') <> 'P' -- 'P' de Procesado
> >> >> OPEN FLE_ABC
> >> >> FETCH NEXT FROM FLE_ABC INTO [***Variables]
> >> >> WHILE ******FETCH_STATUS = 0
> >> >> BEGIN
> >> >> --SET XACT_ABORT ON
> >> >> --BEGIN TRANSACTION ABC_Datos
> >> >> IF (***Status = 'A') OR (***Status = 'B') OR (***Status = 'C') --
> >> >> 'A'=Alta, 'B'=Baja, 'C'=Cambio, solo los registros que no esten
> >> >> procesados
> >> >> (Status<>'P').
> >> >> BEGIN
> >> >> IF (***Status = 'A') OR (***Status = 'C')
> >> >> BEGIN
> >> >> IF EXISTS(SELECT * FROM
> >> >> [ServidorRemoto].[DbRemota].dbo.[TablaRemota] WHERE [Campo] =
> >> >> [***Variable]) -- Si ya existe el registro en el servidor remoto, solo
> >> >> lo
> >> >> actualiza
> >> >> BEGIN
> >> >> UPDATE
> >> >> [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
> >> >> SET [Campo1]=[***Variable1],
> >> >> [Campo2]=[***Variable2]
> >> >> WHERE [Campo] = [***Variable] -- Y asi con todos lo campos de la
> >> >> tabla
> >> >> END
> >> >> ELSE -- Si no existe el registro en el
> >> >> servidor remoto, lo agrega
> >> >> BEGIN
> >> >> INSERT INTO
> >> >> [ServidorRemoto].[DbRemota].dbo.[TablaRemota] ([Campo1], [Campo2])
> >> >> VALUES([***Variable1], [***Variable2])
> >> >> END
> >> >> END
> >> >> ELSE
> >> >> BEGIN
> >> >> DELETE FROM
> >> >> [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
> >> >> WHERE [Campo] = [***Variable]
> >> >> END
> >> >> END
> >> >> --COMMIT TRANSACTION ABC_Datos
> >> >> FETCH NEXT FROM FLE_ABC INTO [***Variables]
> >> >> END
> >> >> CLOSE FLE_ABC
> >> >> DEALLOCATE FLE_ABC
> >> >>
> >> >> Despues de esto se ejecutaria otro procedimiento almacenado (u otro
> >> >> proceso
> >> >> dentro de este mismo SP) que ponga el campo Status = 'P', segun
> >> >> localize
> >> >> o
> >> >> no los registros en la
> >> >> Db del servidor remoto.
> >> >>
> >> >>
> >> >> Esto como dije significa que debo hacer algo asi, para cada tabla (son
> >> >> como
> >> >> 50), aparte de agregar un campo de status a cada tabla.
> >> >>
> >> >> No existe algo en Sql, para dar de alta/modificar el registro completo
> >> >> sin
> >> >> tener que entrar en detalle de especificar cada campo (como es el caso
> >> >> del
> >> >> insert, o update) ?
> >> >>
> >> >> Alguien tiene una idea sin tener que usar replicacion (ya que esa fue
> >> >> la
> >> >> sugerencia que me hicieron[no usar replicacion]) ?
> >> >> Si quieren mas informacion con gusto la proporciono.
> >> >> Espero haber explicado bien la problematica.
> >> >>
> >> >> Cualquier idea es bienvenida.
> >> >>
> >> >> Gracias de antemano.
> >> >>
> >> >> Saludos.
> >> >>
> >> >>
> >> >>
> >>
> >>
> >>

>
>
>

Responder Con Cita
 
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cómo llenar una tabla con datos de otra BDD en otro servidor? Don Juan Newsgroup microsoft.public.es.sqlserver 1 02-06-2008 12:15:01
Pasar toda la configuración de un servidor a otro servidor Ruben Gomez Newsgroup microsoft.public.es.exchange 4 27-12-2007 08:16:00
Pasar un servidor con Sharepoint de un dominio a otro. Salvador Ramos Newsgroup microsoft.public.es.sharepoint 4 26-08-2007 10:58:46
pasar datos de un form a otro Randall Garita Newsgroup microsoft.public.es.vfoxpro.formularios 6 09-06-2006 16:01:06
Parar servicios en Remoto de un servidor a otro como ????????? Pedro Juan Newsgroup microsoft.public.es.backoffice 24 05-04-2006 16:11:03





Powered by: vBulletin, Versión 3.6.8
Derechos de Autor ©2000 - 2009, Jelsoft Enterprises Ltd.

LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc.