Configurazione del server di sottoscrizione
Se si ricorda, la replication in Sql Server può essere una replica pull o push. Se si configura la replica push, è necessario configurare il server di sottoscrizione per l’esecuzione di agenti nel server di database principale (MSSQL01 in questo caso). Se si configura la replica pull, il server di sottoscrizione deve essere configurato per eseguire agenti nel secondo computer (MSSQL02), o cioè nel computer in cui verrà creata la replica del database. Configuriamo la replica push e creiamo una nuova sottoscrizione nel primo MS SQL Server (MSSQL01\MSSQLSERVER1) in cui risiede il database master.
In Esplora oggetti passare a Replica , fare clic con il pulsante destro del mouse su Sottoscrizioni locali e scegliere Nuove sottoscrizioni dal menu di scelta rapida.

Viene visualizzata la Creazione guidata Nuova sottoscrizione.
Pubblicazione. Selezionare la pubblicazione per la quale creare una nuova sottoscrizione. Nell’esempio, il nome del server di pubblicazione è MSSQL01\MSSQLSERVER1 e il nome della pubblicazione ( creato in precedenza) è AdvWorks_Pub. Next per continuare ogni passaggio della procedura guidata.
Posizione agente di distribuzione. Per questo passaggio, è necessario selezionare il tipo di replica selezionando sottoscrizione push o pull. Nel nostro esempio, vogliamo che tutti gli agenti vengono eseguiti sul lato server di origine, quindi viene selezionata la prima opzione per creare la sottoscrizione push. Consente di gestire la replica di MS SQL Server in modo centralizzato.

Abbonati. Per impostazione predefinita, il server in cui si esegue la procedura guidata (MSSQL01\MSSQLSERVER1 in questo caso) viene visualizzato come server di sottoscrizione e il database della sottoscrizione non è definito. Aggiungiamo un nuovo sottoscrittore e selezioniamo un database di sottoscrizione situato nel secondo server di database (MSSQL01\MSSQLSERVER2). Scegliere Aggiungi sottoscrittore e scegliere Aggiungi sottoscrittore SQL Server dal menu di scelta rapida.
Nella finestra popup immettere le credenziali per la seconda istanza di MSSQL Server (MSSQL01\MSSQLSERVER2 nel nostro caso) e premere Connetti.

Selezionare la casella di controllo del secondo server in cui verrà archiviata la replica del database (MSSQL02\MSSQLSERVER2) e nel menu a discesa Database sotto sottoscrizione selezionare un nuovo database o un database esistente ripristinato da un backup che verrà utilizzato come replica del database. Nell’esempio, AdventureWorks2016r è stato creato nel secondo server ripristinando il database principale (di origine) AdventureWorks2016 da un backup per avviare la replica. La replica viene avviata replicando solo nuovi dati, ma non copiando l’intero database dopo l’avvio del processo di replica. Pertanto, AdventureWorks2016r viene selezionato come database di sottoscrizione nell’esempio corrente.

Sicurezza agente di distribuzione. Fare clic sul pulsante con tre punti ( … )e selezionare l’utente e altre opzioni di protezione per l’Agente di distribuzione.
Nella finestra Protezione agente di distribuzione aperta impostare l’agente di distribuzione in modo che sia eseguito sull’host MSSQL01 sotto l’account utente mssql. Immettere la password per l’utente di Windows mssql. Selezionare Connetti al server di distribuzione rappresentando l’account di processo e selezionare Connetti al server di sottoscrizione rappresentando le opzioni dell’account di processo. Premere OK per salvare le impostazioni.

Ora le proprietà dell’abbonamento sono impostate.
Pianificazione sincronizzazione. Selezionare l’agente che si trova nel server di distribuzione per l’esecuzione continua per il server di sottoscrizione corrente.
Inizializza sottoscrizioni. Selezionare la casella di controllo Inizializza e nel menu a discesa selezionare immediatamente per quando inizializzare la sottoscrizione. Se necessario, è anche possibile selezionare l’opzione Ottimizzata per la memoria.

Azioni della procedura guidata. Selezionare la casella di controllo superiore per creare le sottosezione alla fine della procedura guidata.
Completare la procedura guidata. È possibile controllare le impostazioni degli abbonamenti e premere Fine per creare l’abbonamento.

Attendere un po’ fino alla creazione della sottoscrizione. Se viene visualizzato lo stato Successo, significa che la sottoscrizione è stata creata correttamente.
Dopo aver configurato la replica in SQL Server, in Esplora oggetti vengono visualizzati tre processi che possono essere visualizzati tramite Agente SQL Server > Processi.

Finalizzazione della configurazione di replica
Dopo aver configurato il server di distribuzione, il server di pubblicazione e il server di sottoscrizione, è possibile controllare lo stato della replica di MS SQL Server.
Nel primo server (MSSQL01\MSSQLSERVER1) avviare il monitoraggio della replica per visualizzare lo stato di replica di MS SQL Server. In SQL Server Management Studio selezionare l’istanza di MS SQL Server (MSSQLSERVER1), passare a Repliche, fare clic con il pulsante destro del mouse su Pubblicazioni locali e scegliere Avvia Monitoraggio replica dal menu di scelta rapida.

C’è un errore log reader agent nel nostro caso. Per visualizzare i dettagli dell’errore, selezionare il database di origine (il server di pubblicazione) nel riquadro sinistro, selezionare la scheda Agenti nel riquadro destro e fare doppio clic sul nome dell’errore.

Nella finestra aperta è possibile visualizzare la cronologia degli agenti e i messaggi di errore. I messaggi di errore sono:
Impossibile eseguire il processo sp_replcmds su MSSQL01\MSSQLSERVER1. Fonte: MSSQl_REPL. Numero errore: MSSQL_REPL20011).
Impossibile eseguire come entità di database perché l’entità “dbo” non esiste, questo tipo di entità non può essere rappresentazione o non si dispone dell’autorizzazione. (Origine: MSSQLServer, Numero errore: 15517).
l secondo messaggio di errore suggerisce che manca un qualche tipo di autorizzazione. Risolviamo questo errore.
Creare una nuova query in MS SQL Management Studio ed eseguire questa query. Nella finestra principale fare clic sul pulsante Nuova query.
Nella sezione query SQL della finestra principale immettere la query seguente:
USE AvventuraWorks2016
GO
EXEC sp_changedbowner 'sa'
GO
Fare clic sul pulsante Esegui.
Passare quindi a MSSQL01\MSSQLSERVER1 > Replica > Pubblicazioni locali > [AdventureWorks2016]: AdvWorks_Pub. Fare clic con il pulsante destro del mouse sul nome della pubblicazione e scegliere Visualizza stato agente snapshot dal menu di scelta rapida. È possibile fare clic su Azione > Aggiorna per aggiornare lo stato e reinizializzare tutte le sottoscrizioni per applicare uno snapshot a ogni sottoscrittore.
Ora tutto è risolto, non vengono visualizzati errori e la replica di MS SQL Server dovrebbe funzionare.