Quali sono le istanze nominate e predefinite? Qual è / sono le differenze tra loro? Perché sono usati?
Quali sono le istanze nominate e predefinite? Qual è / sono le differenze tra loro? Perché sono usati?
Risposte:
Secondo Microsoft per quanto riguarda il nome vs predefinito
Le applicazioni client si connettono a un'istanza di Microsoft SQL Server 2005 per funzionare con un database SQL Server. Ogni istanza di SQL Server è composta da un insieme distinto di servizi che possono avere impostazioni univoche. La struttura della directory, la struttura del registro e il nome del servizio riflettono tutti il nome specifico dell'istanza identificato durante l'installazione.
Un'istanza è l'istanza predefinita, senza nome, oppure è un'istanza denominata. Quando SQL Server 2005 è installato nell'istanza predefinita, non è necessario che un client specifichi il nome dell'istanza per stabilire una connessione. Il client deve solo conoscere il nome del server.
Un'istanza denominata viene identificata dal nome di rete del computer più il nome dell'istanza specificato durante l'installazione. Il client deve specificare sia il nome del server che il nome dell'istanza durante la connessione.
Per impostazione predefinita, SQL Server si installa nell'istanza predefinita a meno che non si specifichi un nome di istanza. SQL Server Express, tuttavia, si installa sempre in un'istanza denominata a meno che non si imponga un'installazione predefinita durante l'installazione.
Inoltre è possibile installare solo un'impostazione predefinita (istanza senza nome) ma è possibile installare molte istanze denominate.
Molti software di terze parti di solito usano un'istanza denominata predefinita sebbene non possano menzionarla. Il motivo è chiaro dalle risposte precedenti, le versioni standard installano un'istanza senza nome per impostazione predefinita mentre la versione Express installa un'istanza denominata per impostazione predefinita.
È importante conoscere la differenza da questo punto di vista perché se si hanno 2 o 3 server DB in esecuzione, è possibile che non ci si connetta mai alla versione corretta. Perché il software di terze parti sta cercando l'istanza predefinita mentre si pensa che sia l'istanza SQLEXPRESS a cui sta tentando di connettersi. Può aumentare notevolmente i tempi di risoluzione dei problemi, se non sai come connetterti a un'istanza denominata o non denominata.
Quindi, se si desidera connettersi alla versione con nome o senza nome, utilizzare le seguenti linee guida.
MY-MACHINE-NAME\SQLEXPRESS /* named version - correct */
MY-MACHINE-NAME /* unnamed version (default instance) - correct */
MY-MACHINE-NAME\MSSQLSERVER /* unnamed version (default instance) - Wrong */
Nota che anche se un'istanza predefinita ha un nome, non può fare riferimento al suo nome!
Oltre alla spiegazione pubblicata da Brett G, ecco alcuni motivi per cui utilizzarli:
Tutti i tipi di motivi per usarli. Non significa che sia sempre una buona idea, però: P
Ancora un'altra differenza pratica: SQL2005 e versioni successive consentono di installare 16 o più istanze per sistema. Poiché le licenze sono per CPU fisica , per installazione di SQL Server (e non per istanza!), Ciò significa che è possibile eseguire fino a 16 istanze di SQL Server 2005 senza pagare un centesimo in più rispetto a prima.
Dato che le licenze CPU possono essere eseguite a $ 15000 (!) Per socket, questo è un must per installazioni di grandi dimensioni con, diciamo, 16 core e 256 GB di memoria.
Uno dei migliori motivi è la separazione dei database. Se stai sviluppando la tua applicazione e impacchettando SQL Express con essa, allora ha senso installarla nella propria istanza. Inoltre, offre all'utente la possibilità di specificare un'installazione SQL esistente se la preferisce.
Se si dispone di un database fondamentale che si desidera garantire che nessun altro abbia accesso, può accedere alla propria istanza con un'autorizzazione di sicurezza molto limitata. Supponiamo che sia il tuo DB di produzione e quindi si replica al DB di report sullo stesso server ** che viene letto solo per le persone. È meno probabile che, nonostante l'errore utente (admin), gli utenti ottengano accidentalmente l'accesso al DB di produzione, limitando chi è effettivamente in grado di aggiornare i gruppi di sicurezza sull'istanza di produzione a poche persone.
** le buone pratiche dicono di rendere il server di report una macchina separata, ma sto solo facendo questo come esempio.