Diferenças entre Instância Padrão x Instância Nomeada


Olá,

Mais um fast-post (postagem rapidona, tradução livre) pra ilustrar um cenário bem comum para quem usa SQL Server eventualmente: o conceito de instâncias nomeadas e instâncias padrão (default). Peço que tenham paciência pois irei partir do começo, e quando digo “começo”, eu falo da parte de instalação do SQL Server.

O processo de instalação é relativamente simples (quer aprender como faz utilizando as melhores práticas?) e não será detalhado aqui. Recomendo este vídeo no MVA especialmente pois ilustra uma instalação completa.

A tela que define a configuração de sua instância é essa aqui:

Padrão ou nomeada?

Assumo que você já conhece o conceito de instância do SQL Server e por isso vamos abordar três tópicos:

  •  Instância padrão
  • Instância nomeada
  • SQL Server Express

Instância padrão

A lei suprema do universo é que, em determinada máquina, só pode ter uma e apenas uma (e apenas uma e apenas uma e apenas u…) instância padrão (Default Instance). Jamais, em hipótese alguma, você poderá ter mais de uma instância padrão na mesma máquina, mesmo se você instalar várias instâncias de versões do SQL Server diferentes.

Por exemplo, se você instalou uma instância padrão do SQL Server 2008 R2 em sua máquina, e deseja instalar uma instância do SQL Server 2012 pra testes, você não pode instalar uma instância padrão, a mesma PRECISA ser nomeada.

Depois de instalado, se o serviço do SQL Server estiver online (pode ser conferido no SQL Server Configuration Manager ou em services.msc do Windows), como logamos?

Assim:

Opções para logar em uma instância padrão:

  • (local) – Como ilustrado na imagem acima;
  • . – Também conhecido como ponto.  Puro unix-pattern 🙂
  • NOMEDASUAMAQUINA – A sua máquina só pode possuir uma instância padrão, logo,
  • MSSQLSERVER – Aponta também para a instância padrão. Note que no ato da instalação, quando se seleciona default, esse é o nome que aparece (Instância padrão) .

Instância nomeada

Enquanto você só pode ter uma instância padrão em uma máquina, poderá ter N instâncias nomeadas. Olha como é criada uma instância nomeada:

nomeada

E como logamos em uma instância nomeada?

Instância nomeada

Ou seja: NomeDaMaquina\NomeInstancia

E o que tem haver o SQL Server Express?

É o campeão em frustar recém-chegados ao SQL Server 🙂

O motivo é a edição EXPRESS, que é bastante baixada seja por desenvolvedores ou para quem está pegando o jeito com o SQL Server, obrigatoriamente é nomeada.

E como logar? Usando um dos  nomes abaixo:

  • NomeDaSuaMaquina\SQLEXPRESS;
  • .\SQLEXPRESS

Porque achei interessante mencionar o SQL Express? Porque um amigo meu topou com essa dificuldade e talvez outra pessoa também tope.

E qual a diferença entre instâncias padrão e nomeada?

Basicamente configurações de conectividade (leia-se: nome do servidor e porta).

Porta pode se tornar um fator problemático  (sem devido conhecimento) se você estiver conectando em uma instância nomeada e o SQL Server Browser não está habilitado nela. Mas isso é assunto pra outro post 🙂

Referência: http://technet.microsoft.com/en-us/library/ms165614(v=sql.90).aspx

 

[]’s

 


6 responses to “Diferenças entre Instância Padrão x Instância Nomeada”

  1. Renato muito bom o post sobre as diferenças entre as instâncias do SQL Server. Só para acrescentar, existe também uma quarta forma de logar na instância default que é através do endereço loopback, ou conhecido como localhost, com o IPv4 – 127.0.0.1. =p

  2. Sua explicação foi ótima. Tenho uma dúvida. Criei uma aplicação pequena que conecta a um SQL Server 2008 express. No meu servidor, o databasename é “srv-asm01\gwolap” (instância nomeada). O servidor onde essa aplicação vai rodar, possui no databasename “servidordba” (Instância padrão?). Apesar do responsável me dizer que o SQLServer 2008 dele é o express, vendo essa sua explicação, fiquei na dúvida..

    Pra piorar, criei um arquivo “.ini” para gerenciar a conexão. No meu fica assim:

    Server=srv-asm01\gwolap
    Databasename=gwolap
    User=sa
    Pass=blablabla

    No início da aplicação, eu faço a leitura do “;ini” e preencho os parâmetros de conexão. No meu PC acessando meu servidor, funciona normalmente.

    No dele fica assim:
    Server=servidordba
    Databasename=gwolap
    User=bla
    Pass=blablabla

    No PC dele acessando o servidor dele (com os parâmentros de conexão ajustados) dá erro de conexão com o servidor.

    Alguma luz?

  3. Obrigado.
    Qual a mensagem do erro de conexão com o servidor?
    É bom confirmar com certeza se a instância da aplicação realmente é express, porque se for, neste .ini, o server seria servidordba\sqlexpress.

Leave a Reply to Rubens Cancel reply

Your email address will not be published. Required fields are marked *