o que é nomeado e instância padrão?

32

o que são nomeados e a instância padrão? Qual a diferença entre eles? por que eles são usados?

    
por Novice Developer 03.11.2009 / 02:30

6 respostas

27

De acordo com a Microsoft, sobre o nome com o padrão

Client applications connect to an instance of Microsoft SQL Server 2005 to work with a SQL Server database. Each SQL Server instance is made up of a distinct set of services that can have unique settings. The directory structure, registry structure, and service name all reflect the specific instance name you identify during setup.

An instance is either the default, unnamed instance, or it is a named instance. When SQL Server 2005 is in installed in the default instance, it does not require a client to specify the name of the instance to make a connection. The client only has to know the server name.

A named instance is identified by the network name of the computer plus the instance name that you specify during installation. The client must specify both the server name and the instance name when connecting.

By default, SQL Server installs in the default instance unless you specify an instance name. SQL Server Express, however, always installs in a named instance unless you force a default installation during setup.

    
por 03.11.2009 / 02:55
15

Além disso, você pode instalar apenas um padrão (instância sem nome), mas pode instalar várias instâncias nomeadas.

Muitos softwares de terceiros geralmente usam uma instância nomeada padrão, embora possam não mencioná-la. A razão é clara a partir das respostas acima, as versões padrão instalam uma instância sem nome por padrão, enquanto a versão Express instala uma instância nomeada como padrão.

É importante saber sobre a diferença dessa perspectiva, porque se você tiver 2 ou 3 Servidores de banco de dados em execução, talvez nunca se conecte à versão correta. Como o software de terceiros está procurando a instância padrão enquanto você está pensando que é a instância do SQLEXPRESS que está tentando se conectar. Ele pode aumentar significativamente o tempo de solução de problemas, se você não souber como se conectar à instância nomeada versus a instância sem nome.

Portanto, se você deseja se conectar à Versão com Nome ou Sem Nome, use as seguintes diretrizes.

MY-MACHINE-NAME\SQLEXPRESS  /* named version - correct */
MY-MACHINE-NAME             /* unnamed version (default instance) - correct */
MY-MACHINE-NAME\MSSQLSERVER /* unnamed version (default instance) - Wrong */

Note que mesmo que uma instância padrão tenha um nome, ela não pode ser referenciada pelo seu nome!

    
por 28.03.2012 / 17:06
5

Além da explicação publicada por Brett G, aqui estão algumas razões para usá-las:

  • Você pode ter instâncias diferentes usando diferentes versões do SQL (ou seja, padrão usando o SQL 2008, instância nomeada usando o SQL 2005)
  • Separação de preocupações, seja algo com seu aplicativo ou segurança ou qualquer outra coisa
  • Diferentes ambientes de desenvolvimento
  • Ambientes de aplicativo diferentes (ou seja, de propriedade interna versus terceiros)

Todos os tipos de motivos para usá-los. Não significa que é sempre uma boa ideia: P

    
por 03.11.2009 / 03:19
4
Ainda outra diferença prática: SQL2005 e superior permitem que você instale 16 ou mais instâncias por sistema. Como o licenciamento é por CPU física , por instalação do SQL Server (e não por instância!), Isso significa que você pode executar até 16 instâncias do SQL Server 2005 sem pagar um mais do que você já fez.

Dado que as licenças de CPU podem chegar a US $ 15.000 (!) por soquete, este é um must-have para grandes instalações com, digamos, 16 núcleos e 256 GB de memória.

    
por 28.03.2012 / 17:13
1

Você também pode limitar a memória e atribuir o uso do processador de limite por instância. Você também pode criar uma instância para aplicativos escritos de fornecedores que 'precisam' de privilégios de administrador do sistema, para que você não coloque seus outros aplicativos em risco.

    
por 03.11.2009 / 05:08
0

Uma das melhores razões é a separação de bancos de dados. Se você está desenvolvendo seu próprio aplicativo e empacotando o SQL Express com ele, então faz sentido instalá-lo em sua própria instância. Além disso, dar ao usuário a opção de especificar uma instalação SQL existente, se elas o preferirem.

Se você tem um banco de dados que é fundamental para garantir que ninguém mais tenha acesso, ele pode entrar em sua própria instância com uma autorização de segurança muito limitada. Digamos que esse seja o seu DB de produção e, em seguida, replique para o banco de dados de relatórios no mesmo servidor **, que é somente leitura para as pessoas. É menos provável, no entanto, que o usuário (admin) com erro acesse acidentalmente os usuários no banco de dados de produção, limitando quem realmente consegue atualizar os grupos de segurança na instância de produção para apenas algumas pessoas.

** boa prática diz para tornar o servidor de relatórios uma máquina separada, mas estou apenas fazendo isso como um exemplo.

    
por 03.11.2009 / 03:35