SQL Server: Que sont les instances nommées et par défaut?

35

Que sont les instances nommées et par défaut? Quelle est / sont la / les différence (s) entre eux? Pourquoi sont-ils utilisés?

Développeur novice
la source

Réponses:

30

Selon Microsoft à propos de named vs default

Les applications clientes se connectent à une instance de Microsoft SQL Server 2005 pour fonctionner avec une base de données SQL Server. Chaque instance SQL Server est composée d'un ensemble distinct de services pouvant avoir des paramètres uniques. La structure de répertoire, la structure de registre et le nom de service reflètent tous le nom d'instance spécifique que vous identifiez lors de l'installation.

Une instance est soit l'instance par défaut sans nom, soit une instance nommée. Lorsque SQL Server 2005 est installé dans l'instance par défaut, il n'est pas nécessaire qu'un client spécifie le nom de l'instance pour établir une connexion. Le client doit seulement connaître le nom du serveur.

Une instance nommée est identifiée par le nom de réseau de l'ordinateur plus le nom d'instance que vous spécifiez lors de l'installation. Le client doit spécifier le nom du serveur et le nom de l'instance lors de la connexion.

Par défaut, SQL Server est installé dans l'instance par défaut, à moins que vous ne spécifiiez un nom d'instance. Cependant, SQL Server Express est toujours installé dans une instance nommée, à moins que vous ne forcez une installation par défaut lors de l'installation.

Brett G
la source
17

De plus, vous ne pouvez installer qu'une seule instance par défaut (instance non nommée), mais vous pouvez installer plusieurs instances nommées.

De nombreux logiciels tiers utilisent généralement une instance nommée par défaut, même s’ils ne le mentionnent pas. Les raisons ci-dessus indiquent clairement que les versions standard installent une instance non nommée par défaut, tandis que la version Express installe une instance nommée par défaut.

Il est important de connaître la différence de ce point de vue car, si vous avez 2 ou 3 serveurs de base de données en cours d'exécution, vous ne pourrez peut-être jamais vous connecter à la bonne version. Parce que le logiciel tiers recherche l'instance par défaut alors que vous pensez qu'il s'agit de l'instance SQLEXPRESS à laquelle il tente de se connecter. Cela peut considérablement augmenter votre temps de dépannage si vous ne savez pas comment vous connecter à une instance nommée par rapport à une instance non nommée.

Par conséquent, si vous souhaitez vous connecter à la version nommée ou non nommée, suivez les instructions ci-dessous.

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

Notez que même si une instance par défaut a un nom, elle ne peut pas être référencée par son nom!

jardin sauvage
la source
5

En plus de l'explication publiée par Brett G, voici quelques raisons pour lesquelles les utiliser:

  • Vous pouvez avoir différentes instances utilisant différentes versions de SQL (par exemple, SQL 2008, instance nommée utilisant SQL 2005).
  • Séparation des problèmes, que ce soit avec votre application, votre sécurité ou autre chose
  • Différents environnements de développement
  • Différents environnements d'application (c'est-à-dire d'origine locale ou tierce)

Toutes sortes de raisons pour les utiliser. Cela ne veut pas dire que c'est toujours une bonne idée, cependant: P

écailleur
la source
5

Autre différence pratique: SQL2005 et plus récent vous permet d'installer 16 instances ou plus par système. Étant donné que les licences sont accordées par processeur physique et par installation de serveur SQL (et non par instance!), Vous pouvez exécuter jusqu'à 16 instances de SQL Server 2005 sans payer un centime de plus que ce que vous aviez déjà fait.

Étant donné que les licences de processeur peuvent atteindre 15 000 USD (!) Par socket, il s'agit d'un outil indispensable pour les installations de grande taille avec, par exemple, 16 cœurs et 256 Go de mémoire.

adaptr
la source
1

Vous pouvez également limiter la mémoire et attribuer une utilisation maximale du processeur par instance. Vous pouvez également créer une instance pour les applications écrites par le fournisseur ayant "besoin" de privilèges d'administrateur système, afin de ne pas compromettre vos autres applications.

Sam
la source
0

L'une des meilleures raisons est la séparation des bases de données. Si vous développez votre propre application et empaquetez SQL Express avec celle-ci, il est logique de l'installer dans sa propre instance. De plus, donner à l'utilisateur la possibilité de spécifier une installation SQL existante s'il le fait.

Si vous souhaitez vous assurer que personne d'autre n'a accès à la base de données, vous pouvez accéder à sa propre instance avec une autorisation de sécurité très limitée. Supposons que votre base de données prodcution soit répliquée et qu'elle se réplique ensuite sur la base de données de rapports sur le même serveur **, qui est en lecture seule. Il est moins probable que l'utilisateur (admin) ait accidentellement accès à la base de données de production en limitant le nombre de personnes pouvant réellement mettre à jour les groupes de sécurité sur l'instance de production.

** Selon la bonne pratique, faire du serveur de reporting une machine séparée, mais je ne fais que cela à titre d'exemple.

SpaceManSpiff
la source