Partilhar via


Configurar o Distributed Replay

Aplica-se a: SQL Server 2016 (13.x) SQL Server 2017 (14.x) SQL Server 2019 (15.x)

Importante

O SQL Server Distributed Replay não está disponível com o SQL Server 2022 (16.x) e versões posteriores.

Os detalhes de configuração do Microsoft SQL Server Distributed Replay são especificados em arquivos XML no controlador do Distributed Replay, clientes e onde a ferramenta de administração está instalada. Esses arquivos incluem o seguinte:

Arquivo de configuração do controlador: DReplayController.config

Quando o serviço de controlador do SQL Server Distributed Replay é iniciado, ele carrega o nível de log do arquivo de configuração do controlador, DReplayController.config. Esse arquivo está localizado na pasta onde você instalou o serviço de controlador do Distributed Replay:

<Caminho> de instalação do controlador\DReplayController.config

O nível de log especificado pelo arquivo de configuração do controlador inclui o seguinte:

Configurações Elemento XML Descrição Valores permitidos Obrigatório
Nível de registo <LoggingLevel> Especifica o nível de log para o serviço do controlador. INFORMATION | WARNING | CRITICAL Não. Por predefinição, o valor é CRITICAL.

Exemplo

Este exemplo mostra um ficheiro de configuração do controlador que foi modificado para ocultar INFORMATION e WARNING entradas de log.

<?xml version='1.0'?> 
<Options> 
<LoggingLevel>CRITICAL</LoggingLevel> 
</Options> 

Arquivo de configuração do cliente: DReplayClient.config

Quando o serviço de cliente do SQL Server Distributed Replay é iniciado, ele carrega as definições de configuração do arquivo de configuração do cliente, DReplayClient.config. Esse arquivo está localizado em cada cliente, na pasta onde você instalou o serviço de cliente do Distributed Replay:

<caminho de instalação> do cliente\DReplayClient.config

As configurações especificadas pelo arquivo de configuração do cliente incluem o seguinte:

Configurações Elemento XML Descrição Valores permitidos Obrigatório
Controlador <Controller> Especifica o nome do computador do controlador. O cliente tentará se registrar no ambiente do Distributed Replay entrando em contato com o controlador. Você pode usar "localhost" ou "." para se referir ao computador local. Não. Por padrão, o cliente tenta se registrar com a instância do controlador que está sendo executada localmente ("."), se ela existir.
Diretório de trabalho do cliente <WorkingDirectory> É o caminho local no cliente onde os arquivos de despacho são salvos.

Os arquivos neste diretório são substituídos na próxima repetição.
Um nome de diretório completo, começando com a letra da unidade. Não. Se nenhum valor for especificado, os arquivos de despacho serão salvos no mesmo local que o arquivo de configuração do cliente padrão. Se um valor for especificado e essa pasta não existir no cliente, o serviço do cliente não será iniciado.
Diretório de resultados do cliente <ResultDirectory> É o caminho local no cliente onde o ficheiro de registo de resultados da atividade de repetição (para o cliente) é salvo.

Os arquivos neste diretório são substituídos na próxima repetição.
Um nome de diretório completo, começando com a letra da unidade. Não. Se nenhum valor for especificado, o arquivo de rastreamento de resultados será salvo no mesmo local que o arquivo de configuração do cliente padrão. Se um valor for especificado e essa pasta não existir no cliente, o serviço do cliente não será iniciado.
Nível de registo <LoggingLevel> É o nível de log para o serviço do cliente. INFORMATION | WARNING | CRITICAL Não. Por predefinição, o valor é CRITICAL.

Exemplo

Este exemplo mostra um arquivo de configuração do cliente que foi modificado para especificar que o serviço do controlador está sendo executado em um computador diferente, um computador chamado Controller1. Os WorkingDirectory elementos e ResultDirectory foram configurados para usar pastas c:\ClientWorkingDir e c:\ResultTraceDir, respectivamente. O nível de registo foi alterado do valor padrão para suprimir as entradas de registo INFORMATION e WARNING.

<?xml version='1.0'?> 
<Options> 
    <Controller>Controller1</Controller> 
    <WorkingDirectory>c:\ClientWorkingDir</WorkingDirectory> 
    <ResultDirectory>c:\ResultTraceDir</ResultDirectory> 
    <LoggingLevel>CRITICAL</LoggingLevel> 
</Options> 

Arquivo de configuração de pré-processamento: DReplay.exe.preprocess.config

Quando você usa a ferramenta de administração para iniciar o estágio de pré-processo, a ferramenta de administração carrega as configurações de pré-processo do arquivo de configuração de pré-processo, DReplay.exe.preprocess.config.

Use o arquivo de configuração padrão ou use o parâmetro -c da ferramenta de administração para especificar o local de um arquivo de configuração de pré-processo modificado. Para obter mais informações sobre como usar a opção de pré-processo da ferramenta de administração, consulte Opção de pré-processo (Distributed Replay Administration Tool).

O arquivo de configuração de pré-processamento padrão está localizado na pasta onde você instalou a ferramenta de administração:

<Caminho> de instalação da ferramenta de administração\DReplayAdmin\DReplay.exe.preprocess.config

As definições de configuração de pré-processamento são especificadas em elementos XML que são filhos do <PreprocessModifiers> elemento no arquivo de configuração de pré-processamento. Essas configurações incluem o seguinte:

Configurações Elemento XML Descrição Valores permitidos Obrigatório
Incluir atividades de sessão do sistema <IncSystemSession> Indica se as atividades da sessão do sistema durante a captura serão incluídas durante a reprodução. Yes | No Não. Por predefinição, o valor é No.
Tempo máximo de marcha lenta sem carga <MaxIdleTime> Limita o tempo ocioso a um número absoluto (em segundos). Um inteiro que é >= -1.

-1 Indica nenhuma alteração em relação ao valor original no arquivo de rastreamento original.

0 indica que há alguma atividade acontecendo em um determinado momento.
Não. Por predefinição, o valor é -1.

Exemplo

O arquivo de configuração de pré-processamento padrão:

<?xml version='1.0'?> 
<Options> 
    <PreprocessModifiers> 
        <IncSystemSession>No</IncSystemSession> 
        <MaxIdleTime>-1</MaxIdleTime> 
    </PreprocessModifiers> 
</Options> 

Arquivo de configuração de repetição: DReplay.exe.replay.config

Quando se utiliza a ferramenta de administração para iniciar a fase de reprodução de eventos, esta carrega as definições de reprodução a partir do ficheiro de configuração de repetição, DReplay.exe.replay.config.

Use o arquivo de configuração padrão ou use o parâmetro -c da ferramenta de administração para especificar o local de um arquivo de configuração de repetição modificado. Para obter mais informações sobre como usar a opção de repetição da ferramenta de administração, consulte Opção de repetição (Distributed Replay Administration Tool).

O arquivo de configuração de repetição padrão está localizado na pasta onde você instalou a ferramenta de administração:

<Caminho> de instalação da ferramenta de administração\DReplayAdmin\DReplay.exe.replay.config

As definições de configuração de repetição são especificadas em elementos XML que são filhos dos elementos <ReplayOptions> e <OutputOptions> do arquivo de configuração de repetição.

<Elemento ReplayOptions>

As configurações especificadas pelo ficheiro de configuração de repetição no elemento <ReplayOptions> incluem o seguinte:

Configurações Elemento XML Descrição Valores permitidos Obrigatório
Instância de destino do SQL Server (o servidor de teste) <Server> Especifica o nome do servidor e da instância do SQL Server aos quais se conectar. server_name[\instance_name]

Não é possível usar "localhost" ou "." para representar o host local.
Não, se o nome do servidor já estiver especificado usando o parâmetro de servidor de destino-s com a opção de repetição da ferramenta de administração.
Modo de sequenciação <SequencingMode> Especifica o modo usado para agendamento de eventos. synchronization | stress Não. Por predefinição, o valor é stress.
Granularidade da escala de tensões <StressScaleGranularity> Especifica se todas as conexões na ID de Sessão (SPID) devem ser dimensionadas juntas (SPID) ou independentemente (Conexão) no modo de estresse. SPID | Ligação Sim. Por predefinição, o valor é SPID.
Escala de tempo de conexão <ConnectTimeScale> É usado para dimensionar o tempo de conexão no modo de estresse. Um inteiro entre 1 e 100. Não. Por predefinição, o valor é 100.
Pense na escala de tempo <ThinkTimeScale> É usado para escalar o tempo de pensamento no modo de estresse. Um inteiro entre 0 e 100. Não. Por predefinição, o valor é 100.
Utilizar o pool de conexões <UseConnectionPooling> Especifica se o pool de conexões será habilitado em cada cliente do Distributed Replay. Sim | Não Sim. Por predefinição, o valor é Yes.
Intervalo do monitor de saúde <HealthmonInterval> Indica a frequência de execução do monitor de integridade (em segundos).

Esse valor só é usado no modo de sincronização.
Inteiro >= 1

-1( para desativar)
Não. Por predefinição, o valor é 60.
Tempo limite da consulta <QueryTimeout> Especifica o valor de tempo limite da consulta, em segundos. Esse valor só é efetivo até que a primeira linha tenha sido retornada. Inteiro >= 1

-1( para desativar)
Não. Por predefinição, o valor é 3600.
Threads por cliente <ThreadsPerClient> Especifica o número de threads de repetição a serem usados para cada cliente de repetição. Um inteiro entre 1 e 512. Não. Se não for especificado, o Distributed Replay usará um valor de 255.

<Elemento de Opções de Saída>

As configurações especificadas pelo ficheiro de configuração de repetição no elemento <OutputOptions> incluem o seguinte:

Configurações Elemento XML Descrição Valores permitidos Obrigatório
Contagem de linhas recorde <RecordRowCount> Indica se a contagem de linhas deve ser registrada para cada conjunto de resultados. Yes | No Não. Por predefinição, o valor é Yes.
Conjunto de resultados recorde <RecordResultSet> Indica se o conteúdo de todos os conjuntos de resultados deve ser registrado. Yes | No Não. Por predefinição, o valor é No.

Exemplo

O arquivo de configuração de repetição padrão:

<?xml version='1.0'?> 
<Options> 
    <ReplayOptions> 
        <Server></Server> 
        <SequencingMode>stress</SequencingMode> 
        <ConnectTimeScale></ConnectTimeScale> 
        <ThinkTimeScale></ThinkTimeScale> 
        <HealthmonInterval>60</HealthmonInterval> 
        <QueryTimeout>3600</QueryTimeout> 
        <ThreadsPerClient></ThreadsPerClient> 
    </ReplayOptions> 
    <OutputOptions> 
        <ResultTrace> 
            <RecordRowCount>Yes</RecordRowCount> 
            <RecordResultSet>No</RecordResultSet> 
        </ResultTrace> 
    </OutputOptions> 
</Options> 

Possível problema quando se executa com o modo de sequenciamento de sincronização

Você pode encontrar um sintoma no qual a funcionalidade de repetição parece "parar" ou repete eventos lentamente. Esse fenômeno pode ocorrer se o rastreamento que está sendo repetido depender de dados e/ou eventos que não existem no banco de dados de destino restaurado.

Um exemplo é uma carga de trabalho capturada que usa WAITFOR, como na instrução WAITFOR RECEIVE do Service Broker. Ao usar o modo de sequenciamento de sincronização, os lotes são repetidos em série. Se um INSERT ocorrer no banco de dados de origem após o backup do banco de dados, mas antes que o rastreamento de captura de repetição seja iniciado, o WAITFOR RECEIVE emitido durante a reprodução pode ter que aguardar toda a duração do WAITFOR. Os eventos configurados para serem repetidos após o WAITFOR RECEIVE serão adiados. Isso pode fazer com que o contador do monitor de desempenho Batch Requests/sec para o destino do banco de dados de repetição caia para zero até que o WAITFOR seja concluído.

Se você precisar usar o modo de sincronização e desejar evitar esse comportamento, deverá fazer o seguinte:

  1. Desative os bancos de dados que você usará como alvos de repetição.

  2. Permita que todas as atividades pendentes sejam concluídas.

  3. Faça backup dos bancos de dados e permita que os backups sejam concluídos.

  4. Inicie a sessão de captura de traços de reprodução distribuída e retome a carga de trabalho normal.

Ver também