Procedura: Configurazione della replica transazionale peer-to-peer (SQL Server Management Studio)
In questo argomento vengono illustrate la creazione di una topologia di replica transazionale peer-to-peer a tre nodi e la successiva aggiunta di un nodo alla topologia esistente. Nelle procedure seguenti viene fornita una panoramica e ogni passaggio è descritto in modo più dettagliato in questo argomento.
- La topologia iniziale include i server Server A, Server B e Server C. Per la creazione della topologia, si presuppone che nei database peer non sia in corso alcuna attività. Per creare la topologia:
- Configurare la distribuzione in Server A, Server B e Server C.
È possibile utilizzare un server di distribuzione locale o remoto. Se si utilizza un server di distribuzione remoto, è consigliabile evitare di ricorrere allo stesso per tutti i nodi, poiché potrebbe rappresentare un singolo punto di errore. Per ulteriori informazioni sul server di distribuzione, vedere Configurazione della distribuzione. - Creare una pubblicazione in Server A utilizzando la Creazione guidata nuova pubblicazione.
- Attivare la pubblicazione per la replica peer-to-peer utilizzando la finestra di dialogo Proprietà pubblicazione - <Publication>.
- Inizializzare lo schema e i dati in Server B e Server C manualmente o ripristinando il database di Server A in Server B e Server C. Lo schema deve essere identico in tutti i nodi.
- Aggiungere Server B e Server C alla topologia utilizzando la Configurazione guidata topologia peer-to-peer. L'aggiunta di server consente di creare una pubblicazione in ogni server e sottoscrizioni per le pubblicazioni presenti negli altri server della topologia.
In presenza di eventuali colonne Identity nelle tabelle pubblicate, è necessario reinizializzare gli intervalli di valori Identity per le tabelle in Server B e Server C.
- Configurare la distribuzione in Server A, Server B e Server C.
- Dopo avere creato la topologia, viene aggiunto Server D. Per l'aggiunta del nodo alla topologia esistente, si presuppone che l'attività sia in corso e che i tempi di inattività del sistema siano ridotti al minimo. Per aggiungere un nodo a una topologia esistente:
- Configurare la distribuzione in Server D.
- Inizializzare lo schema e i dati in Server D ripristinando il database di Server A in Server D.
- Aggiungere Server D alla topologia utilizzando la Configurazione guidata topologia peer-to-peer. A questo punto, l'aggiunta di Server D consente di creare una pubblicazione in Server D e sottoscrizioni tra Server A e Server D.
In presenza di eventuali colonne Identity nelle tabelle pubblicate, è necessario reinizializzare gli intervalli di valori Identity per le tabelle in Server D.
Server D può quindi inviare le modifiche a tutti i server e riceverne. È tuttavia necessario che tutte le modifiche passino da Server A, che è connesso a Server B e a Server C. Se si desidera aggiungere sottoscrizioni tra Server D e altri nodi, andare al passaggio 4. L'aggiunta di sottoscrizioni non è necessaria, ma garantisce una maggiore tolleranza di errore rispetto a una connessione singola tra Server A e Server D. - Mettere in stato di inattività la topologia. Questa operazione comporta l'interruzione di tutte le modifiche e la sincronizzazione di tutti i server.
- Aggiungere sottoscrizioni tra Server D e altri nodi utilizzando la Configurazione guidata topologia peer-to-peer.
Creazione di una topologia di replica peer-to-peer
Nella serie di procedure seguente viene illustrata la creazione di una topologia peer-to-peer con tre nodi.
[!NOTA] Verificare che Microsoft SQL Server Agent sia in esecuzione in ogni nodo e che l'agente di lettura log e l'agente di distribuzione siano in esecuzione in seguito alla configurazione della topologia. Per informazioni su SQL Server Agent, vedere Avvio di SQL Server Agent. Per informazioni sull'avvio e l'interruzione degli agenti, vedere Procedura: Avvio e interruzione di un agente di replica (SQL Server Management Studio).
Per configurare la distribuzione per ogni nodo
In Microsoft SQL Server Management Studio connettersi a Server A. Il processo descritto di configurazione descritto di seguito deve essere ripetuto per Server B e Server C.
Espandere il nodo del server, fare clic con il pulsante destro del mouse sulla cartella Replica e quindi scegliere Configura distribuzione.
Nella pagina Server di distribuzione della Configurazione guidata distribuzione selezionare un server di distribuzione.
Per utilizzare un server di distribuzione locale, selezionare <ServerName>, che fungerà da server di distribuzione per se stesso. Verranno creati un database di distribuzione e un log. Per utilizzare un server di distribuzione remoto, selezionare Usa il server seguente come server di distribuzione e quindi specificare un server. È necessario che il server sia già configurato come server di distribuzione e che il server di pubblicazione sia abilitato per l'utilizzo del server di distribuzione. Per ulteriori informazioni, vedere Procedura: Abilitazione di un server di pubblicazione remoto in un server di distribuzione (SQL Server Management Studio).
Se si seleziona un server di distribuzione remoto, è necessario immettere una password nella pagina Password amministrativa per le connessioni eseguite da Server A al server di distribuzione. Questa password deve corrispondere alla password specificata quando Server A è stato abilitato come server di pubblicazione nel server di distribuzione remoto.
Nella pagina Cartella snapshot specificare una cartella snapshot.
La cartella snapshot è semplicemente una directory designata come condivisione. Gli agenti che eseguono letture e scritture in questa cartella devono disporre di autorizzazioni sufficienti per accedervi. In questa directory vengono archiviati gli oggetti necessari per la replica nel primo nodo. La directory non viene utilizzata dalla replica peer-to-peer negli altri nodi, ma è comunque necessaria per configurare un server di distribuzione. Per ulteriori informazioni sulle corrette modalità di protezione della cartella, vedere Protezione della cartella snapshot.
Nella pagina Database di distribuzione specificare un nome per il database di distribuzione.
In questo database vengono archiviati i metadati, le transazioni e i dati relativi alla cronologia.
Nella pagina Server di pubblicazione è possibile consentire ad altri server di pubblicazione di utilizzare Server A come server di distribuzione remoto.
Se altri server di pubblicazione sono abilitati per l'utilizzo di Server A come server di distribuzione remoto, è necessario immettere una password nella pagina Password server di distribuzione per le connessioni eseguite dal server di pubblicazione al server di distribuzione.
Nella pagina Azioni procedura guidata è possibile creare uno script delle impostazioni di configurazione. Per ulteriori informazioni, vedere Creazione di script di replica.
Per creare una pubblicazione nel primo nodo
Connettersi a Server A in SQL Server Management Studio e quindi espandere il nodo del server.
Espandere la cartella Replica e quindi fare clic con il pulsante destro del mouse sulla cartella Pubblicazioni locali.
Fare clic su Nuova pubblicazione.
Nella pagina Database di pubblicazione della Creazione guidata nuova pubblicazione selezionare il database che si desidera pubblicare.
Nella pagina Tipo di pubblicazione selezionare Pubblicazione transazionale.
Nella pagina Articoli selezionare gli oggetti del database che si desidera pubblicare.
Fare clic su Proprietà articolo per visualizzare e modificare le proprietà dell'articolo. È consigliabile evitare la modifica delle proprietà seguenti:
- Nome oggetto di destinazione
- Proprietario oggetto di destinazione
- Le opzioni Formato recapito <ACTION>, dove ACTION corrisponde a INSERT, UPDATE o DELETE, non possono essere impostate su Istruzione <ACTION> o su Istruzione <ACTION> senza elenco di colonne.
Non è possibile definire i filtri nella pagina Filtro righe tabella. Il filtro delle pubblicazioni peer-to-peer non è supportato.
Nella pagina Agente snapshot deselezionare Crea snapshot immediatamente.
Nella pagina Protezione agente specificare le credenziali per l'agente snapshot e l'agente di lettura log.
Per ulteriori informazioni sulle autorizzazioni necessarie per ogni agente, vedere Modello di protezione dell'agente di replica e Procedure consigliate per la protezione della replica.
Nella pagina Azioni procedura guidata è possibile creare uno script della pubblicazione. Per ulteriori informazioni, vedere Creazione di script di replica.
Nella pagina Completamento procedura guidata specificare un nome per la pubblicazione. Poiché è necessario che i nomi delle pubblicazioni siano identici in tutta la topologia, nella Configurazione guidata topologia peer-to-peer viene utilizzato lo stesso nome durante la creazione di una pubblicazione in ogni nodo.
Per abilitare la pubblicazione per la replica peer-to-peer
Espandere la cartella Replica in Server A e quindi la cartella Pubblicazioni locali.
Fare clic con il pulsante destro del mouse sulla pubblicazione creata e quindi scegliere Proprietà.
Nella pagina Opzioni sottoscrizione della finestra di dialogo Proprietà pubblicazione - <Publication> selezionare un valore Vero per la proprietà Consenti sottoscrizioni peer-to-peer.
Scegliere OK.
Per inizializzare lo schema e i dati in ogni nodo
I peer possono essere inizializzati in uno dei modi seguenti:
- Manualmente. Copiare lo schema e i dati da Server A a Server B e Server C utilizzando Integration Services (SSIS), gli script o un altro metodo. Verificare che lo schema e i dati in Server B e Server C siano identici a quelli in Server A prima di configurare tali server come peer.
- Tramite il ripristino di un backup del database di pubblicazione incluso in Server A in Server B e Server C. Per ulteriori informazioni sul backup e il ripristino di database, vedere Backup e ripristino di database in SQL Server.
Importante: Durante il ripristino del database, non specificare l'opzione KEEP_REPLICATION (per Transact-SQL) o Mantieni le impostazioni di replica per (SQL Server Management Studio). Il database verrà configurato in modo appropriato dalla replica quando verrà eseguita la Configurazione guidata topologia peer-to-peer.
Per aggiungere nodi alla topologia durante la configurazione iniziale
Fare clic con il pulsante destro del mouse sulla pubblicazione creata in Server A e quindi scegliere Configura topologia peer-to-peer. Potrebbe essere necessario aggiornare il nodo di pubblicazione per visualizzare l'opzione Configura topologia peer-to-peer.
Nella pagina Pubblicazione della Configurazione guidata topologia peer-to-peer sarà selezionata la pubblicazione creata in Server A.
Nella pagina Peer aggiungere Server B e quindi ripetere la procedura per Server C:
- Fare clic su Aggiungi SQL Server.
- Connettersi a Server B nella finestra di dialogo Connetti al server. Server B verrà visualizzato nella colonna Istanza server peer.
- Scegliere il database in Server B dal menu Database peer.
[!NOTA] Verrà visualizzato anche Server A. Poiché, tuttavia, Server A è già stato configurato, evitare di selezionare la casella di controllo corrispondente.
Nella pagina Protezione agente di lettura log specificare le credenziali per l'agente di lettura log in ogni nodo.
Per ulteriori informazioni sulle autorizzazioni necessarie per l'agente di lettura log, vedere Modello di protezione dell'agente di replica e Procedure consigliate per la protezione della replica.
Nella pagina Protezione agente di distribuzione specificare le credenziali per gli agenti di distribuzione che gestiscono le sottoscrizioni per ogni nodo.
Tramite la Configurazione guidata topologia peer-to-peer vengono create sottoscrizioni push (l'agente di distribuzione viene eseguito nel server di distribuzione) con un agente indipendente per ogni sottoscrizione. Poiché in una topologia a tre nodi ogni nodo dispone di una sottoscrizione per gli altri due nodi, in ogni server di distribuzione verranno eseguiti due agenti di distribuzione.
Per ulteriori informazioni sulle autorizzazioni necessarie per ogni agente di distribuzione, vedere Modello di protezione dell'agente di replica e Procedure consigliate per la protezione della replica.
Nella pagina Inizializzazione nuovi peer selezionare Il database peer è stato creato manualmente oppure è stata ripristinata una copia di backup del database della pubblicazione originale che non è stato modificato dopo la creazione della copia di backup.
Completare la procedura guidata. Nella pagina Creazione della topologia peer-to-peer in corso viene visualizzato un avviso indicante che l'agente di lettura log esiste già per Server A. Tale avviso viene visualizzato a scopo informativo e non richiede che venga intrapresa alcuna azione.
Se nelle tabelle pubblicate sono presenti colonne Identity, dopo il ripristino l'intervallo di valori Identity assegnato alle tabelle in Server A verrà utilizzato anche nelle tabelle in Server B e Server C. È necessario utilizzare DBCC CHECKIDENT per reinizializzare le tabelle in Server B e Server C, per garantire che per ogni server venga utilizzato un intervallo diverso.
Per ulteriori informazioni sulla gestione di intervalli di valori Identity, vedere la sezione relativa all'assegnazione degli intervalli per la gestione manuale degli intervalli di valori Identity in Replica di colonne Identity.
Aggiunta di un nodo a una topologia esistente
Nella serie di procedure seguente vengono illustrate le diverse fasi dell'aggiunta di un nuovo nodo alla topologia esistente:
- La fase uno, illustrata dalle prime 3 procedure, implica la connessione parziale di Server D alla topologia tramite la creazione di sottoscrizioni tra Server A e Server D. In questo modo, le modifiche continuano a essere applicate a Server A, Server B e Server C. Le modifiche a Server D possono iniziare in seguito alla creazione di sottoscrizioni tra Server A e Server D.
- La fase due, trattata nelle ultime due procedure, implica la connessione completa di Server D alla topologia tramite la creazione di sottoscrizioni tra Server B e Server D e tra Server C e Server D. Per questa fase è necessario mettere in stato di inattività il sistema.
La fase due non è obbligatoria, ma garantisce una maggiore tolleranza di errore rispetto a una connessione singola tra Server A e Server D.
[!NOTA] Verificare che SQL Server Agent sia in esecuzione in ogni nodo e che l'agente di lettura log e l'agente di distribuzione siano in esecuzione in seguito alla configurazione della topologia. Per informazioni sull'avvio di SQL Server Agent, vedere Avvio di SQL Server Agent. Per informazioni sull'avvio degli agenti di replica, vedere Procedura: Avvio e interruzione di un agente di replica (SQL Server Management Studio).
Per configurare la distribuzione per il nuovo nodo
- Fare riferimento alla procedura illustrata nella sezione precedente.
Per inizializzare il nuovo nodo
- Ripristinare in Server D un backup recente del database di pubblicazione da Server A. È possibile utilizzare anche un backup da Server B o Server C, ma è necessario che il server e il database siano selezionati nella pagina Pubblicazione della Configurazione guidata topologia peer-to-peer quando viene aggiunto Server D.
Per aggiungere il nuovo nodo alla topologia (creando sottoscrizioni tra Server A e Server D)
Fare clic con il pulsante destro del mouse sulla pubblicazione creata in Server A e quindi scegliere Configura topologia peer-to-peer.
Nella pagina Pubblicazione della Configurazione guidata topologia peer-to-peer sarà selezionata la pubblicazione creata in Server A.
Nella pagina Peer aggiungere Server D:
- Fare clic su Aggiungi SQL Server.
- Connettersi a Server D nella finestra di dialogo Connetti al server. Server D verrà visualizzato nella colonna Istanza server peer.
- Scegliere il database in Server D dal menu Database peer.
[!NOTA] Verrà visualizzato anche Server A. Poiché, tuttavia, Server A è già stato configurato, evitare di selezionare la casella di controllo corrispondente.
Nella pagina Protezione agente di lettura log specificare le credenziali per l'agente di lettura log in Server D.
Nella pagina Protezione agente di distribuzione specificare le credenziali per gli agenti di distribuzione in Server A e Server D.
Nella pagina Inizializzazione nuovi peer selezionare È stata ripristinata una copia di backup del database della pubblicazione originale e il database della pubblicazione è stato modificato dopo la creazione della copia di backup.
Se si seleziona questa opzione, qualsiasi modifica non inclusa nel backup da Server A verrà recapitata al database ripristinato in Server D. Quando è stata abilitata la pubblicazione per la replica peer-to-peer, la proprietà di pubblicazione allow_initialize_from_backup è stata impostata su Vero. Tramite la replica si è iniziato immediatamente a tenere traccia delle modifiche nel database di pubblicazione in Server A, per consentire l'aggiornamento di altri peer dopo un ripristino.
Fare clic sul pulsante Sfoglia per passare al backup utilizzato. Tramite la replica, verrà letto il numero di sequenza del file di log (LSN) dal backup. Tutte le modifiche apportate al database di pubblicazione in Server A dotate di un LSN più alto verranno recapitate a Server D.
Completare la procedura guidata.
Per qualsiasi tabella pubblicata che include intervalli di valori Identity, l'intervallo di valori Identity assegnato a ogni tabella in Server A verrà utilizzato anche in Server D. Se non si prevede di mettere in stato di inattività il sistema e di non connettere in modo completo tutti i nodi, assegnare l'intervallo appropriato a ogni tabella in Server D utilizzando la procedura seguente. Se si prevede di connettere in modo completo tutti i nodi, è possibile assegnare gli intervalli dopo avere messo in stato di inattività il sistema:
- Eseguire sp_requestpeerresponse (Transact-SQL) in Server D e recuperare il parametro di output @request_id.
- Per impostazione predefinita, l'agente di distribuzione è impostato per l'esecuzione continua, pertanto i token dovrebbero essere inviati automaticamente a tutti i nodi. Se l'agente di distribuzione non viene eseguito in modalità continua, eseguire l'agente. Per ulteriori informazioni, vedere Programming Replication Agent Executables o Procedura: Avvio e interruzione di un agente di replica (SQL Server Management Studio).
- Eseguire sp_helppeerresponses (Transact-SQL) utilizzando il valore @request_id recuperato nel passaggio b. Attendere fino al momento in cui tutti i nodi indicano di avere ricevuto la richiesta peer.
- Utilizzare DBCC CHECKIDENT per reinizializzare ogni tabella in Server D, in modo da garantire l'utilizzo di un intervallo appropriato.
Per mettere in stato di inattività la topologia
Interrompere qualsiasi attività in tutte le tabelle pubblicate nella topologia peer-to-peer.
Eseguire sp_requestpeerresponse (Transact-SQL) nel database in Server A, Server B, Server C e Server D e recuperare il parametro di output @request_id.
Per impostazione predefinita, l'agente di distribuzione è impostato per l'esecuzione continua, pertanto i token dovrebbero essere inviati automaticamente a tutti i nodi. Se l'agente di distribuzione non viene eseguito in modalità continua, eseguire l'agente. Per ulteriori informazioni, vedere Programming Replication Agent Executables o Procedura: Avvio e interruzione di un agente di replica (SQL Server Management Studio).
Eseguire sp_helppeerresponses (Transact-SQL) utilizzando il valore @request_id recuperato nel passaggio 2. Attendere fino al momento in cui tutti i nodi indicano di avere ricevuto la richiesta peer.
Se necessario, assegnare nuovi intervalli di valori Identity. Sarà quindi possibile connettere completamente la topologia aggiungendo le sottoscrizioni rimanenti.
Per creare ulteriori sottoscrizioni per il nuovo nodo
Fare clic con il pulsante destro del mouse sulla pubblicazione creata in Server A e quindi scegliere Configura topologia peer-to-peer.
Nella pagina Pubblicazione della Configurazione guidata topologia peer-to-peer sarà selezionata la pubblicazione creata in Server A.
Nella pagina Peer aggiungere Server B e quindi ripetere la procedura per Server C e Server D:
- Fare clic su Aggiungi SQL Server.
- Connettersi a Server B nella finestra di dialogo Connetti al server. Server B verrà visualizzato nella colonna Istanza server peer.
- Scegliere il database in Server B dal menu Database peer.
[!NOTA] Verrà visualizzato anche Server A. Poiché, tuttavia, Server A è già stato configurato, evitare di selezionare la casella di controllo corrispondente.
Nella pagina Protezione agente di lettura log specificare le credenziali per l'agente di lettura log in Server B, Server C e Server D.
Nella pagina Protezione agente di distribuzione specificare le credenziali per gli agenti di distribuzione in Server A, Server B, Server C e Server D.
Nella pagina Inizializzazione nuovi peer selezionare Il database peer è stato creato manualmente oppure è stata ripristinata una copia di backup del database della pubblicazione originale che non è stato modificato dopo la creazione della copia di backup. Tutti i nodi dispongono già dei dati e l'impostazione di questa opzione garantisce che vengano stabilite le relazioni di sottoscrizione appropriate tra ogni nodo.
Completare la procedura guidata.
Vedere anche
Concetti
Replica transazionale peer-to-peer
Panoramica degli agenti di replica