Condividi tramite


Scenario: Distribuzione con scalabilità orizzontale

Questo scenario mostra come distribuire un'istanza di Notification Services su più server. In questo scenario, i database si trovano su un server remoto e i componenti del motore vengono scalati in orizzontale sui tre server. Questo scenario di distribuzione si riferisce ad applicazioni di grandi dimensioni che richiedono più server per la formattazione e la distribuzione efficienti di un numero elevato di notifiche.

[!NOTA] Tutte le distribuzioni di Notification Services sono univoche. Utilizzare le procedure di questo argomento come linea guida per lo sviluppo e il test delle proprie istruzioni di distribuzione.

Nella figura riportata di seguito è illustrata la configurazione hardware per questo scenario di distribuzione. Vengono utilizzati quattro server: NS1, NS2, NS3 e SQL1. Il motore Notification Services viene eseguito sui server NS1, NS2 e NS3; NS1 esegue i provider di eventi e i generatori e NS2 e NS3 eseguono i server di distribuzione. SQL1 ospita i database dell'istanza e dell'applicazione.

Configurazione di scalabilità orizzontale

NS1, NS2 e NS3 possono utilizzare una o due unità disco. Il numero di unità in questi server non è determinante. Tuttavia, SQL1 include più unità disco, una per i file di dati Motore di database, i file di registro e tempdb, per migliorare le prestazioni dei database.

Prerequisiti

Prima di distribuire un'istanza di Notification Services, verificare che tutti i prerequisiti siano soddisfatti:

  • In NS1, NS2 e NS3 è già stato installato il sistema operativo, oltre a tutti i service pack e agli aggiornamenti appropriati.
  • In SQL1 sono già stati installati Microsoft Windows e Microsoft Motore di database di SQL Server 2005, oltre a tutti i service pack e agli aggiornamenti appropriati.
  • Queste procedure vengono eseguite con un account che dispone di privilegi amministrativi per il server e che è membro del ruolo predefinito del server sysadmin in SQL Server.
  • L'utente o l'amministratore del dominio hanno creato un account per i servizi Windows Notification Services. Per questo scenario, l'account è DOMAIN\NSEPGen per il server NS1, dove vengono eseguiti i provider di eventi non hosted e i generatori, e DOMAIN\NSDist per i server NS2 e NS3, dove sono eseguiti i server di distribuzione. Creando account separati è possibile ottenere un maggiore controllo sulle autorizzazioni.
  • Sono stati create le condivisioni file necessarie per i dati degli eventi e di notifica, e concesse all'account le autorizzazioni necessarie per accedere a tali, all'account DOMAIN\NSEPGen per la selezione degli eventi e all'account DOMAIN\NSDist per la distribuzione delle notifiche.
  • Il protocollo di rete TCP/IP oppure Named Pipe è attivo su Motore di database. In SQL Server 2005 questi protocolli di rete sono disattivati per impostazione predefinita. Per ulteriori informazioni, vedere Configurazione superficie di attacco di SQL Server.

Panoramica della distribuzione

In questo scenario di distribuzione, vengono eseguite le attività seguenti su NS1, il server sul quale viene eseguito il motore di Notification Services:

  1. Installare Notification Services.
  2. Concedere autorizzazioni di Windows all'account NSEPGen.
  3. Creare e attivare l'istanza di Notification Services.
  4. Registrare l'istanza di Notification Services, che crea il servizio Windows che esegue i componenti del motore di Notification Services.
  5. Avviare l'istanza di Notification Services quando si è pronti per avviare la generazione delle notifiche.

Vengono eseguite le attività seguenti su NS2 e NS3, sui quali sono in esecuzione i componenti aggiuntivi del motore di Notification Services:

  1. Installare Notification Services.
  2. Concedere autorizzazioni di Windows all'account NSDist.
  3. Registrare l'istanza di Notification Services, che crea il servizio Windows che esegue i componenti del motore di Notification Services.
  4. Avviare l'istanza di Notification Services quando si è pronti per avviare la generazione delle notifiche.

Vengono svolte le attività seguenti su SQL1, il server che ospita i database:

  • Concedere le autorizzazioni per i database all'account di Windows.

    [!NOTA] Notification Services supporta inoltre l'autenticazione di SQL Server. Se possibile, utilizzare l'autenticazione di Windows.

L'istruzione seguente utilizza il prompt dei comandi di Notification Services per illustrare la creazione di script per la distribuzione. È inoltre possibile distribuire un'istanza di Notification Services utilizzando SQL Server Management Studio. Per istruzioni di distribuzione a server singolo che utilizzano SQL Server Management Studio, vedere Esempi di SQL Server Notification Services.

Attività per NS1

Passaggio 1: installazione del software

  1. Installare Notification Services. È possibile installare componenti aggiuntivi, ma essi non sono necessari per i passaggi di questo scenario.

    Per ulteriori informazioni sull'installazione dei componenti, vedere Installazione di SQL Server Notification Services.

Passaggio 2: concessione di autorizzazioni di Windows all'account DOMAIN\NSEPGen

  1. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft SQL Server 2005, scegliere Notification Services e quindi fare clic su Prompt dei comandi di Notification Services per aprire una finestra del prompt dei comandi di Notification Services.

  2. Aggiungere l'account DOMAIN\NSEPGen al gruppo Users locale. Al prompt dei comandi digitare il comando seguente net localgroup:

    net localgroup users DOMAIN\NSEPGen /add

    Per ulteriori informazioni sull'aggiunta di account a un gruppo locale, vedere la documentazione di Windows.

Passaggio 3: creazione e attivazione dell'istanza di Notification Services

  1. Al prompt dei comandi digitare il comando seguente per creare i database dell'istanza e dell'applicazione:

    nscontrol create -in "Path\ICFName"

    In base all'ICF, potrebbe essere necessario includere argomenti e parametri aggiuntivi al prompt del comandi.

  2. Digitare il comando seguente per attivare l'istanza:

    nscontrol enable -nameinstanceName-serverdatabaseServer

    I componenti del motore si trovano in stato di Attivazione in sospeso in quanto il motore di Notification Services non è stato installato e avviato.

    Se si attiva l'istanza dopo averla registrata, è possibile omettere l'argomento -server.

Passaggio 4: registrazione dell'istanza di Notification Services

  1. Nella finestra del prompt dei comandi aperta digitare il comando seguente:

    nscontrol register -nameinstanceName-serverdatabaseServer-service

        -serviceusername DOMAIN\NSEPGen

        -servicepassword"password"

    Quando il comando è completato, un servizio Windows denominato NS$instanceName sarà presente sul computer locale.

[!NOTA] Se si utilizza autenticazione di SQL Server, rendere disponibile un nome di accesso e una password di autenticazione di SQL Server quando si registra l'istanza, e quindi concedere le autorizzazioni all'account di accesso.

Procedure per NS2 e NS3

In questo scenario basato sulla scalabilità orizzontale, NS2 e NS3 eseguono i server di distribuzione. Su questi server è necessario registrare l'istanza, che crea il servizio Windows. Prima di registrare l'istanza, è necessario installare Notification Services e concedere le autorizzazioni di Windows all'account del servizio.

Passaggio 1: installazione del software

  1. Installare Notification Services. È possibile installare componenti aggiuntivi, ma essi non sono necessari per i passaggi di questo scenario.

    Per ulteriori informazioni sull'installazione dei componenti, vedere Installazione di SQL Server Notification Services.

Passaggio 2: concessione di autorizzazioni di Windows all'account DOMAIN\NSDist

  1. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft SQL Server 2005, scegliere Notification Services e quindi fare clic su Prompt dei comandi di Notification Services per aprire una finestra del prompt dei comandi di Notification Services.

  2. Aggiungere l'account DOMAIN\NSDist al gruppo Users locale. Al prompt dei comandi digitare il comando seguente net localgroup:

    net localgroup users DOMAIN\NSDist /add

    Per ulteriori informazioni sull'aggiunta di account a un gruppo locale, vedere la documentazione di Windows.

Passaggio 3: registrazione dell'istanza di Notification Services

  1. Nella finestra del prompt dei comandi aperta digitare il comando seguente:

    nscontrol register -nameinstanceName-serverdatabaseServer-service

        -serviceusername DOMAIN\NSDist

        -servicepassword"[password]"

    Quando il comando è completato, un servizio Windows denominato NS$instanceName sarà presente sul computer locale.

[!NOTA] Se si utilizza autenticazione di SQL Server, rendere disponibile un nome di accesso e una password di autenticazione di SQL Server quando si registra l'istanza, e quindi concedere le autorizzazioni all'account di accesso.

Procedure per SQL1

È necessario concedere autorizzazioni di database e di SQL Server per il motore di Notification Services. Se sono presenti componenti di workstation installati su NS1, NS2 o NS3, è possibile eseguire l'attività solo su uno di tali server, rimuovendo la necessità di accedere a SQL1.

Concessione di autorizzazioni SQL Server e di database

  1. Aprire una finestra del prompt dei comandi.

  2. Digitare il comando seguente per creare account di accesso SQL Server per gli account DOMAIN\NSEPGen e DOMAIN\NSDist:

    sqlcmd -E -S databaseServer -Q "CREATE LOGIN [DOMAIN\NSEPGen] FROM WINDOWS;"

    sqlcmd -E -S databaseServer -Q "CREATE LOGIN [DOMAIN\NSDist] FROM WINDOWS;"

  3. Al prompt dei comandi digitare il comando seguente per creare utenti DOMAIN\NSEPGen e DOMAIN\NSDist nel database dell'istanza e aggiungere l'utente DOMAIN\NSEPGen ai ruoli del database NSEventProvider e NSGenerator e l'utente DOMAIN\NSDist al ruolo del database NSDistributor:

    sqlcmd -E -SdatabaseServer-Q "USEinstanceDatabase;

    **    EXEC CREATE USER [DOMAIN\NSEPGen];**

    **    EXEC CREATE USER [DOMAIN\NSDist];**

    **    EXEC sp_addrolemember N'NSEventProvider', N'DOMAIN\DOMAIN\NSEPGen';"**

    **    EXEC sp_addrolemember N'NSGenerator', N'DOMAIN\DOMAIN\NSEPGen';"**

    **    EXEC sp_addrolemember N'NSDistributor', N'DOMAIN\DOMAIN\Dist';"**

  4. Se sono presenti database dell'applicazione separati, digitare il comando seguente per creare utenti DOMAIN\NSEPGen e DOMAIN\NSDist nel database dell'applicazione e aggiungere l'utente DOMAIN\NSEPGen ai ruoli del database NSEventProvider e NSGenerator e l'utente DOMAIN\NSDist al ruolo del database NSDistributor:

    sqlcmd -E -S databaseServer -Q "USE applicationDatabase**;**

    **    EXEC CREATE USER [DOMAIN\NSEPGen];**

    **    EXEC CREATE USER [DOMAIN\NSDist];**

    **    EXEC sp_addrolemember N'NSEventProvider', N'DOMAIN\DOMAIN\NSEPGen';"**

    **    EXEC sp_addrolemember N'NSGenerator', N'DOMAIN\DOMAIN\NSEPGen';"**

    **    EXEC sp_addrolemember N'NSDistributor', N'DOMAIN\DOMAIN\Dist';"**

    Se l'istanza ospita più applicazioni, ripetere il passaggio per ogni database delle applicazioni.

È stata eseguita la distribuzione dell'istanza di Notification Services. Dovrebbe essere possibile caricare i dati relativi al sottoscrittore e alla sottoscrizione e inoltrare gli eventi alle applicazioni. Notification Services non elabora i dati fino all'avvio del servizio Windows. L'avvio del servizio Windows viene illustrato di seguito.

Avvio dell'istanza di Notification Services

Quando si è pronti perché l'istanza inizi la generazione delle notifiche, avviare il servizio Windows su tutti i server che eseguono i componenti del motore. Per questo scenario, aprire una finestra del prompt dei comandi sui server NS1, NS2 e NS3 e digitare il comando seguente:

**net start NS$**instance_name

Per ulteriori informazioni, vedere Avvio e interruzione di istanze di Notification Services.

È possibile avviare tutti i servizi contemporaneamente utilizzando SQL Server Management Studio. Per ulteriori informazioni, vedere Procedura: Avvio di un'istanza di Notification Services (SQL Server Management Studio).

Risoluzione dei problemi

Se l'applicazione non genera notifiche, controllare lo stato dell'istanza eseguendo il comando seguente al prompt dei comandi di Notification Services:

nscontrol status-name instanceName

Verificare che tutti i componenti siano in esecuzione sui server previsti e siano in stato attivato. Per ulteriori informazioni, vedere Visualizzazione dello stato delle istanze, delle applicazioni e dei componenti.

Verificare inoltre l'eventuale presenza di errori nel registro delle applicazioni di Windows. Per ulteriori informazioni, vedere Risoluzione dei problemi di Notification Services.

Vedere anche

Concetti

Distribuzione di un'istanza di Notification Services
Distribuzione di un provider di eventi non hosted
Distribuzione di un'interfaccia di gestione delle sottoscrizioni

Altre risorse

Comando nscontrol create
Comando nscontrol enable
Comando nscontrol register
Utilità sqlcmd

Guida in linea e informazioni

Assistenza su SQL Server 2005