Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando viene eseguito il failover di un gruppo di disponibilità AlwaysOn contenente un database che opera come sottoscrittore di replica, la sottoscrizione di replica potrebbe non venire completata. Per i sottoscrittori push della replica transazionale, l'agente di distribuzione continuerà a replicare automaticamente dopo un failover se la sottoscrizione è stata creata usando il nome del listener del gruppo di disponibilità. Per i sottoscrittori pull della replica transazionale, l'agente di distribuzione continuerà a replicare automaticamente dopo un failover se la sottoscrizione è stata creata usando il nome del listener del gruppo di disponibilità e il server sottoscrizione originale è attivo e in esecuzione. Questo avviene perché i processi dell'agente di distribuzione vengono creati solo nel sottoscrittore originale (replica primaria del gruppo di disponibilità). Per i sottoscrittori di merge, un amministratore di replica deve riconfigurare manualmente il sottoscrittore ricreando la sottoscrizione.
Operazioni supportate
SQL Server replica supporta il failover automatico del server di pubblicazione, il failover automatico dei sottoscrittori transazionali e il failover manuale dei sottoscrittori di tipo merge. Il failover di un server di distribuzione in un database di disponibilità non è supportato. AlwaysOn non può essere combinato con scenari Websync e SQL Server Compact.
Failover di una sottoscrizione pull di merge
Durante il failover del gruppo di disponibilità si verifica un errore nella sottoscrizione pull poiché l'agente pull non riesce a trovare i processi archiviati nel database msdb dell'istanza del server in cui è ospitata la replica primaria, che non è disponibile a causa dell'errore che si è verificato nell'istanza del server.
Failover di una sottoscrizione push di merge
Durante il failover del gruppo di disponibilità si verifica un errore nella sottoscrizione push poiché l'agente push non può più connettersi al database di sottoscrizione originale nel sottoscrittore originale.
Come creare una sottoscrizione transazionale in un ambiente AlwaysOn
Per la replica transazionale, usare i passaggi seguenti per configurare un gruppo di disponibilità del sottoscrittore e impostarne il failover:
Prima di creare la sottoscrizione, aggiungere il database sottoscrittore al gruppo di disponibilità AlwaysOn appropriato.
Aggiungere il listener del gruppo di disponibilità del sottoscrittore come server collegato a tutti i nodi del gruppo di disponibilità. Questa operazione assicura che tutti i partner di failover potenziali siano in grado di riconoscere e connettersi al listener.
Usare lo script riportato nella sezione Creazione di una sottoscrizione push di una replica transazionale sottostante per creare la sottoscrizione con il nome del listener del gruppo di disponibilità del sottoscrittore. Dopo un failover, il nome del listener rimane sempre valido, mentre il nome del server effettivo del sottoscrittore dipenderà dal nodo effettivo diventato il nuovo nodo primario.
Nota
La sottoscrizione deve essere creata usando uno script Transact-SQL e non può essere creata con Management Studio.
Se si crea una sottoscrizione pull:
In Management Studio aprire l'albero SQL Server Agent nel nodo sottoscrittore primario.
Identificare il processo dell' agente di distribuzione pull e modificare il processo.
Nel passaggio del processo Esecuzione dell'agente verificare i parametri
-Publisher
e-Distributor
. Verificare che questi parametri contengano i nomi corretti del server diretto e dell'istanza del server di distribuzione e del database di pubblicazione.Modificare il parametro
-Subscriber
impostando il nome del listener del gruppo di disponibilità del sottoscrittore.
Quando si crea la sottoscrizione usando questa procedura, non si dovranno eseguire azioni dopo un failover.
Creazione di una sottoscrizione push di una replica transazionale
-- commands to execute at the publisher, in the publisher database:
use [<publisher database name>]
EXEC sp_addsubscription @publication = N'<publication name>',
@subscriber = N'<availability group listener name>',
@destination_db = N'<subscriber database name>',
@subscription_type = N'Push',
@sync_type = N'automatic', @article = N'all', @update_mode = N'read only', @subscriber_type = 0;
GO
EXEC sp_addpushsubscription_agent @publication = N'<publication name>',
@subscriber = N'<availability group listener name>',
@subscriber_db = N'<subscriber database name>',
@job_login = null, @job_password = null, @subscriber_security_mode = 1;
GO
Per riprendere gli agenti di merge dopo il failover del gruppo di disponibilità del sottoscrittore
Per eseguire il merge della replica, un relativo amministratore deve riconfigurare manualmente il sottoscrittore attenendosi alla procedura seguente:
Per rimuovere la sottoscrizione precedente del sottoscrittore eseguire
sp_subscription_cleanup
. Effettuare questa operazione nella nuova replica primaria, che precedentemente era la secondaria.Ricreare la sottoscrizione creando una nuova sottoscrizione a partire da un nuovo snapshot.
Nota
Il processo corrente non è pratico per i sottoscrittori della replica di tipo merge. Tuttavia, lo scenario principale per la replica di tipo merge è composto da utenti disconnessi (desktop, portatili, dispositivi palmari) che non utilizzeranno i gruppi di disponibilità AlwaysOn sul sottoscrittore.