Freigeben über


Konfigurieren Sie beide Peers in Verfügbarkeitsgruppen

Beginnend mit SQL Server 2019 (15.x) CU 13 kann eine Datenbank, die zu einer SQL Server AlwaysOn-Verfügbarkeitsgruppe gehört, als Peer in einer Peer-to-Peer-Transaktionsreplikationstopologie teilnehmen. In diesem Artikel wird beschrieben, wie Sie dieses Szenario mit zwei Peers jeweils in einer eigenen Verfügbarkeitsgruppe konfigurieren.

Die Skripts in diesem Beispiel verwenden in T-SQL gespeicherte Prozeduren.

Rollen und Namen

In diesem Abschnitt werden die Rollen und Namen der verschiedenen Elemente beschrieben, die an der Replikationstopologie für diesen Artikel teilnehmen.

Peer1

  • Node1: Primäres Replikat für die erste Verfügbarkeitsgruppe
  • Node2: Sekundäres Replikat für die erste Verfügbarkeitsgruppe
  • MyAG: Name der Verfügbarkeitsgruppe für die erste Verfügbarkeitsgruppe
  • MyDBName: Peer1-Datenbank Zu veröffentlichende Datenbank
  • Dist1: Remoteverteiler
  • P2P_MyDBName: Veröffentlichungsname
  • MyAGListenerName: Verfügbarkeitsgruppenlistener

Peer2

  • Node3: Primäres Replikat für zweite Verfügbarkeitsgruppe
  • Node4: Sekundäres Replikat für zweite Verfügbarkeitsgruppe
  • MyAG2: Name der Verfügbarkeitsgruppe für den Namen der zweiten Verfügbarkeitsgruppe
  • MyDBName: Zu veröffentlichende Datenbank
  • Dist2: Remoteverteiler
  • P2P_MyDBName: Veröffentlichungsname
  • MyAG2ListenerName: Verfügbarkeitsgruppenlistener

Voraussetzungen

  • Vier Instanzen von SQL Server auf separaten physischen oder virtuellen Servern, um die Verfügbarkeitsgruppen zu hosten. Zwei Verfügbarkeitsgruppen enthalten jeweils eine Peerdatenbank.

  • Zwei Instanzen von SQL Server, um die Verteilerdatenbanken zu hosten

  • Alle Serverinstanzen erfordern eine unterstützte Edition: Enterprise Edition oder Developer Edition.

  • Für alle Serverinstanzen ist eine unterstützte Version erforderlich – SQL Server 2019 (15.x) CU13 oder höher.

  • Ausreichende Netzwerkkonnektivität und Bandbreite zwischen allen Instanzen.

  • Installieren der SQL Server-Replikation auf allen SQL Server-Instanzen.

    Führen Sie die folgende Abfrage aus, um zu sehen, ob die Replikation auf einer beliebigen Instanz installiert ist:

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

    Hinweis

    Um einen Single Point of Failure für die Verteilungsdatenbank zu vermeiden, verwenden Sie für jeden Peer einen Remoteverteiler.

    Zur Demonstration oder Testumgebung können Sie die Verteilungsdatenbanken auf einer einzelnen Instanz konfigurieren.

Konfigurieren des Verteilers und des Remoteverlegers (Peer1)

In diesem Abschnitt wird beschrieben, wie Sie den ersten Peer (Peer1) in einer Verfügbarkeitsgruppe einrichten.

  1. Führen Sie sp_adddistributor aus, um die Verteilung auf Dist1 zu konfigurieren. Verwenden Sie @password =, um ein Kennwort anzugeben, das der Remoteverleger zum Herstellen einer Verbindung mit dem Verteiler verwendet. Verwenden Sie dieses Kennwort bei jedem Remoteverleger, wenn Sie den Remoteverteiler konfigurieren.

    USE master;  
    GO  
    EXEC sys.sp_adddistributor  
     @distributor = 'Dist1',  
     @password = '<Strong password for distributor>';  
    
  2. Erstellen Sie die Verteilungsdatenbank beim Verteiler.

    USE master;
    GO  
    EXEC sys.sp_adddistributiondb  
     @database = 'distribution',  
     @security_mode = 1;  
    
  3. Konfigurieren Sie den Remoteveleger für Node1 und Node2.

    Der @security_mode bestimmt wie Replikations-Agents eine Verbindung mit dem aktuellen primären Server herstellen.

    • 1 = Windows-Authentifizierung
    • 0 = SQL Server-Authentifizierung Erfordert @login und @password. Der ausgewählte Anmeldename und das Kennwort müssen bei jedem sekundären Replikat gültig sein.

    Hinweis

    Wenn geänderte Replikations-Agents auf einem anderen Computer als dem Verteiler ausgeführt werden, dann ist bei Verwendung der Windows-Authentifizierung zum Herstellen einer Verbindung zum primären Replikat die Kerberos-Authentifizierung für die Kommunikation zwischen den Replikathostcomputern erforderlich. Bei Verwendung einer SQL Server-Anmeldung zum Herstellen einer Verbindung mit dem aktuellen primären Replikat ist keine Kerberos-Authentifizierung erforderlich.

    USE master;  
    GO  
    EXEC sys.sp_adddistpublisher  
     @publisher = 'Node1',  
     @distribution_db = 'distribution',  
     @working_directory = '\\MyReplShare\WorkingDir',  
     @security_mode = 1
    USE master;  
    GO  
    EXEC sys.sp_adddistpublisher  
     @publisher = 'Node2',  
     @distribution_db = 'distribution',  
     @working_directory = '\\MyReplShare\WorkingDir',  
     @security_mode = 1
    

Konfigurieren des Verlegers beim ursprünglichen Verleger (Node1)

  1. Konfigurieren Sie den ursprünglichen Verleger für die Remoteverteilung (Node1). Geben Sie den Wert für @password an, der verwendet wurde, als sp_adddistributor beim Verteiler ausgeführt wurde, um die Verteilung einzurichten.

    EXEC sys.sp_adddistributor  
    @distributor = 'Dist1',  
    @password = '<Password used when running sp_adddistributor on distributor server>' 
    
  2. Aktivieren Sie die Datenbank für die Replikation.

    USE master;  
    GO  
    EXEC sys.sp_replicationdboption  
     @dbname = 'MyDBName',  
     @optname = 'publish',  
     @value = 'true';  
    

Konfigurieren des sekundären Replikathosts als Replikationsverleger (Node2)

Konfigurieren Sie auf jedem sekundären Replikathost (Node2) die Verteilung für die erste Verfügbarkeitsgruppe. Geben Sie den Wert für @password an, der verwendet wurde, als sp_adddistributor beim Verteiler ausgeführt wurde, um die Verteilung einzurichten.

EXEC sys.sp_adddistributor  
   @distributor = 'Dist1',  
   @password = '<Password used when running sp_adddistributor on distributor server>' 

Integrieren Sie die Datenbank in die Verfügbarkeitsgruppe, und erstellen Sie den Listener (Peer1).

  1. Erstellen Sie auf dem vorgesehenen primären Replikat die Verfügbarkeitsgruppe mit der Datenbank als Mitgliedsdatenbank.

  2. Erstellen Sie für die Verfügbarkeitsgruppe einen DNS-Listener. Der Replikations-Agent stellt mithilfe des Listeners eine Verbindung mit dem aktuellen primären Replikat her. Im folgenden Beispiel wird ein Listener namens MyAGListenerName erstellt:

    ALTER AVAILABILITY GROUP 'MyAG'
    ADD LISTENER 'MyAGListenerName' (WITH IP (('<ip address>', '<subnet mask>') [, PORT = <listener_port>]));   
    

    Hinweis

    Im obigen Skript sind Informationen in eckigen Klammern ([ ... ]) optional. Verwenden Sie die spitzen Klammern, um einen nicht standardmäßigen Wert für den TCP-Port anzugeben. Geben Sie die Klammern nicht mit an.

Umleiten des ursprünglichen Verlegers zum Namen des Verfügbarkeitsgruppenlisteners (Peer1)

Leiten Sie auf dem Verteiler für Peer1den ursprünglichen Verleger an den Namen des Verfügbarkeitsgruppenlisteners um.

USE distribution;   
GO   
EXEC sys.sp_redirect_publisher    
@original_publisher = 'Node1',   
@publisher_db = 'MyDBName',   
@redirected_publisher = 'MyAGListenerName,<port>';   

Hinweis

Im obigen Skript ist ,<port> optional. Dies ist nur erforderlich, wenn Sie nicht standardmäßige Ports verwenden. Verwenden Sie keine spitzen Klammern <>.

Erstellen einer Peer-zu-Peer-Veröffentlichung (Peer1) auf dem ursprünglichen Verleger: Node1

Das folgende Skript erstellt die Veröffentlichung für Peer1.

EXEC master..sp_replicationdboption  @dbname=  'MyDBName'   
        ,@optname=  'publish'   
        ,@value=  'true'  
GO
DECLARE @publisher_security_mode smallint = 1
EXEC [MyDBName].dbo.sp_addlogreader_agent @publisher_security_mode = @publisher_security_mode
GO
DECLARE @allow_dts nvarchar(5) = N'false'
DECLARE @allow_pull nvarchar(5) = N'true'
DECLARE @allow_push nvarchar(5) = N'true'
DECLARE @description nvarchar(255) = N'Peer-to-Peer publication of database MyDBName from Node1'
DECLARE @enabled_for_p2p nvarchar(5) = N'true'
DECLARE @independent_agent nvarchar(5) = N'true'
DECLARE @p2p_conflictdetection nvarchar(5) = N'true'
DECLARE @p2p_originator_id int = 100
DECLARE @publication nvarchar(256) = N'P2P_MyDBName'
DECLARE @repl_freq nvarchar(10) = N'continuous'
DECLARE @restricted nvarchar(10) = N'false'
DECLARE @status nvarchar(8) = N'active'
DECLARE @sync_method nvarchar(40) = N'NATIVE'
EXEC [MyDBName].dbo.sp_addpublication @allow_dts = @allow_dts, @allow_pull = @allow_pull, @allow_push = @allow_push, @description = @description, @enabled_for_p2p = @enabled_for_p2p, @independent_agent = @independent_agent, @p2p_conflictdetection = @p2p_conflictdetection, @p2p_originator_id = @p2p_originator_id, @publication = @publication, @repl_freq = @repl_freq, @restricted = @restricted, @status = @status, @sync_method = @sync_method
GO
DECLARE @article nvarchar(256) = N'tbl0'
DECLARE @description nvarchar(255) = N'Article for dbo.tbl0'
DECLARE @destination_table nvarchar(256) = N'tbl0'
DECLARE @publication nvarchar(256) = N'P2P_MyDBName'
DECLARE @source_object nvarchar(256) = N'tbl0'
DECLARE @source_owner nvarchar(256) = N'dbo'
DECLARE @type nvarchar(256) = N'logbased'
EXEC [MyDBName].dbo.sp_addarticle @article = @article, @description = @description, @destination_table = @destination_table, @publication = @publication, @source_object = @source_object, @source_owner = @source_owner, @type = @type
GO
DECLARE @article nvarchar(256) = N'tbl1'
DECLARE @description nvarchar(255) = N'Article for dbo.tbl1'
DECLARE @destination_table nvarchar(256) = N'tbl1'
DECLARE @publication nvarchar(256) = N'P2P_MyDBName'
DECLARE @source_object nvarchar(256) = N'tbl1'
DECLARE @source_owner nvarchar(256) = N'dbo'
DECLARE @type nvarchar(256) = N'logbased'
EXEC [MyDBName].dbo.sp_addarticle @article = @article, @description = @description, @destination_table = @destination_table, @publication = @publication, @source_object = @source_object, 
@source_owner = @source_owner, @type = @type
GO

Kompatibilität von Peer-zu-Peer-Veröffentlichung mit Verfügbarkeitsgruppe (Peer1)

Führen Sie auf dem ursprünglichen Verleger (Node1) das folgende Skript aus, um die Veröffentlichung mit der Verfügbarkeitsgruppe kompatibel zu machen:

USE MyDBName
GO
DECLARE @publication sysname = N'P2P_MyDBName' 
DECLARE @property sysname = N'redirected_publisher' 
DECLARE @value sysname = N'MyAGListenerName,<port>' 
EXEC MyDBName..sp_changepublication @publication = @publication, @property = @property, @value = @value 
GO 

Hinweis

Im obigen Skript ist ,<port> optional. Dies ist nur erforderlich, wenn Sie nicht standardmäßige Ports verwenden.

Nachdem Sie die oben genannten Schritte abgeschlossen haben, ist die Verfügbarkeitsgruppe für die Teilnahme an der Peer-zu-Peer-Topologie vorbereitet. In den nächsten Schritten wird eine separate Verfügbarkeitsgruppe als zweiter Peer (Peer2) in der Peer-zu-Peer-Replikationstopologie konfiguriert.

Konfigurieren des Verteilers und des Remoteverlegers (Peer2)

In diesem Abschnitt wird beschrieben, wie Sie den zweiten Peer (Peer2) in einer anderen Verfügbarkeitsgruppe einrichten.

  1. Führen Sie sp_adddistributor aus, um die Verteilung auf Dist2 zu konfigurieren. Verwenden Sie @password =, um ein Kennwort anzugeben, das der Remoteverleger zum Herstellen einer Verbindung mit dem Verteiler verwendet. Verwenden Sie dieses Kennwort bei jedem Remoteverleger, wenn Sie den Remoteverteiler konfigurieren.

    USE master;  
    GO  
    EXEC sys.sp_adddistributor  
     @distributor = 'Dist2',  
     @password = '<Strong password for distributor>';  
    
  2. Erstellen Sie die Verteilungsdatenbank beim Verteiler.

    USE master;
    GO  
    EXEC sys.sp_adddistributiondb  
     @database = 'distribution',  
     @security_mode = 1;  
    
  3. Konfigurieren Sie den Remoteherausgeber für Node3und Node4.

    Der @security_mode bestimmt wie Replikations-Agents eine Verbindung mit dem aktuellen primären Server herstellen.

    • 1 = Windows-Authentifizierung
    • 0 = SQL Server-Authentifizierung Erfordert @login und @password. Der ausgewählte Anmeldename und das Kennwort müssen bei jedem sekundären Replikat gültig sein.

    Hinweis

    Wenn geänderte Replikations-Agents auf einem anderen Computer als dem Verteiler ausgeführt werden, dann ist bei Verwendung der Windows-Authentifizierung zum Herstellen einer Verbindung zum primären Replikat die Kerberos-Authentifizierung für die Kommunikation zwischen den Replikathostcomputern erforderlich. Bei Verwendung einer SQL Server-Anmeldung zum Herstellen einer Verbindung mit dem aktuellen primären Replikat ist keine Kerberos-Authentifizierung erforderlich.

    USE master;  
    GO  
    EXEC sys.sp_adddistpublisher  
     @publisher = 'Node3',  
     @distribution_db = 'distribution',  
     @working_directory = '\\MyReplShare\WorkingDir2',  
     @security_mode = 1
    USE master;  
    GO  
    EXEC sys.sp_adddistpublisher  
     @publisher = 'Node4',  
     @distribution_db = 'distribution',  
     @working_directory = '\\MyReplShare\WorkingDir2',  
     @security_mode = 1
    

Konfigurieren Sie den Verleger (Peer2)

  1. Konfigurieren Sie die Remoteverteilung auf (Node3). Geben Sie den Wert für @password an, der verwendet wurde, als sp_adddistributor beim Verteiler ausgeführt wurde, um die Verteilung einzurichten.

    EXEC sys.sp_adddistributor  
    @distributor = 'Dist2',  
    @password = '<Password used when running sp_adddistributor on distributor server>' 
    
  2. Aktivieren Sie die Datenbank für die Replikation.

    USE master;  
    GO  
    EXEC sys.sp_replicationdboption  
     @dbname = 'MyDBName',  
     @optname = 'publish',  
     @value = 'true';  
    

Konfigurieren Sie den sekundären Replikathost als Replikationsverleger (Node4)

Konfigurieren Sie auf jedem sekundären Replikathost (Node4) die Verteilung für die zweite Verfügbarkeitsgruppe. Geben Sie den Wert für @password an, der verwendet wurde, als sp_adddistributor beim Verteiler ausgeführt wurde, um die Verteilung einzurichten.

EXEC sys.sp_adddistributor  
   @distributor = 'Dist2',  
   @password = '<Password used when running sp_adddistributor on distributor server>' 

Integrieren Sie die Datenbank in die Verfügbarkeitsgruppe, und erstellen Sie den Listener (Peer2).

  1. Erstellen Sie auf dem vorgesehenen primären Replikat die Verfügbarkeitsgruppe mit der Datenbank als Mitgliedsdatenbank.

  2. Erstellen Sie für die Verfügbarkeitsgruppe einen DNS-Listener. Der Replikations-Agent stellt mithilfe des Listeners eine Verbindung mit dem aktuellen primären Replikat her. Im folgenden Beispiel wird ein Listener namens MyAG2ListenerName erstellt:

    ALTER AVAILABILITY GROUP 'MyAG2'
    ADD LISTENER 'MyAG2ListenerName' (WITH IP (('<ip address>', '<subnet mask>') [, PORT = <listener_port>]));   
    

    Hinweis

    Im obigen Skript sind Informationen in eckigen Klammern ([ ... ]) optional. Verwenden Sie die spitzen Klammern, um einen nicht standardmäßigen Wert für den TCP-Port anzugeben. Geben Sie die Klammern nicht mit an.

Umleiten des ursprünglichen Verlegers zum Namen des Verfügbarkeitsgruppenlisteners (Peer2)

Leiten Sie auf dem Verteiler für Peer2den ursprünglichen Verleger an den Namen des Verteilergruppen-Listeners um.

USE distribution;   
GO   
EXEC sys.sp_redirect_publisher    
@original_publisher = 'Node3',   
@publisher_db = 'MyDBName',   
@redirected_publisher = 'MyAG2ListenerName,<port>';   

Hinweis

Im obigen Skript ist ,<port> optional. Dies ist nur erforderlich, wenn Sie nicht standardmäßige Ports verwenden. Verwenden Sie keine spitzen Klammern <>.

Erstellen einer Peer-zu-Peer-Veröffentlichung (Peer2)

Das folgende Skript erstellt die Veröffentlichung für Peer2.

Führen Sie auf Node3 den folgenden Befehl aus, um die Peer-zu-Peer-Veröffentlichung zu erstellen.

EXEC master..sp_replicationdboption  @dbname=  'MyDBName'   
        ,@optname=  'publish'   
        ,@value=  'true'  
GO
DECLARE @publisher_security_mode smallint = 1
EXEC [MyDBName].dbo.sp_addlogreader_agent @publisher_security_mode = @publisher_security_mode
GO

-- Note – Make sure that the value for @p2p_originator_id is different from Peer1.
DECLARE @allow_dts nvarchar(5) = N'false'
DECLARE @allow_pull nvarchar(5) = N'true'
DECLARE @allow_push nvarchar(5) = N'true'
DECLARE @description nvarchar(255) = N'Peer-to-Peer publication of database MyDBName from Node3'
DECLARE @enabled_for_p2p nvarchar(5) = N'true'
DECLARE @independent_agent nvarchar(5) = N'true'
DECLARE @p2p_conflictdetection nvarchar(5) = N'true'
DECLARE @p2p_originator_id int = 1
DECLARE @publication nvarchar(256) = N'P2P_MyDBName'
DECLARE @repl_freq nvarchar(10) = N'continuous'
DECLARE @restricted nvarchar(10) = N'false'
DECLARE @status nvarchar(8) = N'active'
DECLARE @sync_method nvarchar(40) = N'NATIVE'
EXEC [MyDBName].dbo.sp_addpublication @allow_dts = @allow_dts, @allow_pull = @allow_pull, @allow_push = @allow_push, @description = @description, @enabled_for_p2p = @enabled_for_p2p, @independent_agent = @independent_agent, @p2p_conflictdetection = @p2p_conflictdetection, @p2p_originator_id = @p2p_originator_id, @publication = @publication, @repl_freq = @repl_freq, @restricted = @restricted, @status = @status, @sync_method = @sync_method
GO
DECLARE @article nvarchar(256) = N'tbl0'
DECLARE @description nvarchar(255) = N'Article for dbo.tbl0'
DECLARE @destination_table nvarchar(256) = N'tbl0'
DECLARE @publication nvarchar(256) = N'P2P_MyDBName'
DECLARE @source_object nvarchar(256) = N'tbl0'
DECLARE @source_owner nvarchar(256) = N'dbo'
DECLARE @type nvarchar(256) = N'logbased'
EXEC [MyDBName].dbo.sp_addarticle @article = @article, @description = @description, @destination_table = @destination_table, @publication = @publication, @source_object = @source_object, @source_owner = @source_owner, @type = @type
GO

DECLARE @article nvarchar(256) = N'tbl1'
DECLARE @description nvarchar(255) = N'Article for dbo.tbl1'
DECLARE @destination_table nvarchar(256) = N'tbl1'
DECLARE @publication nvarchar(256) = N'P2P_MyDBName'
DECLARE @source_object nvarchar(256) = N'tbl1'
DECLARE @source_owner nvarchar(256) = N'dbo'
DECLARE @type nvarchar(256) = N'logbased'
EXEC [MyDBName].dbo.sp_addarticle @article = @article, @description = @description, @destination_table = @destination_table, @publication = @publication, @source_object = @source_object, 
@source_owner = @source_owner, @type = @type
GO

Kompatibilität von Peer-zu-Peer-Veröffentlichung mit Verfügbarkeitsgruppe (Peer2)

Führen Sie auf dem ursprünglichen Verleger (Node3) das folgende Skript aus, um die Veröffentlichung mit der Verfügbarkeitsgruppe kompatibel zu machen:

USE MyDBName
GO
DECLARE @publication sysname = N'P2P_MyDBName' 
DECLARE @property sysname = N'redirected_publisher' 
DECLARE @value sysname = N'MyAG2ListenerName,<port>' 
EXEC MyDBName..sp_changepublication @publication = @publication, @property = @property, @value = @value 
GO 

Hinweis

Im obigen Skript ist ,<port> optional. Dies ist nur erforderlich, wenn Sie nicht standardmäßige Ports verwenden.

Erstellen eines Pushabonnements von Peer1 an den Verfügbarkeitsgruppenlistener für Peer2

Führen Sie den folgenden Befehl auf Node1 aus, um ein Pushabonnement von Peer1 an den Verfügbarkeitsgruppenlistener Peer2 zu erstellen.

Führen Sie das folgende Skript auf Node1 aus. Dabei wird davon ausgegangen, dass auf Node1 das primäre Replikat ausgeführt wird.

Wichtig

Das folgende Skript gibt den Namen des Verfügbarkeitsgruppenlisteners für den*die Abonnenten*innen an.

@subscriber = N'MyAGListenerName,<port>'

Hinweis

Im obigen Skript ist ,<port> optional. Dies ist nur erforderlich, wenn Sie nicht standardmäßige Ports verwenden. Verwenden Sie keine spitzen Klammern <>.

EXEC [MyDBName].dbo.sp_addsubscription 
   @publication = N'P2P_MyDBName'
 , @subscriber = N'MyAG2Listener,<port>' 
 , @destination_db = N'MyDBName'
 , @subscription_type = N'push'
 , @sync_type = N'replication support only'
GO

EXEC [MyDBName].dbo.sp_addpushsubscription_agent 
   @publication = N'P2P_MyDBName'
 , @subscriber = N'MyAG2Listener,<port>' 
 , @subscriber_db = N'MyDBName'
 , @job_login = null 
 , @job_password = null
 , @subscriber_security_mode = 1
 , @frequency_type = 64
 , @frequency_interval = 1
 , @frequency_relative_interval = 1
 , @frequency_recurrence_factor = 0
 , @frequency_subday = 4
 , @frequency_subday_interval = 5
 , @active_start_time_of_day = 0
 , @active_end_time_of_day = 235959
 , @active_start_date = 0
 , @active_end_date = 0
 , @dts_package_location = N'Distributor'
GO

Erstellen eines Pushabonnements von Peer2 an den Verfügbarkeitsgruppenlistener für (Peer1)

Führen Sie den folgenden Befehl auf Node3 aus, um ein Pushabonnement von Peer2 an den Verfügbarkeitsgruppenlistener Peer1 zu erstellen.

Wichtig

Das folgende Skript gibt den Namen des Verfügbarkeitsgruppenlisteners für den*die Abonnenten*innen an.

@subscriber = N'MyAGListenerName,<port>'

Hinweis

Im obigen Skript ist ,<port> optional. Dies ist nur erforderlich, wenn Sie nicht standardmäßige Ports verwenden. Verwenden Sie keine spitzen Klammern <>.

EXEC [MyDBName].dbo.sp_addsubscription 
   @publication = N'P2P_MyDBName'
 , @subscriber = N'MyAGListenerName,<port>'
 , @destination_db = N'MyDBName'
 , @subscription_type = N'push'
 , @sync_type = N'replication support only'
GO

EXEC [MyDBName].dbo.sp_addpushsubscription_agent 
   @publication = N'P2P_MyDBName'
 , @subscriber = N'MyAGListenerName,<port>'
 , @subscriber_db = N'MyDBName'
 , @job_login = null
 , @job_password = null
 , @subscriber_security_mode = 1
 , @frequency_type = 64
 , @frequency_interval = 1
 , @frequency_relative_interval = 1
 , @frequency_recurrence_factor = 0
 , @frequency_subday = 4
 , @frequency_subday_interval = 5
 , @active_start_time_of_day = 0
 , @active_end_time_of_day = 235959
 , @active_start_date = 0
 , @active_end_date = 0
 , @dts_package_location = N'Distributor'
GO

Konfigurieren des Verbindungsservers

Stellen Sie bei jedem sekundären Replikathost sicher, dass die Pushabonnenten der Datenbankveröffentlichungen als Verbindungsserver angezeigt werden.

EXEC sys.sp_addlinkedserver   
    @server = 'MySubscriber';

Nächste Schritte