none
Copiar datos de una tabla a otra de un SQL a otro SQL RRS feed

  • Pregunta

  • Hola Amigos como van?

    El motivo de esta pregunta es porque tengo la necesidad de conocer las diferentes formas de pasar datos de unas tablas a otras tablas de un servidior de SQL 1 a otro servidor de SQL 2 y este proceso debe ser automático (o sea no es con una query de SQL) lo necesito mas macro. El diagrama es el siguiente el SQL 1 deberá exponer cierta información y el SQL 2 debe consumir esa data y escribirla en sus propias tablas.

    Las tablas que tengo tanto en SQL 1 como en SQL 2 tienen el mismo esquema y las mismas columnas, en teoría el la data debe pasar a de una tabla de SQL1 a SQL2 (no es un cluster) porque para este caso es mas detallado.

    También para finalizar necesito saber como hacerlo de la manera mas segura porque el servidor SQL1 lo tengo en una red interna y el SQL2 lo tengo en un data center hosteado en la nube.

    Mil gracias por su valiosa ayuda.


    Diego Daza

    viernes, 6 de mayo de 2016 15:12

Respuestas

Todas las respuestas

  • Hola que tal estas son las opciones de pasar data de un Servidor a otro

    Si en todo caso quieres consultar a otro servidor , tendrías que configurar un Linked Server, en tu servidor Local colocar los datos de tu Servidor de Nube y en las consultas podrás consultar a los dos servidores(local y nube).

    https://msdn.microsoft.com/es-es/library/ff772782%28v=sql.120%29.aspx?f=255&MSPPError=-2147217396

    Cualquier cosa me consultas.

    Saludos,

    Jorge Muchaypiña G.


    Business Intelligence Analyst

    viernes, 6 de mayo de 2016 15:28
  • Hola,

    Esto puede hacerse de varias formas.

    Cual sea mejor o peor depende de tus requerimientos, volumen de datos, latencia entre los servidores, etc. Te pongo las que usaría yo:

    Si tienes conexión remota al servicio de SQL Server:

    • Conexión en tiempo real mediante Linked Server: Se "vinculan" los dos servidores a nivel del propio servidor SQL, de modo que el servidor SQL2 puede acceder a los datos del SQL1 en tiempo real mediante tSQL como si tuviera los datos en local.
    • Traspaso/copia de datos: Periódicamente copias la información del SQL1 al SQL2. La mejor opción suele ser mediante paquetes SSIS: Un paquete de Integration Services lee las tablas de origen y escribe en las de destino.

    Si no tienes conexión remota al servicio de SQL Server:

    • Entonces generalmente no tienes más remedio que hacer una exportación de la información, llevarla al servidor de destino mediante FTP, mail, etc., y una vez la tienes allí realizas la importación. Generalmente le mejor método para hacer esto es mediante paquetes SSIS.

    Como decía inicialmente para evaluar la mejor habría que conocer muy bien la infraestructura, pero espero que te sirva como punto de partida para comenzar las pruebas.

    Un saludo.

    Diego


    viernes, 6 de mayo de 2016 15:42
  • voy a analizar y te cuento. Sabes algo de configuracion SSL SQL Server? Me cuentan que también puede ser una solucion.

    Diego Daza

    viernes, 6 de mayo de 2016 16:02
  • El que puedo recomendarte son las siguientes opciones:

    - SQL Server Integration Services

    - Replication

    Te recomiendo ampliamente que uses la replicación, esta resuelve precisamente el escenario que planteas.

    En la replicación de SQL Server se manejan 3 opciones principalmente:

    - Snapshot

    - Mezcla

    - Transaccional.- Esta es la que aplica para tí, ya que los cambios solo se realizarán en SQL-A y necesitas que se replique en SQL-B

    Puedes tenerlo listo  en 10 minutos siguiendo tutoriales en Youtube tal como este: https://www.youtube.com/watch?v=PNhs-vmHJNo

    O bien profundizar tanto como quieras con http://download.red-gate.com/ebooks/SQL/fundamentals-of-sql-server-2012-replication.pdf

    Saludos.


    SQL Server Administrator SemiJunior

    martes, 10 de mayo de 2016 4:36
  • Hola dotNetMX 

    Si efectivamente acabo de ver el vídeo de YouTube explicando el tema de Replication, para mi caso particular no me sirve esta opción ya que precisamente las tablas de mi SQL1 y de mi SQL2 tienen diferentes nombres y los campos también y hasta donde vi del vídeo no vi una opción para relacionar los campos de las tablas, simplemente vi que la tablas realmente lo que hacían es un espejo, ademas de eso mi requerimiento también tiene que recorrer unas tablas de mi SQL1 hacer un análisis y extraer algunos registros según un condicional que yo le programe. En conclusión mi requerimiento tiene algo mas de código y programación que simplemente un espejo de tablas, sin embargo no sabia de esta opción y me gusto saber del tema. Voto a su respuesta.


    Diego Daza

    miércoles, 18 de mayo de 2016 14:20