Esercitazione: Preparare SQL Server per la replica: server di pubblicazione, server di distribuzione, sottoscrittoreTutorial: Prepare SQL Server for replication (publisher, distributor, subscriber)

QUESTO ARGOMENTO SI APPLICA A: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

È importante pianificare la sicurezza prima di configurare la topologia di replica.It's important to plan for security before you configure your replication topology. In questa esercitazione viene illustrato come proteggere in modo più sicuro una topologia di replica.This tutorial shows you how to better secure a replication topology. Viene anche illustrato come configurare la distribuzione, il primo passaggio della replica dei dati.It also shows you how to configure distribution, which is the first step in replicating data. È necessario completare questa esercitazione prima delle altre esercitazioni sulla replica.You must complete this tutorial before any of the others.

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.To replicate data securely between servers, you should implement all of the recommendations in Replication security best practices.

Lezioni dell'esercitazioneWhat you will learn

Questa esercitazione illustra come preparare un server in modo che la replica possa essere eseguita in modo protetto con privilegi minimi.This tutorial teaches you to prepare a server so that replication can run securely with least privileges.

In questa esercitazione verranno illustrate le procedure per:In this tutorial, you will learn how to:

  • Creare account di Windows per la replica.Create Windows accounts for replication.
  • Preparare la cartella per lo snapshot.Prepare the snapshot folder.
  • Configurare la distribuzione.Configure distribution.

PrerequisitesPrerequisites

Questa esercitazione è destinata agli utenti che hanno familiarità con le operazioni fondamentali relative ai database ma con un'esperienza limitata delle operazioni di replica.This tutorial is for users who are familiar with fundamental database operations, but who have limited exposure to replication.

Per completare questa esercitazione, sono necessari SQL Server, SQL Server Management Studio (SSMS) e un database AdventureWorks:To complete this tutorial, you need SQL Server, SQL Server Management Studio (SSMS), and an AdventureWorks database:

  • Nel server di pubblicazione (origine) installare:At the publisher server (source), install:

    • Una qualsiasi edizione di SQL ServerSQL Server, ad eccezione di SQL Server Express e di SQL Server Compact.Any edition of SQL ServerSQL Server, except SQL Server Express or SQL Server Compact. Questa edizioni non possono fungere da server di pubblicazione per la replica.These editions cannot be replication publishers.
    • Database di esempio AdventureWorks2012AdventureWorks2012 .The AdventureWorks2012AdventureWorks2012 sample database. Per una maggiore sicurezza, i database di esempio non vengono installati per impostazione predefinita.To enhance security, the sample databases are not installed by default.
  • Nel server sottoscrittore (destinazione) installare qualsiasi edizione di SQL ServerSQL Server, ad eccezione di SQL Server CompactSQL Server Compact.At the subscriber server (destination), install any edition of SQL ServerSQL Server, except SQL Server CompactSQL Server Compact. SQL Server CompactSQL Server Compact non può essere un sottoscrittore nella replica transazionale. cannot be a subscriber in transactional replication.

  • Installare SQL Server Management Studio.Install SQL Server Management Studio.

  • Installare SQL Server 2017 Developer Edition.Install SQL Server 2017 Developer edition.
  • Scaricare il database di esempio AdventureWorks.Download the AdventureWorks sample database. Per istruzioni sul ripristino di un database in SSMS, vedere Ripristino di un database.For instructions on restoring a database in SSMS, see Restoring a database.

Nota

  • La replica non è supportata nelle istanze di SQL Server con versioni la cui distanza sia maggiore di 2.Replication is not supported on SQL Server instances that are more than two versions apart. Per altre informazioni, vedere Supported SQL Server Versions in Replication Topology (Versioni di SQL Server supportate nella topologia di replica).For more information, see Supported SQL Server Versions in Replication Topology.
  • In SQL Server Management StudioSQL Server Management Studio è necessario connettersi al server di pubblicazione e al sottoscrittore usando un account di accesso che sia membro del ruolo predefinito del server sysadmin.In SQL Server Management StudioSQL Server Management Studio, you must connect to the publisher and subscriber by using a login that is a member of the sysadmin fixed server role. Per altre informazioni su questo ruolo, vedere Ruoli a livello di server.For more information on this role, see Server-level roles.

Tempo stimato per il completamento dell'esercitazione: 30 minutiEstimated time to complete this tutorial: 30 minutes

Creare account di Windows per la replicaCreate Windows accounts for replication

In questa sezione vengono creati gli account di Windows per l'esecuzione degli agenti di replica.In this section, you create Windows accounts to run replication agents. Verrà creato un account di Windows separato nel server locale per gli agenti seguenti:You create a separate Windows account on the local server for the following agents:

AgentAgent PercorsoLocation Nome accountAccount name
agente snapshotSnapshot Agent Server di pubblicazionePublisher <nome_computer>\repl_snapshot<machine_name>\repl_snapshot
Agente di lettura logLog Reader Agent Server di pubblicazionePublisher <nome_computer>\repl_logreader<machine_name>\repl_logreader
Agente di distribuzioneDistribution Agent Server di pubblicazione e sottoscrittorePublisher and subscriber <nome_computer>\repl_distribution<machine_name>\repl_distribution
Agente di mergeMerge Agent Server di pubblicazione e sottoscrittorePublisher and subscriber <nome_computer>\repl_merge<machine_name>\repl_merge

Nota

Nelle esercitazioni sulla replica il server di pubblicazione e il server di distribuzione condividono la stessa istanza (NODE1\SQL2016) di SQL ServerSQL Server.In the replication tutorials, the publisher and distributor share the same instance (NODE1\SQL2016) of SQL ServerSQL Server. L'istanza del sottoscrittore (NODE2\SQL2016) è remota.The subscriber instance (NODE2\SQL2016) is remote. Il server di pubblicazione e il sottoscrittore possono usare la stessa istanza di SQL ServerSQL Server, ma questo non è un requisito.The publisher and subscriber might share the same instance of SQL ServerSQL Server, but it is not a requirement. Se il server di pubblicazione e il sottoscrittore condividono la stessa istanza, i passaggi seguiti per creare gli account nel sottoscrittore non sono obbligatori.If the publisher and subscriber share the same instance, the steps that are used to create accounts at the subscriber are not required.

Creare account di Windows locali per gli agenti di replica nel server di pubblicazioneCreate local Windows accounts for replication agents at the publisher

  1. Nel server di pubblicazione fare clic su Gestione computer in Strumenti di amministrazione nel Pannello di controllo.At the publisher, open Computer Management from Administrative Tools in Control Panel.

  2. In Utilità di sistemaespandere Utenti e gruppi locali.In System Tools, expand Local Users and Groups.

  3. Fare clic con il pulsante destro del mouse su Utentie quindi selezionare Nuovo utente.Right-click Users and then select New User.

  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:Enter repl_snapshot in the User name box, provide the password and other relevant information, and then select Create to create the repl_snapshot account:

    Finestra di dialogo "Nuovo utente"

  5. Ripetere il passaggio precedente per creare gli account repl_logreader, repl_distribution e repl_merge:Repeat the previous step to create the repl_logreader, repl_distribution, and repl_merge accounts:

    Elenco degli utenti di replica

  6. Selezionare Chiudi.Select Close.

Creare account di Windows locali per gli agenti di replica nel sottoscrittoreCreate local Windows accounts for replication agents at the subscriber

  1. Nel sottoscrittore aprire Gestione computer in Strumenti di amministrazione nel Pannello di controllo.At the subscriber, open Computer Management from Administrative Tools in Control Panel.

  2. In Utilità di sistemaespandere Utenti e gruppi locali.In System Tools, expand Local Users and Groups.

  3. Fare clic con il pulsante destro del mouse su Utentie quindi selezionare Nuovo utente.Right-click Users and then select New User.

  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.Enter repl_distribution in the User name box, provide the password and other relevant information, and then select Create to create the repl_distribution account.

  5. Ripetere il passaggio precedente per creare l'account repl_merge.Repeat the previous step to create the repl_merge account.

  6. Selezionare Chiudi.Select Close.

Per altre informazioni, vedere Panoramica degli agenti di replica.For more information, see Replication agents overview.

Preparare la cartella per lo snapshotPrepare the snapshot folder

In questa sezione viene configurata la cartella usata per la creazione e l'archiviazione dello snapshot di pubblicazione.In this section, you configure the snapshot folder that's used to create and store the publication snapshot.

Creare una condivisione per la cartella per lo snapshot e assegnare le autorizzazioniCreate a share for the snapshot folder and assign permissions

  1. In Esplora file individuare la cartella Data di SQL ServerSQL Server.In File Explorer, browse to the SQL ServerSQL Server data folder. Il percorso predefinito è C:\Programmi\Microsoft SQL Server\MSSQL.X\MSSQL\Data.The default location is C:\Program Files\Microsoft SQL Server\MSSQL.X\MSSQL\Data.

  2. Creare una nuova cartella denominata repldata.Create a new folder named repldata.

  3. Fare clic con il pulsante destro del mouse su questa cartella e selezionare Proprietà.Right-click this folder and select Properties.

    A.a. Nella scheda Condivisione della finestra di dialogo Proprietà di repldata selezionare Condivisione avanzata.On the Sharing tab in the repldata Properties dialog box, select Advanced Sharing.

    B.b. Nella finestra di dialogo Condivisione avanzata selezionare Condividi cartella e quindi selezionare Autorizzazioni.In the Advanced Sharing dialog box, select Share this Folder, and then select Permissions.

    Selezioni per la condivisione della cartella repldata

  4. Nella finestra di dialogo Autorizzazioni per repldata selezionare Aggiungi.In the Permissions for repldata dialog box, select Add. Nella casella Select User, Computers, Service Account, or Groups (Seleziona utenti, computer, account del servizio o gruppi) digitare il nome dell'account dell'agente di snapshot creato in precedenza nel formato <Nome_server_pubblicazione>\repl_snapshot.In the Select User, Computers, Service Account, or Groups box, type the name of the Snapshot Agent account that you created previously, as <Publisher_Machine_Name>\repl_snapshot. Selezionare Verifica nomi e quindi selezionare OK.Select Check Names, and then select OK.

    Selezioni per aggiungere autorizzazioni di condivisione

  5. Ripetere il passaggio 6 per aggiungere gli altri due account creati in precedenza: <Nome_server_pubblicazione>\repl_merge e <Nome_server_pubblicazione>\repl_distribution.Repeat step 6 to add the other two accounts that you created previously: <Publisher_Machine_Name>\repl_merge and <Publisher_Machine_Name>\repl_distribution.

  6. Dopo aver aggiunto i tre account, assegnare le autorizzazioni seguenti:After you add the three accounts, assign the following permissions:

    • repl_distribution: Letturarepl_distribution: Read
    • repl_merge: Letturarepl_merge: Read
    • repl_snapshot: Controllo completorepl_snapshot: Full Control

    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.After your share permissions are configured correctly, select OK to close the Permissions for repldata dialog box. Selezionare OK per chiudere la finestra di dialogo Condivisione avanzata.Select OK to close the Advanced Sharing dialog box.

  8. Nella finestra di dialogo Proprietà repldata selezionare la scheda Sicurezza e selezionare Modifica:In the repldata Properties dialog box, select the Security tab and select Edit:

    Pulsante "Modifica" nella scheda "Sicurezza"

  9. Nella finestra di dialogo Autorizzazioni per repldata selezionare Aggiungi.In the Permissions for repldata dialog box, select Add. Nella casella Select Users, Computers, Service Accounts, or Groups (Seleziona utenti, computer, account del servizio o gruppi) digitare il nome dell'account dell'agente di snapshot creato in precedenza nel formato <Nome_server_pubblicazione>\repl_snapshot.In the Select Users, Computers, Service Accounts, or Groups box, type the name of the Snapshot Agent account that you created previously, as <Publisher_Machine_Name>\repl_snapshot. Selezionare Verifica nomi e quindi selezionare OK.Select Check Names, and then select OK.

    Selezioni per aggiungere autorizzazioni di sicurezza

  10. Ripetere 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.Repeat the previous step to add permissions for the Distribution Agent as <Publisher_Machine_Name>\repl_distribution, and for the Merge Agent as <Publisher_Machine_Name>\repl_merge.

  11. Verificare che siano state concesse le autorizzazioni seguenti:Verify that the following permissions are allowed:

    • repl_distribution: Letturarepl_distribution: Read
    • repl_merge: Letturarepl_merge: Read
    • repl_snapshot: Controllo completorepl_snapshot: Full Control

    Autorizzazioni utente per i dati di replica

  12. Selezionare di nuovo la scheda Condivisione e prendere nota del percorso di rete per la condivisione.Select the Sharing tab again and note the Network Path for the share. Questo percorso sarà necessario in seguito, al momento di configurare la cartella per lo snapshot.You'll need this path later when you're configuring your snapshot folder.

    Percorso di rete nella scheda "Condivisione"

  13. Selezionare OK per chiudere la finestra di dialogo Proprietà di repldata.Select OK to close the repldata Properties dialog box.

Per altre informazioni, vedere Proteggere la cartella snapshot.For more information, see Secure the snapshot folder.

Configurare la distribuzioneConfigure distribution

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.In this section, you configure distribution at the publisher and set the required permissions on the publication and distribution databases. Se il server di distribuzione è già stato configurato, è necessario disabilitare la pubblicazione e la distribuzione prima di iniziare questa sezione.If you have already configured the distributor, you must disable publishing and distribution before you begin this section. Non eseguire questa operazione se è necessario mantenere la topologia di replica esistente, soprattutto in un ambiente di produzione.Do not do this if you must keep an existing replication topology, especially in production.

In questa esercitazione non è prevista la configurazione del server di pubblicazione con un server di distribuzione remoto.Configuring a publisher with a remote distributor is outside the scope of this tutorial.

Configurare la distribuzione nel server di pubblicazioneConfigure distribution at the publisher

  1. Connettersi al server di pubblicazione in SQL Server Management StudioSQL Server Management Studio e quindi espandere il nodo server.Connect to the publisher in SQL Server Management StudioSQL Server Management Studio, and then expand the server node.

  2. Fare clic con il pulsante destro del mouse sulla cartella Replica e selezionare Configura distribuzione:Right-click the Replication folder and select Configure Distribution:

    Comando "Configura distribuzione" nel menu di scelta rapida

    Nota

    Se è stata effettuata la connessione a SQL ServerSQL Server usando localhost anziché il nome effettivo del server, verrà visualizzato un avviso che indica l'impossibilità di stabilire una connessione tra SQL ServerSQL Server e il server localhost.If you have connected to SQL ServerSQL Server by using localhost rather than the actual server name, you'll be prompted with a warning that SQL ServerSQL Server cannot connect to localhost. Selezionare OK nella finestra di dialogo dell'avviso.Select OK in the warning dialog box. Nella finestra di dialogo Connetti al server modificare Nome server sostituendo localhost con il nome del server.In the Connect to Server dialog box, change Server name from localhost to the name of your server. Selezionare Connetti.Then select Connect.

    Verrà avviata la Configurazione guidata distribuzione.The Distribution Configuration Wizard starts.

  3. Nella pagina Server di distribuzione selezionare <'NomeServer'> fungerà da database di distribuzione per se stesso. Verranno creati un database di distribuzione e un log.On the Distributor page, select <'ServerName'> will act as its own Distributor; SQL Server will create a distribution database and log. Fare quindi clic su Avanti.Then select Next.

    Opzione perché il server funga da server di distribuzione per se stesso

  4. Se SQL ServerSQL Server Agent non è in esecuzione, nella pagina Avvio SQL ServerSQL Server Agent selezionare Configura il servizio Agent SQL ServerSQL Server per l'avvio automatico.If the SQL ServerSQL Server Agent is not running, on the SQL ServerSQL Server Agent Start page, select Yes, configure the SQL ServerSQL Server Agent service to start automatically. Fare clic su Avanti.Select Next.

  5. Immettere il percorso \\<Nome_server_pubblicazione>\repldata nella casella di testo Cartella snapshot e quindi selezionare Avanti.Enter the path \\<Publisher_Machine_Name>\repldata in the Snapshot folder box, and then select Next. 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.This path should match what you saw previously under Network Path for your repldata properties folder after configuring your share properties.

    Confronto tra i percorsi di rete nella finestra di dialogo "Proprietà repldata" e nella Configurazione guidata distribuzione

  6. Accettare i valori predefiniti nella pagine seguenti della procedura guidata.Accept the default values on the remaining pages of the wizard.

    Ultima pagina della procedura guidata

  7. Selezionare Fine per abilitare la distribuzione.Select Finish to enable distribution.

Durante la configurazione del server di distribuzione può essere visualizzato l'errore seguente,You might see the following error when configuring the distributor. che indica che l'account usato per avviare l'account di SQL Server Agent non è un account amministratore del sistema.It's an indication that the account that was used to start the SQL Server Agent account is not an administrator on the system. È necessario avviare SQL Server Agent manualmente, concedere le autorizzazioni necessarie all'account esistente o cambiare l'account usato da SQL Server Agent.You'll either need to start the SQL Server Agent manually, grant those permissions to the existing account, or modify which account the SQL Server Agent is using.

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:If your SQL Server Management Studio instance is running with administrative rights, you can start the SQL Agent manually from within SSMS:

Selezione di "Avvia" nel menu di scelta rapida per l'agente in 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.If the SQL Agent doesn't visibly start, right-click the SQL Server Agent in SSMS and select Refresh. Se è ancora arrestato, avviarlo manualmente da Gestione configurazione SQL Server.If it's still in the stopped state, start it manually from SQL Server Configuration Manager.

Impostare le autorizzazioni per il database nel server di pubblicazioneSet database permissions at the publisher

  1. In SQL Server Management StudioSQL 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:In SQL Server Management StudioSQL Server Management Studio, expand Security, right-click Logins, and then select New Login:

    Comando "Nuovo account accesso" nel menu di scelta rapida

  2. Nella pagina Generale selezionare Cerca.On the General page, select Search. Immettere <Nome_server_pubblicazione>\repl_snapshot nella casella Immettere il nome dell'oggetto da selezionare, selezionare Verifica nomi e quindi selezionare OK.Enter <Publisher_Machine_Name>\repl_snapshot in the Enter the object name to select box, select Check Names, and then select OK.

    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 AdventureWorks2012AdventureWorks2012.On the User Mapping page, in the Users mapped to this login list, select both the distribution and AdventureWorks2012AdventureWorks2012 databases.

    Nell'elenco delle appartenenze a ruoli del database selezionare il ruolo db_owner per l'accesso a entrambi i database.In the database role membership list, select the db_owner role for the login for both databases.

    Selezione dei database e del loro ruolo

  4. Selezionare OK per creare l'account di accesso.Select OK to create the login.

  5. Ripetere i passaggi 1-4 per creare un account di accesso per gli altri account locali (repl_distribution, repl_logreader e repl_merge).Repeat steps 1-4 to create a login for the other local accounts (repl_distribution, repl_logreader, and 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.These logins must also be mapped to users who are members of the db_owner fixed database role in the distribution and AdventureWorks databases.

    Visualizzazione di tutti i quattro account in Esplora oggetti

Per altre informazioni, vedere:For more information, see:

Passaggi successiviNext steps

La preparazione del server per la replica è stata completata.You have now successfully prepared your server for replication. Il prossimo articolo insegna come configurare la replica transazionale:The next article teaches you how to configure transactional replication: