Está en la página 1de 8

CONSULTAS DISTRIBUIDAS

Para la realización de una consulta distribuida en SQL Server, es necesario ya


contar con la conexión remota entre los equipos que se estén manejando.

Realizada exitosamente la conexión remota, es indispensable recordar que al


crear la conexión remota se configuran nuevas direcciones IP en los equipos
utilizados, dicha acción se realiza en cambias opciones del adaptador:

Este proceso será hablado en la explicación completa.

Contando con nuevas direcciones IP en los equipos a utilizar, (ejem: Laptop


1=192.168.1.101 – Laptop 2: 192.168.1.102) es hora de configurar el Linked
Server en SQL Server.

Linked server (Servidor vinculado) es una configuración que permite ejecución de


comandos contra orígenes OLEDB remotos. Permite obtener acceso a consultas
heterogéneas distribuidas en orígenes de datos OLE DB. Tras crear un servidor
vinculado con sp_addlinkedserver, este servidor puede ejecutar consultas
distribuidas.
“Los servidores vinculados permiten que el motor de base de datos de SQL
Server y la instancia administrada de la base de datos SQL de Azure lean
datos de las fuentes de datos remotas y ejecuten comandos en los
servidores de bases de datos remotas (por ejemplo, fuentes de datos OLE
DB) fuera de la instancia de SQL Server”.

¿Cuándo usar servidores vinculados?

Los servidores vinculados le permiten implementar bases de datos distribuidas


que pueden obtener y actualizar datos en otras bases de datos. Son una buena
solución en los escenarios en los que necesita implementar fragmentación de
bases de datos sin necesidad de crear un código de aplicación personalizado o
cargar directamente desde fuentes de datos remotas. Los servidores vinculados
ofrecen las siguientes ventajas:

 La capacidad de acceder a datos desde fuera de SQL Server.


 La capacidad de emitir consultas distribuidas, actualizaciones, comandos y
transacciones en fuentes de datos heterogéneas en toda la empresa.
 La capacidad de abordar diversas fuentes de datos de manera similar.

Creación de un Linked Server:

En la barra de objetos del explorador en SQL,


seleccionamos la carpeta Server Objects, se le da clic
derecho y se desplazará una lista de opciones. Se
selecciona New > Linked Server.
Se abrirá la ventana de
configuración de Linked Server.

En Linked server, se deberá


escribir la dirección IP de la otra
máquina.

EJEMPLO:

Se está configurando el Linked Server en el equipo A por ser la máquina cliente,


por ende, en Linked server, se deberá colocar la dirección IP del equipo B. Y se
activa SQL Server como el tipo de servidor.
En la misma ventana de Linked server se selecciona la página Security. Y en la
sección “For a login not defined in the list above, corrections will: (Para un inicio de
session no definido en la lista anterior, las correciones:” se selecciona Be made
using the security context: y en esa opción seleccionada se deberá de escribir
en “Remote login:” el login de usuario del equipo B, que es: test 2 y en Password
su debida contraseña. Se da clic en Ok y el proceso de configuración del Linked
Server terminó.

Se puede comprobar que el servidor vinculado


está configurado con éxito, si nos dirigimos a la
carpeta “Linked Servers” ubicada dentro de la
carpeta Server Objects. Al desplazar la
carpeta Linked Servers, se podrá ver la
dirección IP del equipo B y si se desplaza más,
se verán las bases de datos que tiene el
servidor o el equipo B.
Consultas distribuidas

Ya teniendo configurado el Linked Server (o el servidor vinculado en español), se


puede trabajar con las consultas distribuidas cuya sintaxis para una consulta
general es la siguiente:

SELECT * FROM [dirección IP del servidor vinculado].base de datos.dbo.tabla

Más visualmente:

SELECT * FROM [192.168.1.102].escuela.dbo.Alumno

Ya dependerá que tipo de datos se consultarán pues se le podrá añadir el


comando WHERE.

SELECT nombre FROM [192.168.1.102].escuela.dbo.Alumno where id=5

SELECT * FROM [192.168.1.102].escuela.dbo.Alumno where grupo=2

En el caso de la base de datos que se está trabajando en el equipo, que habla


acerca de una tienda. Se deben de considerar los siguientes aspectos:

 ¿Cómo está fragmentada la BD?


 ¿Qué condición define la fragmentación de la BD?

Es muy importante tener en cuenta eso. Por ejemplo:

La base de datos tienda está fragmentada horizontalmente, cuenta con dos


fragmentos definidos por la condición “envase”. (cada fragmento se convierte en
una nueva Base de datos).
Entonces digamos que la base de datos “tienda 1” está en el equipo A y la base de
datos “tienda 2” está en el equipo B. Pero aquí ya entraría el tema de la replicación
y es algo un poco “complejo”,entre comillas, de explicar de esta forma.

Sólo ten cuenta esto:

En equipo A está “tienda 1” y en el mismo equipo A existe la replicación de la


base de datos “tienda 2”. Y en equipo B está “tienda 2” y en el mismo equipo B
existe la replicación de la base de datos “tienda1”.

Más visualmente:
Por ende para hacer la consulta distribuida, trabajando en Equipo A debido de
que a que ahí se configuró el servidor vinculado:

SELECT producto FROM [192.168.1.102].tienda2.dbo.Productos where id=5

Se está mandando a llamar la base de datos tienda2 porque es la que existe en


esta dirección 192.168.1.102 (O sea, Equipo B).

También podría gustarte