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
Nel server di pubblicazione fare clic su Gestione computer in Strumenti di amministrazione nel Pannello di controllo.
In Utilità di sistemaespandere Utenti e gruppi locali.
Fare clic con il pulsante destro del mouse su Utentie quindi selezionare Nuovo utente.
Immettere repl_snapshot nella casella Nome utente, specificare la password e altre informazioni pertinenti e quindi selezionare Crea per creare l'account repl_snapshot:
Ripetere il passaggio precedente per creare gli account repl_logreader, repl_distribution e repl_merge:
Selezionare Chiudi.
Creare account di Windows locali per gli agenti di replica nel sottoscrittore
Nel sottoscrittore aprire Gestione computer in Strumenti di amministrazione nel Pannello di controllo.
In Utilità di sistemaespandere Utenti e gruppi locali.
Fare clic con il pulsante destro del mouse su Utentie quindi selezionare Nuovo utente.
Immettere repl_distribution nella casella Nome utente, specificare la password e altre informazioni pertinenti e quindi selezionare Crea per creare l'account repl_distribution.
Ripetere il passaggio precedente per creare l'account repl_merge.
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
In Esplora file, individua la cartella di dati di SQL Server. Il percorso predefinito è C:\Programmi\Microsoft SQL Server\MSSQL.X\MSSQL\Data.
Creare una nuova cartella denominata repldata.
Fare clic con il pulsante destro del mouse su questa cartella e selezionare Proprietà.
Nella scheda Condivisione della finestra di dialogo Proprietà di repldata selezionare Condivisione avanzata.
Nella finestra di dialogo Condivisione avanzata selezionare Condividi cartella e quindi selezionare Autorizzazioni.
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.
Ripeti il passaggio 6 per aggiungere gli altri due account creati in precedenza: <Nome_server_pubblicazione>\repl_merge e <Nome_server_pubblicazione>\repl_distribution.
Dopo aver aggiunto i tre account, assegnare le autorizzazioni seguenti:
- repl_distribution: Lettura
- repl_merge: Lettura
- repl_snapshot: Controllo completo
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.
Nella finestra di dialogo Proprietà repldata selezionare la scheda Sicurezza e selezionare Modifica:
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.
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.
Verificare che siano state concesse le autorizzazioni seguenti:
- repl_distribution: Lettura
- repl_merge: Lettura
- repl_snapshot: Controllo completo
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.
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
Connettiti al server di pubblicazione in SQL Server Management Studio e poi espandi il nodo server.
Fare clic con il pulsante destro del mouse sulla cartella Replica e selezionare Configura distribuzione:
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.
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.
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.
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.
Accettare i valori predefiniti nella pagine seguenti della procedura guidata.
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.
Se l'istanza di SQL Server Management Studio è in esecuzione con diritti amministrativi, è possibile avviare SQL Server Agent manualmente dall'interno di SSMS:
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
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.
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.
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.
Selezionare OK per creare l'account di accesso.
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.
Per altre informazioni, vedere Configurare il modello di sicurezza dell'agente di distribuzione e replica.