Múltiplas Instâncias SQL Server
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.
Em uma instância default, o nome do diretório seria somente MSSQL. Exemplo de uma instalação SQL Server 2000:
Note que os diretórios podem ser alterados\configurados durante a instalação inicial da instância SQL Server.
Referência
Instance Configuration
https://msdn.microsoft.com/en-us/library/ms143531.aspx
Locating Folders and Files (64-bit)
https://msdn.microsoft.com/en-us/library/aa274567(SQL.80).aspx
Comments
Anonymous
February 24, 2011
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.Anonymous
February 26, 2011
Olá Fabrício muito bom ver você escrevendo novamente no blog. Cara, quando puder escreve algo sobre como ler minidumos. Abraço, Demétrio SilvaAnonymous
February 27, 2011
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, FabricioAnonymous
February 27, 2011
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, FabricioAnonymous
February 28, 2011
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.Anonymous
March 01, 2011
Claro, manda o assunto sobre Cache Stores. Ficarei mais que feliz se puder publicar no blog.Anonymous
March 02, 2011
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,Anonymous
March 28, 2011
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 SilvaAnonymous
September 23, 2011
Em qual situação devemos utilizar mais de uma instância SQL Server 2008 em um mesmo servidor?Anonymous
October 18, 2011
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, FabricioAnonymous
November 12, 2013
Fabricio, estou com uma dúvida. Você sabe me responder qual o nome do servidor onde é instalada a instância do SQL?Anonymous
November 14, 2013
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? AbsAnonymous
April 02, 2014
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.Anonymous
April 02, 2014
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".Anonymous
April 02, 2014
Particularmente, prefiro clusters composto por 3+ nós. Dessa forma você pode deixar 2+ máquinas ativas e somente uma inativa.Anonymous
April 03, 2014
Ok Fabricio. Muito obrigado pela resposta!Anonymous
November 25, 2014
eu queria saber pq eu istalei o sql server 2005 ai eu desinstalei e fui instalar novamente so que não instala devido a instancia ja procurei em todo lugar mais ninguem conseguiu me ajudar como exclui a instancia pra intalar novamente o sql