Esercitazione: Configurare la replica tra due server sempre connessi (replica transazionale)

Si applica a:SQL Server

La replica transazionale è una buona soluzione al problema legato al trasferimento dei dati tra server con connessione continua. Con la procedura guidata di replica è possibile eseguire in modo semplificato i passaggi necessari per configurare e amministrare una topologia di replica.

Questa esercitazione illustra come configurare una topologia di replica transazionale per server con connessione continua. Per altre informazioni sul funzionamento della replica transazionale, vedere la panoramica della replica transazionale.

Contenuto dell'esercitazione

Questa esercitazione insegna come pubblicare dati da un database all'altro tramite la replica transazionale.

La presente esercitazione include informazioni su come:

  • Creare un server di pubblicazione tramite la replica transazionale.
  • Creare un sottoscrittore per il server di pubblicazione transazionale.
  • Convalidare la sottoscrizione e misurare la latenza.

Prerequisiti

Questa esercitazione è destinata agli utenti che hanno familiarità con le operazioni di base relative ai database ma con un'esperienza limitata delle operazioni di replica. Prima di iniziare questa esercitazione, è necessario completare Esercitazione: Preparare SQL Server per la replica.

Per completare questa esercitazione, sono necessari SQL Server, SQL Server Management Studio (SSMS) e un database AdventureWorks:

  • Nel server di pubblicazione (origine) installare:

    • Una qualsiasi edizione di SQL Server, ad eccezione di SQL Server Express e SQL Server Compact. Questa edizioni non possono fungere da server di pubblicazione per la replica.
    • Database di esempio AdventureWorks2022 . Per una maggiore sicurezza, i database di esempio non vengono installati per impostazione predefinita.
  • Nel server sottoscrittore (destinazione) installare qualsiasi edizione di SQL Server, ad eccezione di SQL Server Compact. SQL Server Compact non può essere un sottoscrittore nella replica transazionale.

  • Installare SQL Server Management Studio.

  • Installare SQL Server 2017 Developer Edition.

  • Scaricare il database di esempio AdventureWorks. Per istruzioni sul ripristino di un database in SSMS, vedere Ripristino di un database.

Nota

  • La replica non è supportata nelle istanze di SQL Server con versioni la cui distanza sia maggiore di 2. Per altre informazioni, vedere Supported SQL Server Versions in Replication Topology (Versioni di SQL Server supportate nella topologia di replica).
  • In SQL Server Management Studio, devi connetterti al server di pubblicazione e al Sottoscrittore usando un account di accesso che sia membro del ruolo predefinito del server sysadmin. Per altre informazioni su questo ruolo, vedere Ruoli a livello di server.

Tempo stimato per il completamento dell'esercitazione: 60 minuti

Configurare il server di pubblicazione per la replica transazionale

In questa sezione viene creata una pubblicazione transazionale usando SQL Server Management Studio per pubblicare un sottoinsieme filtrato della tabella Product nel database di esempio AdventureWorks2022. Viene anche aggiunto l'account di accesso di SQL Server usato dall'agente di distribuzione all'elenco di accesso alla pubblicazione.

Creare una pubblicazione e definire articoli

  1. Connettiti al server di pubblicazione in SQL Server Management Studio e poi espandi il nodo server.

  2. Fare clic con il pulsante destro del mouse su SQL Server Agent e selezionare Avvia. SQL Server Agent deve essere in esecuzione prima della creazione della pubblicazione. Se con questa operazione l'agente non si avvia, è necessario avviarlo manualmente da Gestione configurazione SQL Server.

  3. Espandere la cartella Replica, fare clic con il pulsante destro del mouse sulla cartella Pubblicazioni locali e selezionare Nuova Pubblicazione. Questa operazione avvia la Creazione guidata nuova pubblicazione:

    Selections for starting the New Publication Wizard

  4. Nella pagina Database di pubblicazione selezionare AdventureWorks2022 e quindi Avanti.

  5. Nella pagina Tipo di pubblicazione selezionare Pubblicazione transazionale e quindi Avanti:

  6. Nella pagina Articoli espandere il nodo Tabelle e selezionare la casella di controllo Product. Espandere quindi Product e deselezionare le caselle di controllo accanto a ListPrice e a StandardCost. Selezionare Avanti.

  7. Nella pagina Filtro righe tabella selezionare Aggiungi.

  8. Nella finestra di dialogo Aggiungi filtro selezionare la colonna SafetyStockLevel. Selezionare la freccia a destra per aggiungere la colonna alla clausola WHERE in Istruzione per il filtro nella query di filtro. Digitare quindi manualmente il modificatore della clausola WHERE come segue:

    WHERE [SafetyStockLevel] < 500  
    

  9. Seleziona OK e quindi Avanti.

  10. Selezionare la casella di controllo Crea uno snapshot immediatamente e mantieni lo snapshot disponibile per l'inizializzazione delle sottoscrizioni e selezionare Avanti:

  11. Nella pagina Sicurezza agente deselezionare la casella di controllo Usa le impostazioni di sicurezza dell'agente snapshot.

    Selezionare Impostazioni di sicurezza per l'agente snapshot. Immetti <Nome_server_pubblicazione>\repl_snapshot nella casella Account processo, specifica la password per l'account e quindi seleziona OK.

  12. Ripeti il passaggio precedente per impostare <Nome_server_pubblicazione>\repl_logreader come account di processo per l'agente di lettura log. Selezionare OK.

  13. Nella pagina Completamento procedura guidata digitare AdvWorksProductTrans nella casella Nome pubblicazione e selezionare Fine:

  14. Dopo la creazione della pubblicazione, selezionare Chiudi per completare la procedura guidata.

Se quando si tenta di creare la pubblicazione SQL Server Agent non è in esecuzione, può essere visualizzato l'errore riportato di seguito, che indica che la pubblicazione è stata creata ma non è stato possibile avviare l'agente di snapshot. In questo caso, è necessario avviare SQL Server Agent e quindi avviare manualmente l'agente di snapshot. Le istruzioni sono descritte nella prossima sezione.

Warning that the Snapshot Agent has failed to start

Visualizzare lo stato della generazione dello snapshot

  1. Connettiti al server di pubblicazione in SQL Server Management Studio, espandi il nodo server e quindi la cartella Replica.

  2. Nella cartella Pubblicazioni locali fare clic con il pulsante destro del mouse su AdvWorksProductTrans e quindi selezionare Visualizza stato agente snapshot:
    Command on the shortcut menu for viewing the Snapshot Agent status

  3. Verrà visualizzato lo stato corrente del processo dell'agente di snapshot per la pubblicazione. Verificare che il processo snapshot abbia avuto esito positivo prima di passare alla sezione successiva.

Se al momento della creazione della pubblicazione SQL Server Agent non era in esecuzione, l'agente di snapshot risulta mai eseguito in Visualizza stato agente snapshot per la pubblicazione. In questo caso, selezionare Avvia per avviare l'agente di snapshot:

Se a questo punto viene visualizzato un errore, vedere Troubleshooting Snapshot Agent error (Risoluzione dei problemi dell'agente di snapshot).

Aggiungere l'account di accesso dell'agente di distribuzione all'elenco di accesso alla pubblicazione

  1. Connettiti al server di pubblicazione in SQL Server Management Studio, espandi il nodo server e quindi la cartella Replica.

  2. Nella cartella Pubblicazioni locali fare clic con il pulsante destro del mouse su AdvWorksProductTrans e quindi selezionare Proprietà. Verrà visualizzata la finestra di dialogo Proprietà pubblicazione.

    a. Selezionare la pagina Elenco di accesso alla pubblicazione e selezionare Aggiungi.
    b. Nella finestra di dialogo Aggiungi accesso alla pubblicazione seleziona <Nome_server_pubblicazione>\repl_distribution e seleziona OK.

    Selections for adding a login to the publication access list

Per altre informazioni, vedere Concetti di base relativi alla programmazione della replica.

Creare una sottoscrizione per la pubblicazione transazionale

In questa sezione si aggiunge un sottoscrittore alla pubblicazione creata in precedenza. Questa esercitazione usa un sottoscrittore remoto (NODE2\SQL2016), ma è anche possibile aggiungere localmente una sottoscrizione al server di pubblicazione.

Creare la sottoscrizione

  1. Connettiti al server di pubblicazione in SQL Server Management Studio, espandi il nodo server e quindi la cartella Replica.

  2. Nella cartella Pubblicazioni locali fare clic con il pulsante destro del mouse sulla pubblicazione AdvWorksProductTrans e quindi selezionare Nuove sottoscrizioni. Verrà avviata la Creazione guidata nuova sottoscrizione:

    Selections to start the New Subscription Wizard

  3. Nella pagina Pubblicazione selezionare AdvWorksProductTrans e quindi selezionare Avanti:

  4. Nella pagina Posizione in cui eseguire l'agente di distribuzione selezionare Esegui tutti gli agenti nel database di distribuzione e quindi selezionare Avanti. Per altre informazioni sulle sottoscrizioni pull e push, vedere Sottoscrivere le pubblicazioni.

  5. Nella pagina Sottoscrittori, se il nome dell'istanza del sottoscrittore non è visualizzato, selezionare Aggiungi sottoscrittore e quindi selezionare Aggiungi Sottoscrittore SQL Server dall'elenco a discesa. Questa operazione consente di aprire la finestra di dialogo Connetti al server. Immettere il nome dell'istanza del sottoscrittore e quindi selezionare Connetti.

    Dopo l'aggiunta del sottoscrittore, selezionare la casella accanto al nome dell'istanza di questo e quindi selezionare Nuovo database in Database di sottoscrizione.

  6. Verrà visualizzata la finestra di dialogo Nuovo database. Nella casella Nome database immettere ProductReplica, selezionare OK e quindi selezionare Avanti:

    Entering a name for the subscription database

  7. Nella pagina Sicurezza agente di distribuzione selezionare il pulsante con i puntini di sospensione (...). Immetti <Nome_server_pubblicazione>\repl_distribution nella casella Account processo, immetti la password per l'account, seleziona OK, e poi seleziona Avanti.

    Distribution account information in the

  8. Selezionare Fine per accettare i valori predefiniti nelle pagine rimanenti e completare la procedura guidata.

Impostare le autorizzazioni per il database nel sottoscrittore

  1. Connettiti al sottoscrittore in SQL Server Management Studio. Espandere la cartella Sicurezza, fare clic con il pulsante destro del mouse su Account di accesso e quindi scegliere Nuovo account accesso.

    a. Nella pagina Generale, in Nome account di accesso, seleziona Cerca e aggiungi l'account di accesso per <Nome_computer_sottoscrittore>\repl_distribution.

    b. Nella pagina Mapping utenti concedere all'account di accesso db_owner l'appartenenza per il database ProductReplica.

    Selections for configuring the login on the subscriber

  2. Selezionare OK per chiudere la finestra di dialogo Nuovo account accesso.

Visualizzare lo stato di sincronizzazione della sottoscrizione

  1. Connetti il server di pubblicazione in SQL Server Management Studio. Espandere il nodo server e la cartella Replica.

  2. Nella cartella Pubblicazioni locali espandere la pubblicazione AdvWorksProductTrans, fare clic con il pulsante destro del mouse sulla sottoscrizione nel database ProductReplica e quindi selezionare Visualizza stato sincronizzazione. Verrà visualizzato lo stato corrente della sincronizzazione della sottoscrizione:

    Selections for opening the

  3. Se la sottoscrizione non è visualizzata in AdvWorksProductTrans, premere F5 per aggiornare l'elenco.

Per altre informazioni, vedi:

Misurare la latenza di replica

In questa sezione vengono usati token di traccia per verificare che le modifiche vengano replicate nel sottoscrittore e per determinare la latenza. La latenza è il tempo necessario perché una modifica effettuata nel server di pubblicazione sia visibile nel sottoscrittore.

  1. Connetti il server di pubblicazione in SQL Server Management Studio. Espandere il nodo server, fare clic con il pulsante destro del mouse sulla cartella Replica e quindi selezionare Avvia Monitoraggio replica:

  2. Espandere un gruppo di server di pubblicazione nel riquadro sinistro, espandere l'istanza del server di pubblicazione e quindi selezionare la pubblicazione AdvWorksProductTrans.

    a. Selezionare la scheda Token di traccia.
    b. Selezionare Inserisci utilità di traccia.
    c. Visualizzare il tempo trascorso per il token di traccia nelle colonne Dal server di pubblicazione al server di distribuzione, Dal server di distribuzione al Sottoscrittoree Latenza totale. Il valore In sospeso indica che il token non ha raggiunto il punto specificato.

    Information for the tracer token

Per altre informazioni, vedi:

Passaggi successivi

È stata eseguita la configurazione sia del server di pubblicazione che del sottoscrittore per la replica transazionale. È ora possibile inserire, aggiornare ed eliminare dati nella tabella Product nel server di pubblicazione. È anche possibile eseguire una query nella tabella Product dal sottoscrittore per visualizzare le modifiche replicate.

Il prossimo articolo illustrerà come configurare la replica di tipo merge: