Como medir a latência e validar conexões para replicação de transação (Programação Transact-SQL de replicação)

Para a replicação de transação, é importante poder verificar se os servidores estão conectados e medir a latência. A latência é o tempo necessário para que as alterações efetuadas no Publicador sejam propagadas aos Assinantes. Para obter mais informações, consulte Monitorando (Replicação). Essas informações podem ser obtidas, de forma programada, usando os procedimentos de replicação armazenados.

ObservaçãoObservação

As informações dos tokens de rastreamento são retidas pelo mesmo período de tempo dos demais dados históricos, que é regido pelo período de retenção de histórico do banco de dados de distribuição. Para alterar o período de retenção, altere o valor da propriedade history_retention usando sp_changedistributiondb (Transact-SQL).

Para publicar um token de rastreamento em uma publicação transacional

  1. (Opcional) No Publicador do banco de dados de publicação, execute sp_helppublication (Transact-SQL). Verifique se a publicação existe e se o status é ativo.

  2. (Opcional) No Publicador do banco de dados de publicação, execute sp_helpsubscription (Transact-SQL). Verifique se a assinatura existe e se o status é ativo.

  3. No Publicador do banco de dados de publicação, execute sp_posttracertoken (Transact-SQL), especificando @publication. Observe o valor do parâmetro de saída @tracer_token_id.

Para determinar a latência e validar as conexões para uma publicação transacional

  1. Publique um token de rastreamento na publicação usando o procedimento anterior.

  2. No Publicador do banco de dados de publicação, execute sp_helptracertokens (Transact-SQL), especificando @publication. Isso retorna uma lista de todos os tokens de rastreamento publicados na publicação. Observe o tracer_id desejado no conjunto de resultados.

  3. No Publicador do banco de dados de publicação, execute sp_helptracertokenhistory (Transact-SQL), especificando @publication e o ID do token de rastreamento na etapa 2 para @tracer_id. Isso retorna informações de latência para o token de rastreamento selecionado.

Para remover tokens de rastreamento

  1. No Publicador do banco de dados de publicação, execute sp_helptracertokens (Transact-SQL), especificando @publication. Isso retorna uma lista de todos os tokens de rastreamento publicados na publicação. Observe o tracer_id a ser excluído pelo token de rastreamento no conjunto de resultados.

  2. No Publicador do banco de dados de publicação, execute sp_deletetracertokenhistory (Transact-SQL), especificando @publication e a ID do rastreamento a serem excluídos da etapa 2 para @tracer_id.

Exemplo

Esse exemplo publica um registro dos tokens de rastreamento, e usa o ID retornado do token de rastreamento publicado, para exibir as informações da latência.

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

USE [AdventureWorks2008R2]

-- 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