Esercitazione: Preparare SQL Server per la replica: server di pubblicazione, server di distribuzione, sottoscrittore

Si applica a: SQL Server

È importante pianificare la sicurezza prima di configurare la topologia di replica. In questa esercitazione viene illustrato come proteggere in modo più sicuro una topologia di replica. Viene anche illustrato come configurare la distribuzione, il primo passaggio della replica dei dati. È necessario completare questa esercitazione prima delle altre esercitazioni sulla replica.

Nota

Per eseguire la replica dei dati tra server in modo protetto, è consigliabile seguire tutte le indicazioni riportate in Procedure consigliate per la sicurezza della replica.

Questa esercitazione illustra come preparare un server in modo che la replica possa essere eseguita in modo protetto con privilegi minimi.

In questa esercitazione apprenderai a:

  • Creare account di Windows per la replica.
  • Preparare la cartella per lo snapshot.
  • Configurare la distribuzione.

Prerequisiti

Questa esercitazione è destinata agli utenti che hanno familiarità con le operazioni fondamentali relative ai database ma con un'esperienza limitata delle operazioni di 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. Queste edizioni non possono essere server di pubblicazione di replica.

    • Database di esempio AdventureWorks2022 . Per migliorare la 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 Developer Edition.

  • Scaricare il database di esempio AdventureWorks. Per istruzioni sul ripristino di un database in SSMS, vedere Ripristinare un backup del database con SSMS.

Nota

  • La replica non è supportata nelle istanze di SQL Server che sono diverse da due versioni. Per altre informazioni, vedere Compatibilità con le versioni precedenti della 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: 30 minuti

Creare account di Windows per la replica

In questa sezione vengono creati gli account di Windows per l'esecuzione degli agenti di replica. Verrà creato un account di Windows separato nel server locale per gli agenti seguenti:

Agente Ufficio Account name
Agente snapshot Publisher <nome_computer>\repl_snapshot
Agente di lettura log Publisher <nome_computer>\repl_logreader
Agente di distribuzione Server di pubblicazione e sottoscrittore <nome_computer>\repl_distribution
Agente di merge Server di pubblicazione e sottoscrittore <nome_computer>\repl_merge

Nota

Nelle esercitazioni sulla replica il server di pubblicazione e il server di distribuzione condividono la stessa istanza (NODE1\SQL2016) di SQL Server. L'istanza del sottoscrittore (NODE2\SQL2016) è remota. Il server di pubblicazione e il sottoscrittore possono condividere la stessa istanza di SQL Server, ma non è un requisito. Se il server di pubblicazione e il sottoscrittore condividono la stessa istanza, i passaggi usati per creare account nel sottoscrittore non sono necessari.

Creare account di Windows locali per gli agenti di replica nel server di pubblicazione

  1. Nel server di pubblicazione fare clic su Gestione computer in Strumenti di amministrazione nel Pannello di controllo.

  2. In Utilità di sistemaespandere Utenti e gruppi locali.

  3. Fare clic con il pulsante destro del mouse su Utentie quindi selezionare Nuovo utente.

  4. Immettere repl_snapshot nella casella Nome utente, specificare la password e altre informazioni pertinenti e quindi selezionare Crea per creare l'account repl_snapshot:

    Screenshot della finestra di dialogo

  5. Ripetere il passaggio precedente per creare gli account repl_logreader, repl_distribution e repl_merge:

    Screenshot dell'elenco degli utenti della replica.

  6. Selezionare Chiudi.

Creare account di Windows locali per gli agenti di replica nel sottoscrittore

  1. Nel sottoscrittore aprire Gestione computer in Strumenti di amministrazione nel Pannello di controllo.

  2. In Utilità di sistemaespandere Utenti e gruppi locali.

  3. Fare clic con il pulsante destro del mouse su Utentie quindi selezionare Nuovo utente.

  4. Immettere repl_distribution nella casella Nome utente, specificare la password e altre informazioni pertinenti e quindi selezionare Crea per creare l'account repl_distribution.

  5. Ripetere il passaggio precedente per creare l'account repl_merge.

  6. Selezionare Chiudi.

Per altre informazioni, vedere Panoramica degli agenti di replica.

Preparare la cartella per lo snapshot

In questa sezione viene configurata la cartella usata per la creazione e l'archiviazione dello snapshot di pubblicazione.

Creare una condivisione per la cartella per lo snapshot e assegnare le autorizzazioni

  1. In Esplora file, individua la cartella di dati di SQL Server. Il percorso predefinito è C:\Programmi\Microsoft SQL Server\MSSQL.X\MSSQL\Data.

  2. Creare una nuova cartella denominata repldata.

  3. Fare clic con il pulsante destro del mouse su questa cartella e selezionare Proprietà.

    1. Nella scheda Condivisione della finestra di dialogo Proprietà di repldata selezionare Condivisione avanzata.

    2. Nella finestra di dialogo Condivisione avanzata selezionare Condividi cartella e quindi selezionare Autorizzazioni.

    Screenshot delle selezioni per la condivisione della cartella repldata.

  4. Nella finestra di dialogo Autorizzazioni per repldata selezionare Aggiungi. Nella casella Select User, Computers, Service Account, or Groups (Seleziona utenti, computer, account del servizio o gruppi) digita il nome dell'account dell'agente di snapshot creato in precedenza nel formato <Nome_server_pubblicazione>\repl_snapshot. Selezionare Verifica nomi e quindi selezionare OK.

    Screenshot delle selezioni per aggiungere autorizzazioni di condivisione.

  5. Ripeti il passaggio 6 per aggiungere gli altri due account creati in precedenza: <Nome_server_pubblicazione>\repl_merge e <Nome_server_pubblicazione>\repl_distribution.

  6. Dopo aver aggiunto i tre account, assegnare le autorizzazioni seguenti:

    • repl_distribution: Lettura
    • repl_merge: Lettura
    • repl_snapshot: Controllo completo

    Screenshot delle autorizzazioni condivise per ogni account.

  7. Dopo aver configurato correttamente le autorizzazioni di condivisione, selezionare OK per chiudere la finestra di dialogo Autorizzazioni per repldata. Selezionare OK per chiudere la finestra di dialogo Condivisione avanzata.

  8. Nella finestra di dialogo Proprietà repldata selezionare la scheda Sicurezza e selezionare Modifica:

    Screenshot del pulsante

  9. Nella finestra di dialogo Autorizzazioni per repldata selezionare Aggiungi. Nella casella Select Users, Computers, Service Accounts, or Groups (Seleziona utenti, computer, account del servizio o gruppi) digita il nome dell'account dell'agente di snapshot creato in precedenza nel formato <Nome_server_pubblicazione>\repl_snapshot. Selezionare Verifica nomi e quindi selezionare OK.

    Screenshot delle selezioni per aggiungere autorizzazioni di sicurezza.

  10. Ripeti il passaggio precedente per aggiungere le autorizzazioni per l'agente di distribuzione nel formato <Nome_server_pubblicazione>\repl_distribution e per l'agente di merge nel formato <Nome_server_pubblicazione>\repl_merge.

  11. Verificare che siano state concesse le autorizzazioni seguenti:

    • repl_distribution: Lettura
    • repl_merge: Lettura
    • repl_snapshot: Controllo completo

    Screenshot delle autorizzazioni utente per i dati di replica.

  12. Selezionare di nuovo la scheda Condivisione e prendere nota del percorso di rete per la condivisione. Questo percorso è necessario in un secondo momento quando si configura la cartella snapshot.

    Screenshot del percorso di rete nella scheda

  13. Selezionare OK per chiudere la finestra di dialogo Proprietà di repldata.

Per altre informazioni, vedere Proteggere la cartella snapshot.

Configurare la distribuzione

In questa sezione viene configurata la distribuzione nel server di pubblicazione e vengono impostate le autorizzazioni necessarie per i database di pubblicazione e di distribuzione. Se il server di distribuzione è già stato configurato, è necessario disabilitare la pubblicazione e la distribuzione prima di iniziare questa sezione. Non disabilitare la pubblicazione e la distribuzione se è necessario mantenere una topologia di replica esistente, in particolare nell'ambiente di produzione.

In questa esercitazione non è prevista la configurazione del server di pubblicazione con un server di distribuzione remoto.

Configurare la distribuzione nel server di pubblicazione

  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 sulla cartella Replica e selezionare Configura distribuzione:

    Screenshot del comando

    • Se ci si connette a SQL Server usando localhost anziché il nome effettivo del server, viene visualizzato un avviso che indica che SQL Server non può connettersi a localhost o indirizzo IP. Selezionare OK nella finestra di dialogo dell'avviso. Nella finestra di dialogo Connetti al server modificare Nome server sostituendo localhost o indirizzo IP con il nome del server. Selezionare Connetti.

    • Esiste attualmente un problema noto con SQL Server Management Studio (SSMS) 18.0 (e versioni successive) in cui non viene visualizzato un messaggio di avviso quando ci si connette al server di distribuzione con l'indirizzo IP, ma non è ancora valido. Per la connessione al database di distribuzione deve essere usato il nome effettivo del server.

    Nota

    Il nome del server può essere specificato come <Hostname>,<PortNumber> per un'istanza predefinita o <Hostname>\<InstanceName>,<PortNumber> per un'istanza denominata. Specificare il numero di porta per la connessione quando SQL Server viene distribuito in Linux o Windows con una porta personalizzata e il servizio browser è disabilitato. L'uso di numeri di porta personalizzati per il server di distribuzione remoto si applica a SQL Server 2019 (15.x) e versioni successive.

    Verrà avviata la Configurazione guidata distribuzione.

  3. Nella pagina Server di distribuzione, seleziona <'NomeServer'> che fungerà da database di distribuzione per sé stesso. Verranno creati un database di distribuzione e un log. Quindi seleziona Avanti.

    Screenshot dell'opzione per impostare il server come server di distribuzione.

  4. Se SQL Server Agent non è in esecuzione, nella pagina iniziale di SQL Server Agent selezionare Sì, configurare il servizio SQL Server Agent per l'avvio automatico. Selezionare Avanti.

  5. Immetti il percorso \\<Nome_server_pubblicazione>\repldata nella casella di testo Cartella snapshot e poi seleziona Avanti. Questo percorso deve corrispondere a quanto visto in precedenza in Percorso di rete nella cartella delle proprietà di repldata dopo la configurazione delle proprietà della condivisione.

    Screenshot del confronto dei percorsi di rete nella finestra di dialogo

  6. Accettare i valori predefiniti nella pagine seguenti della procedura guidata.

    Screenshot dell'ultima pagina della procedura guidata.

  7. Selezionare Fine per abilitare la distribuzione.

Durante la configurazione del server di distribuzione può essere visualizzato l'errore seguente, Indica che l'account usato per avviare l'account di SQL Server Agent non è un amministratore del sistema. È necessario avviare manualmente SQL Server Agent, concedere tali autorizzazioni all'account esistente o modificare l'account usato da SQL Server Agent.

Screenshot del messaggio di errore per la configurazione di SQL Server Agent.

Se l'istanza di SQL Server Management Studio è in esecuzione con diritti amministrativi, è possibile avviare SQL Server Agent manualmente dall'interno di SSMS:

Screenshot della selezione di

Nota

Se SQL Server Agent non sembra avviarsi, fare clic con il pulsante destro del mouse su SQL Server Agent in SSMS e quindi scegliere Aggiorna. Se è ancora arrestato, avviarlo manualmente da Gestione configurazione SQL Server.

Impostare le autorizzazioni per il database

  1. In SQL Server Management Studio, espandi la cartella Sicurezza, fai clic con il pulsante destro del mouse su Account di accesso e poi seleziona Nuovo account di accesso.

    Screenshot del comando

  2. Nella pagina Generale selezionare Cerca. Immetti <Nome_server_pubblicazione>\repl_snapshot nella casella Immetti il nome dell'oggetto da selezionare, seleziona Controlla nomi e quindi seleziona OK.

    Screenshot delle selezioni per l'immissione del nome dell'oggetto.

  3. Nell'elenco Utenti con mapping a questo account di accesso nella pagina Mapping utente selezionare sia il database di distribuzione che il database AdventureWorks2022.

    Nell'elenco delle appartenenze a ruoli del database selezionare il ruolo db_owner per l'accesso a entrambi i database.

    Screenshot della selezione dei database e del relativo ruolo.

  4. Selezionare OK per creare l'account di accesso.

  5. Ripetere i passaggi 1-4 per creare un account di accesso per gli altri account locali (repl_distribution, repl_logreader e repl_merge). È necessario eseguire il mapping di questi account anche agli utenti membri del ruolo predefinito del database db_owner nel database di distribuzione e nel database AdventureWorks.

    Screenshot di tutti e quattro gli account in Esplora oggetti.

Per altre informazioni, vedere Configurare il modello di sicurezza dell'agente di distribuzione e replica.

Passaggio successivo