Múltiplas Instâncias SQL Server

Múltiplas Instâncias SQL Server

Rate This
  • Comments 16

Usando o SQL Server Enterprise Edition, você pode instalar até 50 SQL Servers. Então, sim, mais de um SQL Server pode ser instalado por máquina. Nesse caso, chamamos cada instalação de “instância” e cada uma possui um nome específico. É comum escutar o termo “Instância Default”, que poderia significar o mesmo que “instância sem nome” ou “instância com nome em branco”. Exemplo:

  • SERVXYZ  -   instância default
  • SERVXYZ\INSTA  - instância nomeada “INSTA”
  • SERVXYZ\INSTB  - instância nomeada “INSTB”
  • SERVXYZ\INSTC  - instância nomeada “INSTC”

Note que múltiplas instâncias podem ser configuradas no servidor. Cada instância possui seus próprios serviços, binários, chaves de registry, etc. Em outras palavras, as instâncias são independentes. A consequencia disso é que cada instância:

  • Tem uma configuração independente
  • Deve ser associada a uma porta TCP diferente e nunca podem compartilhar a mesma porta (na mesma interface de rede da máquina)
  • Convive independentemente uma da outra e instalação/desinstalação não afetam uma a outra
  • Possui seu próprio binário e podem apresenter diferentes níveis de Service Packs e hotfixes

Alguns componentes são considerados “compartilhados” e ficam nas pastas abaixo (80, 90, 100 se referem respectivamente ao SQL Server 2000, 2005, 2008).

  • C:\Program Files\Microsoft SQL Server\80
  • C:\Program Files\Microsoft SQL Server\90
  • C:\Program Files\Microsoft SQL Server\100

Exemplo: A minha máquina possui os componentes compartilhados e duas instâncias nomeadas: SQLEXPRESS e KATMAI.

clip_image001

Em uma instância default, o nome do diretório seria somente MSSQL. Exemplo de uma instalação SQL Server 2000:

clip_image002

Note que os diretórios podem ser alterados\configurados durante a instalação inicial da instância SQL Server.

 

Referência

Instance Configuration

http://msdn.microsoft.com/en-us/library/ms143531.aspx

Locating Folders and Files (64-bit)

http://msdn.microsoft.com/en-us/library/aa274567(SQL.80).aspx

  • Olá Fabrício.

    Já ouvi alguns profissionais dizerem que ter mais de uma instância no mesmo servidor pode ajudar devido  limitação de existir apenas 1 tempdb por instância.Isso é mesmo verdade ?

    Abraço

    Alexandre.

  • Olá Fabrício muito bom ver você escrevendo novamente no blog. Cara, quando puder escreve algo sobre como ler minidumos.

    Abraço,

    Demétrio Silva

  • Olá Alexandre,

    Nunca tinha ouvido esse comentário de ter múltiplas instâncias no servidor para evitar problemas de escalabilidade com o banco de dados temporário (TEPMDB). Mas, na teoria, você está 100% correto! Cada instância possui seu próprio TEMPDB independente e isso evita o compartilhamento do espaço. Uma arquitetura mais ousada seria ter múltiplos servidores e cada um com seu próprio TEMPDB em discos locais (ou DAS). Isso evitaria uma contenção no storage (SAN).

    Se tiver mais comentários sobre esse assunto, não deixe de adicionar no blog. Tenho muito interesse nisso.

    Abraços, Fabricio

  • Demétrio, bom dia!

    Obrigado pelo seu comentário e é bom saber que continua seguindo o blog mesmo após longo tempo de ociosidade. Quanto ao minidump, isso é uma pendência antiga e que ainda não sei qual seria a melhor forma de falar sobre isso. Quero planejar melhor o que falar sobre isso e preciso de uma ajuda. Podemos conversar por email?

    Abraços, Fabricio

  • Oi Fabrício, já venho acompanhando seu blog há muito tempo e curtindo cada vez mais os seus posts.

    Queria compartilhar um recente problema que tive relacionado ao uso das caches stores pelo SQL Server.

    Será que poderia lhe mandar por email o cenário completo e assim você publicar algo em seu blog?

    Grande abraço e continue com os excelentes posts.

  • Claro, manda o assunto sobre Cache Stores. Ficarei mais que feliz se puder publicar no blog.

  • Oi Fabrício,

    Eu também fiquei interessado quando me falaram sobre isso, pois eu tenho muitos bancos em 1 instância apenas, e para piorar o servidor é 32 bits.

    Imagina que eu tenho 100 bancos em  uma instância.

    Se eu dividir isso em duas instâncias ficaria com 50 bancos compartilhando o tempdb.

    Além do que, se a arquitetura é 32 bits existe a limitação de 4 GB de memória sendo 2 para o Kernel sobrando "2" GB para aplicação, sem contar com memory to leave e etc.

    Com a opção /PAE o Windows server reconhece até 64 GB de memória se não me engano.

    Sendo assim posso ter 2 GB para cada instância podendo aproveitar pelo menos uns 60 GB da memória disponível e é claro que outros recursos como CPU,placa de rede  e etc também teria que ser expandido.

    Náo sei na prática, mas na teoria parece funcionar.

    Abs.

    Alexandre,

  • Olá Alexandre,

    A prática de dividir os databases em mais de uma instância é muito utlizada em ambientes de grande porte. Uma das principais razões é a que você citou, diminuir a contenção na tempdb.

    Abraço,

    Demétrio Silva

  • Em qual situação devemos utilizar mais de uma instância SQL Server 2008 em um mesmo servidor?

  • Olá Rodolfo,

    Ao meu ver, o principal motivo seria segurança. Com instâncias diferentes, é possível realizar uma configuração independente dos SysAdmin e dos logins.

    Abraços, Fabricio

  • Fabricio, estou com uma dúvida. Você sabe me responder qual o nome do servidor onde é instalada a instância do SQL?

  • O nome do servidor é igual ao Hostname em uma instalação standalone. Se for um servidor clusterizado, então ele utiliza o "Nome Virtual" (recurso do cluster). Será que entendi bem a pergunta? Abs

  • Olá Fabricio,

    Uma dúvida: Eu posso instalar uma instância nomeada em um nó secundário (passivo) de um cluster ativo->passivo, para aproveitar sua "ociosidade"?  

    Dessa forma para alguns bancos ele seria utilizado diretamente, e a instância default ficaria para os bancos que necessitam estar no cluster.

    Isso é possível e coerente?

    Grato.

  • Pode sim David - com uma restrição: você instala a instância no cluster inteiro, mas deixa ele ativo somente no lado "passivo". Assim o cluster se tornaria "ativo-ativo".  

  • Particularmente, prefiro clusters composto por 3+ nós. Dessa forma você pode deixar 2+ máquinas ativas e somente uma inativa.

Page 1 of 2 (16 items) 12
Leave a Comment
  • Please add 1 and 8 and type the answer here:
  • Post