O Microsoft SQL Server (MS-SQL) tem uma funcionalidade denominada instâncias com nome. Esta funcionalidade permite-lhe executar várias bases de dados no mesmo anfitrião (ou anfitriões agrupados) com definições separadas. Cada instância da base de dados é executada na sua própria porta. No entanto, quando usar clientes compatíveis com MS-SQL em execução no Windows, pode estabelecer ligação por nome em vez de por número de porta. Por exemplo, se o seu nome do anfitrião for dbserver
e a sua instância se chamar proddb
, estabelece ligação através do nome do anfitrião dbserver\proddb
.
Como as instâncias com nome do MS-SQL estabelecem ligação
- O cliente contacta o anfitrião, denominado na porta MS-SQL predefinida (1433).
- O MS-SQL responde com a porta da instância nomeada.
- Em seguida, o cliente liga-se a essa porta.
O Looker não consegue encontrar o número da porta de uma instância com nome desta forma. Assim que o Looker se liga a uma porta, espera poder executar consultas e não se liga a nenhuma outra porta.
Como associar uma instância com nome do MS-SQL ao Looker
O MS-SQL escolhe uma porta aleatória no arranque. Para que o Looker se ligue a uma instância com nome do MS-SQL, tem de encontrar a porta na qual a instância com nome está a ser executada:
- O artigo SQL Server — Finding TCP Port Number SQL Instance Is Listening On detalha o método para encontrar a porta. Embora o artigo seja de 2012, o procedimento é semelhante nas várias versões do MS-SQL.
-
Depois de encontrar a porta, pode introduzir o nome da porta no campo
Host:Port
na configuração da ligação à base de dados do Looker. Por exemplo, se a porta for61499
e o anfitrião tiver o nomedbserver
, a ligação no Looker terá o seguinte aspeto:host: dbserver port: 61499
- É importante ter em atenção que o MS-SQL pode escolher uma porta diferente para a instância com nome sempre que o servidor é reiniciado. Isto pode exigir que o MS-SQL altere as regras da firewall e reconfigure o Looker para usar a nova porta. Para evitar a alteração de portas, pode optar por atribuir uma porta estática à sua instância com nome. Consulte o artigo Como atribuir uma porta estática a uma instância com nome do SQL Server e evitar um erro comum para ver detalhes sobre o processo.
NOTA: o nome de anfitrião da base de dados não tem o formato dbserver\proddb
, como teria se estivesse a estabelecer ligação pelo nome da instância.