Vorgehensweise: Messen der Latenzzeit und Überprüfen der Verbindungen für die Transaktionsreplikation (Replikationsprogrammierung mit Transact-SQL)

Bei der Transaktionsreplikation ist es wichtig, dass überprüft werden kann, ob die Server verbunden sind, und dass die Latenzzeit gemessen werden kann. Latenzzeit ist die Zeit, die es dauert, um auf dem Verleger vorgenommene Änderungen an Abonnenten weiterzugeben. Weitere Informationen finden Sie unter Überwachen (Replikation). Diese Informationen können programmgesteuert mithilfe gespeicherter Replikationsprozeduren abgerufen werden.

HinweisHinweis

Die Informationen von Überwachungstoken werden für den gleichen Zeitraum wie andere Vergangenheitsdaten beibehalten. Der Zeitraum wird durch die Aufbewahrungsdauer für den Verlauf der Verteilungsdatenbank festgelegt. Um die Beibehaltungsdauer zu ändern, ändern Sie den Wert der history_retention-Eigenschaft mithilfe von sp_changedistributiondb (Transact-SQL).

So stellen Sie ein Überwachungstoken für eine Transaktionsveröffentlichung bereit

  1. (Optional) Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_helppublication (Transact-SQL)> aus. Stellen Sie sicher, dass die Veröffentlichung vorhanden und der Status aktiv ist.

  2. (Optional) Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_helpsubscription (Transact-SQL) aus. Stellen Sie sicher, dass das Abonnement vorhanden und der Status aktiv ist.

  3. Führen Sie sp_posttracertoken (Transact-SQL) auf dem Verleger für die Veröffentlichungsdatenbank unter Angabe von @publication aus. Beachten Sie den Wert des @ tracer_token_id-Ausgabeparameters.

So können Sie die Latenzzeit bestimmen und die Verbindungen für eine Transaktionveröffentlichung überprüfen

  1. Stellen Sie mithilfe der vorherigen Prozedur ein Überwachungstoken für die Veröffentlichung bereit.

  2. Führen Sie sp_helptracertokens (Transact-SQL) auf dem Verleger für die Veröffentlichungsdatenbank unter Angabe von @publication aus. Dadurch wird eine Liste aller für die Veröffentlichung bereitgestellten Überwachungstoken zurückgegeben. Beachten Sie die gewünschte tracer_id im Resultset.

  3. Führen Sie sp_helptracertokenhistory (Transact-SQL) auf dem Verleger für die Veröffentlichungsdatenbank unter Angabe von @publication und der Überwachungstoken-ID aus Schritt 2 für @tracer_id aus. Dadurch werden Latenzzeitinformationen für das ausgewählte Überwachungstoken zurückgegeben.

So entfernen Sie Überwachungstoken

  1. Führen Sie sp_helptracertokens (Transact-SQL) auf dem Verleger für die Veröffentlichungsdatenbank unter Angabe von @publication aus. Dadurch wird eine Liste aller für die Veröffentlichung bereitgestellten Überwachungstoken zurückgegeben. Beachten Sie die tracer_id für das zu löschende Überwachungstoken im Resultset.

  2. Führen Sie sp_deletetracertokenhistory (Transact-SQL) auf dem Verleger für die Veröffentlichungsdatenbank unter Angabe von @publication und der ID des zu löschenden Überwachungstokens aus Schritt 2 für @tracer_id aus.

Beispiel

In diesem Beispiel wird ein Überwachungstoken-Datensatz bereitgestellt, und dann werden mithilfe der zurückgegebenen ID des bereitgestellten Überwachungstokens Latenzinformationen angezeigt.

DECLARE @publication AS sysname;
DECLARE @tokenID AS int;
SET @publication = N'AdvWorksProductTran'; 

USE [AdventureWorks]

-- Insert a new tracer token in the publication database.
EXEC sys.sp_posttracertoken 
  @publication = @publication,
  @tracer_token_id = @tokenID OUTPUT;
SELECT 'The ID of the new tracer token is ''' + 
    CONVERT(varchar,@tokenID) + '''.'
GO

-- Wait 10 seconds for the token to make it to the Subscriber.
WAITFOR DELAY '00:00:10';
GO

-- Get latency information for the last inserted token.
DECLARE @publication AS sysname;
DECLARE @tokenID AS int;
SET @publication = N'AdvWorksProductTran'; 

CREATE TABLE #tokens (tracer_id int, publisher_commit datetime)

-- Return tracer token information to a temp table.
INSERT #tokens (tracer_id, publisher_commit)
EXEC sys.sp_helptracertokens @publication = @publication;
SET @tokenID = (SELECT TOP 1 tracer_id FROM #tokens
ORDER BY publisher_commit DESC)
DROP TABLE #tokens

-- Get history for the tracer token.
EXEC sys.sp_helptracertokenhistory 
  @publication = @publication, 
  @tracer_id = @tokenID;
GO