Condividi tramite


Configurare la replica per i gruppi di disponibilità AlwaysOn (SQL Server)

La configurazione della replica e dei gruppi di disponibilità AlwaysOn richiede sette passaggi. Ogni passaggio è descritto in dettaglio nelle sezioni seguenti.

  1. Configurare le pubblicazioni e le sottoscrizioni del database.

  2. Configurare il gruppo di disponibilità AlwaysOn.

  3. Assicurare che tutti gli host della replica secondaria vengano configurati per la replica.

  4. Configurare gli host della replica secondaria come server di pubblicazione di replica.

  5. Reindirizzare il server di pubblicazione originale al nome del listener gruppo di disponibilità.

  6. Eseguire la stored procedure di convalida per verificare la configurazione.

  7. Aggiungere il server di pubblicazione originale a Monitoraggio replica.

I passaggi 1 e 2 possono essere effettuati in qualsiasi ordine.

1.Configurare le pubblicazioni e le sottoscrizioni del database

Configurare il server di distribuzione

Il server di distribuzione non deve essere un host per una qualsiasi delle repliche correnti (o previste) del gruppo di disponibilità di cui il database di pubblicazione è (o diventerà) un membro.

  1. Configurare la distribuzione sul server di distribuzione. Se per la configurazione vengono utilizzate stored procedure, eseguire sp_adddistributor. Utilizzare il parametro @password per identificare la password che sarà utilizzata quando un server di pubblicazione remoto si connette al server di distribuzione. La password sarà necessaria anche per ogni server di pubblicazione remoto quando viene configurato il server di distribuzione remoto.

    USE master;
    GO
    EXEC sys.sp_adddistributor
        @distributor = 'MyDistributor',
        @password = '**Strong password for distributor**';
    
  2. Creare il database di distribuzione nel server di distribuzione. Se per la configurazione vengono utilizzate stored procedure, eseguire sp_adddistributiondb.

    USE master;
    GO
    EXEC sys.sp_adddistributiondb
        @database = 'distribution',
        @security_mode = 1;
    
  3. Configurare il server di pubblicazione remoto. Se per la configurazione del server di distribuzione vengono utilizzate stored procedure, eseguire sp_adddistpublisher. Il parametro @security\_mode viene utilizzato per determinare in che modo la stored procedure di convalida del server di pubblicazione eseguita dagli agenti di replica si connette alla replica primaria corrente. Se impostata su 1, per connettersi alla replica primaria corrente viene utilizzata l'Autenticazione di Windows. Se impostata su 0, viene utilizzata l'autenticazione SQL Server con specificati i valori @login e @password. L'account di accesso e la password specificati devono essere validi per ogni replica secondaria per consentire alla stored procedure di convalida di connettersi a tale replica.

    [!NOTA]

    Se gli eventuali agenti di replica modificati vengono eseguiti in un computer diverso dal server di distribuzione, l'utilizzo dell'Autenticazione di Windows per la connessione alla replica primaria richiederà l'autenticazione Kerberos per consentire la configurazione per la comunicazione tra i computer host della replica. L'utilizzo di un account di accesso di SQL Server per la connessione alla replica primaria corrente non richiede l'autenticazione Kerberos.

    USE master;
    GO
    EXEC sys.sp_adddistpublisher
        @publisher = 'AGPrimaryReplicaHost',
        @distribution_db = 'distribution',
        @working_directory = '\\MyReplShare\WorkingDir',
        @login = 'MyPubLogin',
        @password = '**Strong password for publisher**';
    

Per ulteriori informazioni, vedere sp_adddistpublisher (Transact-SQL).

Configurare il server di pubblicazione nel server di pubblicazione originale

  1. Configurare la distribuzione remota. Se per la configurazione del server di pubblicazione vengono utilizzate stored procedure, eseguire sp_adddistributor. Specificare per @password lo stesso valore di quello utilizzato al momento dell'esecuzione di sp_adddistrbutor sul server di distribuzione per configurare la distribuzione.

    exec sys.sp_adddistributor
        @distributor = 'MyDistributor',
        @password = 'MyDistPass'
    
  2. Abilitare il database per la replica. Se per la configurazione del server di pubblicazione vengono utilizzate stored procedure, eseguire sp_replicationdboption. Se è necessario configurare la replica transazionale e di tipo merge per il database, è necessario abilitarne ognuna.

    USE master;
    GO
    EXEC sys.sp_replicationdboption
        @dbname = 'MyDBName',
        @optname = 'publish',
        @value = 'true';
    
    EXEC sys.sp_replicationdboption
        @dbname = 'MyDBName',
        @optname = 'merge publish',
        @value = 'true';
    
  3. Creare la pubblicazione di replica, articoli e sottoscrizioni. Per ulteriori informazioni sulla configurazione della replica, vedere Pubblicazione di dati e oggetti di database.

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

2.Configurare il gruppo di disponibilità AlwaysOn

Nella replica primaria prevista creare il gruppo di disponibilità con il database pubblicato (o da pubblicare) come database membro. In caso di utilizzo della Creazione guidata Gruppo di disponibilità, è possibile consentire alla procedura guidata di sincronizzare inizialmente i database di tipo replica secondaria o eseguire manualmente l'inizializzazione mediante backup e ripristino.

Creare un listener DNS per il gruppo di disponibilità che sarà utilizzato dagli agenti di replica per connettersi alla replica primaria corrente. Il nome del listener specificato sarà utilizzato come destinazione di reindirizzamento per la coppia server di pubblicazione originale/database pubblicato. Ad esempio, se si utilizza DDL per configurare il gruppo di disponibilità, è possibile utilizzare l'esempio di codice seguente per specificare un listener per un gruppo di disponibilità esistente denominato MyAG:

ALTER AVAILABILITY GROUP 'MyAG' 
    ADD LISTENER 'MyAGListenerName' (WITH IP (('10.120.19.155', '255.255.254.0')));

Per ulteriori informazioni, vedere Creazione e configurazione di gruppi di disponibilità (SQL Server).

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

3.Assicurare che tutti gli host della replica secondaria siano configurati per la replica

In ogni host della replica secondaria verificare che SQL Server sia stato configurato per supportare la replica. È possibile eseguire la query seguente in ogni host della replica secondaria per determinare se la replica è installata:

USE master;
GO
DECLARE @installed int;
EXEC @installed = sys.sp_MS_replication_installed;
SELECT @installed;

Se il parametro @installed è 0, è necessario aggiungere la replica all'installazione di SQL Server.

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

4.Configurare gli host della replica secondaria come server di pubblicazione di replica

Una replica secondaria non può essere utilizzata come server di pubblicazione o di ripubblicazione della replica, ma è necessario configurare la replica in modo che dopo un failover possa essere utilizzata la replica secondaria. Nel server di distribuzione configurare la distribuzione per ogni host della replica secondaria. Specificare lo stesso database di distribuzione e la stessa directory di lavoro specificati quando il server di pubblicazione originale è aggiunto al server di distribuzione. Se si utilizzano stored procedure per configurare la distribuzione, utilizzare sp_adddistpublisher per associare i server di pubblicazione remoti al server di distribuzione. Se @login e @password sono stati utilizzati per il server di pubblicazione originale, specificare gli stessi valori per ognuno quando si aggiungono host della replica secondaria come server di pubblicazione.

EXEC sys.sp_adddistpublisher
    @publisher = 'AGSecondaryReplicaHost',
    @distribution_db = 'distribution',
    @working_directory = '\\MyReplShare\WorkingDir',
    @login = 'MyPubLogin',
    @password = '**Strong password for publisher**';

Configurare la distribuzione per ogni host della replica secondaria. Identificare il server di distribuzione del server di pubblicazione originale come server di distribuzione remoto. Utilizzare la stessa password di quella utilizzata quando sp_adddistributor è stato eseguito in origine nel server di distribuzione. Se le stored procedure vengono utilizzate per configurare la distribuzione, il parametro @password di sp_adddistributor viene utilizzato per specificare la password.

EXEC sp_adddistributor 
    @distributor = 'MyDistributor',
    @password = '**Strong password for distributor**';

In ogni host della replica secondaria verificare che i Sottoscrittori push delle pubblicazioni del database vengano visualizzati come server collegati. Se per la configurazione dei server di pubblicazione remoti vengono utilizzate stored procedure, eseguire sp_addlinkedserver per aggiungere i Sottoscrittori (se non già presenti) come server collegati ai server di pubblicazione.

EXEC sys.sp_addlinkedserver 
    @server = 'MySubscriber';

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

5.Reindirizzare il server di pubblicazione originale al nome del listener gruppo di disponibilità

Nel database di distribuzione sul server di distribuzione eseguire la stored procedure sp_redirect_publisher per associare il server di pubblicazione originale e il database pubblicato al nome del listener del gruppo di disponibilità.

USE distribution;
GO
EXEC sys.sp_redirect_publisher 
@original_publisher = 'MyPublisher',
    @publisher_db = 'MyPublishedDB',
    @redirected_publisher = 'MyAGListenerName';

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

6.Eseguire la stored procedure di convalida della replica per verificare la configurazione

Nel database di distribuzione del server di distribuzione eseguire la stored procedure sp_validate_replica_hosts_as_publishers da verificare che tutti gli host della replica siano configurati come server di pubblicazione per il database pubblicato.

USE distribution;
GO
DECLARE @redirected_publisher sysname;
EXEC sys.sp_validate_replica_hosts_as_publishers
    @original_publisher = 'MyPublisher',
    @publisher_db = 'MyPublishedDB',
    @redirected_publisher = @redirected_publisher output;

La stored procedure sp_validate_replica_hosts_as_publishers deve essere eseguita da un account di accesso con autorizzazione sufficiente in ogni host di replica del gruppo di disponibilità per richiedere informazioni sul gruppo di disponibilità. A differenza di sp_validate_redirected_publisher, utilizza le credenziali del chiamante e non l'account di accesso incluso in msdb.dbo.MSdistpublishers per connettersi alle repliche del gruppo di disponibilità.

[!NOTA]

sp_validate_replica_hosts_as_publishers non riuscirà e verrà visualizzato il seguente errore durante la convalida degli host della replica secondaria che non consentono l'accesso in lettura o richiedono che venga specificata la finalità di lettura.

Msg 21899, Livello 11, Stato 1, Procedura sp_hadr_verify_subscribers_at_publisher, Riga 109

La query sul server di pubblicazione reindirizzato 'MyReplicaHostName' per determinare la presenza di voci sysserver per i sottoscrittori del server di pubblicazione originale 'MyOriginalPublisher' non è riuscita restituendo l'errore '976', messaggio di errore 'Errore 976, Livello 14, Stato 1, Messaggio: Il database di destinazione, 'MyPublishedDB', partecipa a un gruppo di disponibilità e non è attualmente accessibile per le query. Lo spostamento dei dati è sospeso o la replica di disponibilità non è abilitata per l'accesso in lettura. Per consentire l'accesso in sola lettura a questo e ad altri database nel gruppo di disponibilità, abilitare l'accesso in lettura a una o più repliche di disponibilità secondarie nel gruppo. Per ulteriori informazioni, vedere l'istruzione ALTER AVAILABILITY GROUP nella documentazione online di SQL Server.

Sono stati rilevati uno o più errori di convalida del server di pubblicazione per l'host della replica 'MyReplicaHostName'.

Tale comportamento è previsto. È necessario verificare la presenza delle voci del Sottoscrittore in questi host della replica secondaria eseguendo una query per le voci sysserver direttamente sull'host.

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

7.Aggiungere il server di pubblicazione originale a Monitoraggio replica

In ogni replica del gruppo di disponibilità aggiungere il server di pubblicazione originale a Monitoraggio replica.

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

Attività correlate

Replica

Per creare e configurare un gruppo di disponibilità

Icona freccia utilizzata con il collegamento Torna all'inizio[Inizio pagina]

Vedere anche

Concetti

Prerequisiti, restrizioni e consigli per i gruppi di disponibilità AlwaysOn (SQL Server)

Panoramica di Gruppi di disponibilità AlwaysOn (SQL Server)

Gruppi di disponibilità AlwaysOn: interoperabilità (SQL Server)

Replica di SQL Server