Microsoft SQL Server (MS-SQL) tiene una función llamada instancias con nombre. Esta función te permite ejecutar varias bases de datos en el mismo host (o hosts agrupados en clústeres) con una configuración independiente. Cada instancia de base de datos se ejecuta en su propio puerto. Sin embargo, cuando usas clientes con reconocimiento de MS-SQL que se ejecutan en Windows, puedes conectarte por nombre en lugar de por número de puerto. Por ejemplo, si tu nombre de host es dbserver
y tu instancia se llama proddb
, te conectarás con el nombre de host dbserver\proddb
.
Cómo se conectan las instancias con nombre de MS-SQL
- Tu cliente se comunica con el host, denominado en el puerto MS-SQL predeterminado (1433).
- MS-SQL responde con el puerto de la instancia con nombre.
- Luego, el cliente se conecta a ese puerto.
Looker no podrá encontrar el número de puerto de una instancia con nombre de esta manera. Una vez que Looker se conecte a un puerto, espera poder ejecutar consultas y no se conectará con ningún otro puerto.
Cómo conectar una instancia de MS-SQL con Looker
MS-SQL elige un puerto aleatorio al inicio. Para que Looker se conecte a una instancia de MS-SQL con nombre, deberá buscar el puerto en el que se ejecuta la instancia con nombre:
- En el artículo SQL Server: Cómo encontrar la instancia de SQL del número de puerto TCP en reproducción, se detalla el método para encontrar el puerto. Aunque el artículo es de 2012, el procedimiento es similar en las diferentes versiones de MS-SQL.
-
Una vez que hayas encontrado el puerto, puedes ingresar el nombre en el campo
Host:Port
de la configuración de conexión a la base de datos de Looker. Por ejemplo, si el puerto es61499
y el host se llamadbserver
, la conexión en Looker se verá de la siguiente manera:host: dbserver port: 61499
- Es importante tener en cuenta que MS-SQL puede elegir un puerto diferente para la instancia con nombre cada vez que se reinicia el servidor. Esto podría requerir que MS-SQL cambie las reglas de firewall y vuelva a configurar Looker para usar el puerto nuevo. Para evitar que cambien los puertos, puedes optar por asignar un puerto estático a la instancia con nombre; consulta Cómo asignar un puerto estático a una instancia con nombre de SQL Server y evita una dificultad común para obtener detalles sobre el proceso.
NOTA: El nombre de host de la base de datos no tomará la forma dbserver\proddb
, como si se conectara mediante el nombre de la instancia.