Reprodução de um rastreamento no Assistente para Experimentos de Banco de Dados

No Assistente para Experimentos de Banco de Dados (DEA), é possível reproduzir um arquivo de rastreamento capturado em um ambiente de teste atualizado. Por exemplo, considere uma carga de trabalho de produção em execução no SQL Server 2008 R2. O arquivo de rastreamento da carga de trabalho deve ser reproduzido duas vezes: uma vez em um ambiente com a mesma versão do SQL Server em execução na produção e uma segunda vez em um ambiente que tenha a versão de destino do SQL Server de atualização, como o SQL Server 2016.

Observação

A reprodução de um rastreamento requer que você configure manualmente máquinas virtuais ou computadores físicos para executar rastreamentos do Distributed Replay. Para obter mais informações, consulte Configurar o Distributed Replay para o Assistente para Experimentos de Banco de Dados.

Configurar uma reprodução de rastreamento para o destino 1

Primeiro, você precisa executar uma reproduções de rastreamento no destino 1, que representa o ambiente de produção existente.

  1. No DEA, na barra de navegação à esquerda, selecione o ícone de seta e, na página Todas as Reproduções, escolha Nova Reprodução.

    Create a replay in DEA

    Observação

    O computador controlador do Distributed Replay requer permissões para a conta de usuário que você usa para se conectar remotamente.

  2. Na página Nova Reprodução, em Detalhes da Reprodução, insira ou escolha as seguintes informações:

    • Nome da reprodução: insira um nome para a reprodução de rastreamento.

    • Formato do rastreamento de origem: especifique o formato (Trace ou XEvents) do arquivo de rastreamento de origem.

    • Caminho completo para o arquivo de origem: especifique o caminho completo para o arquivo de rastreamento de origem. Se estiver usando o DReplay, o arquivo deve existir no computador que serve como controlador do DReplay e a conta de usuário precisar ter acesso ao arquivo e à pasta.

    • Ferramenta de reprodução: especifique a ferramenta de reprodução (DReplay ou InBuilt).

    • Nome da máquina do controlador: especifique o nome do computador que serve como controlador do Distributed Replay.

    • Local de rastreamento da reprodução: especifique o caminho para o armazenamento de arquivos de rastreamento/XEvents associados à reprodução de rastreamento.

      Observação

      Para um Banco de Dados SQL do Azure ou uma Instância Gerenciada de SQL do Azure, você precisa fornecer o URI de SAS da conta do Armazenamento de Blobs do Azure.

  3. Verifique se você restaurou os bancos de dados ao marcar a caixa de seleção Sim, restaurei manualmente os bancos de dados.

  4. Em Detalhes de conexão do SQL Server, insira ou escolha as seguintes informações:

    • Tipo de Servidor: especifique o tipo de SQL Server (SqlServer, AzureSqlDb e AzureSqlManagedInstance).
    • Nome do Servidor: especifique o nome do servidor ou o endereço IP do SQL Server.
    • Tipo de autenticação: para o tipo de autenticação, escolha Windows.
    • Nome do banco de dados: insira um nome para o banco de dados no qual um rastreamento no lado do servidor terá início. Se você não especificar um banco de dados, o rastreamento será capturado em todos os bancos de dados do servidor.
  5. Marque ou desmarque as caixas de seleção Criptografar conexão e Confiar no certificado do servidor, conforme apropriado para seu cenário.

    New Replay page

Iniciar a reprodução de rastreamento no destino 1

  • Depois de inserir ou escolher as informações necessárias, selecione Iniciar para iniciar a reprodução de rastreamento.

    Se as informações inseridas forem válidas, o processo do Distributed Replay terá início. Caso contrário, as caixas de texto que contêm informações incorretas são destacadas em vermelho. Certifique-se de que os valores inseridos estejam corretos e, em seguida, escolha Iniciar.

    Replay progress against target 1

    Você pode monitorar o processo, se necessário. Quando a execução da reprodução for concluída, o DEA armazenará os resultados em um arquivo no local especificado por você.

    Replay against target 1 complete

Executar a reprodução de rastreamento no destino 2

Depois de concluir a execução da reprodução de rastreamento no destino 1, será necessário fazer o mesmo em relação ao segundo destino, que representa o ambiente de atualização pretendido.

  1. Configure uma reprodução de rastreamento, desta vez usando detalhes associados ao ambiente de destino 2.

  2. Iniciar a reprodução de rastreamento no destino 2.

    Você pode monitorar o processo, se necessário. Quando a execução da reprodução for concluída, o DEA armazenará os resultados em um arquivo no local especificado por você.

Perguntas frequentes sobre a reprodução de rastreamento

P: Quais permissões de segurança são necessárias para dar início a uma captura de reprodução no meu servidor de destino?

  • O usuário do Windows que está executando a operação de rastreamento no aplicativo do DEA deve ter direitos de administrador de sistemas no computador de destino em que o SQL Server está em execução. Esses direitos do usuário são necessários para iniciar um rastreamento.
  • A conta de serviço sob a qual o computador de destino em que o SQL Server está em execução deve ter acesso para gravação ao caminho do arquivo de rastreamento especificado.
  • A conta de serviço sob a qual os serviços do Distributed Replay Client estão em execução deve ter direitos do usuário para se conectar ao computador de destino em que o SQL Server está em execução e para executar consultas.

P: É possível iniciar mais de uma reprodução na mesma sessão?

Sim, você pode iniciar diversas reproduções e acompanhá-las até a conclusão na mesma sessão.

P: É possível iniciar mais de uma reprodução em paralelo?

Sim, mas não com o mesmo conjunto de computadores selecionado em Controlador mais Clientes. O controlador e os clientes estarão ocupados. Configure um conjunto separado de computadores em Controlador mais Cliente para iniciar uma reprodução em paralelo.

P: Normalmente, quanto tempo demora para uma reprodução terminar?

Uma reprodução normalmente demora o mesmo tempo que o rastreamento de origem acrescido do tempo necessário para processar previamente o rastreamento de origem. No entanto, se os computadores clientes registrados no controlador não forem suficientes para gerenciar a carga produzida a partir da reprodução, a reprodução poderá demorar mais para ser concluída. Você pode fazer o registro de até 16 computadores clientes no controlador.

P: Qual é o tamanho dos arquivos de rastreamento de destino?

Os arquivos de rastreamento de destino podem ter entre 5 e 15 vezes o tamanho do rastreamento de origem. O tamanho do arquivo é baseado em quantas consultas são executadas. Por exemplo, os blobs do plano de consulta podem ser grandes. Se as estatísticas dessas consultas forem alteradas frequentemente, mais eventos serão capturados.

P: Por que é necessário restaurar bancos de dados?

O SQL Server é um sistema de gerenciamento de banco de dados relacional com estado. Para executar corretamente um teste A/B, o estado do banco de dados deve ser retido o tempo todo. Caso contrário, você poderá obter erros nas consultas durante a reprodução que não aparecerão na produção. Para evitar esses erros, recomendamos que você faça um backup antes da captura da origem. De forma semelhante, é necessário restaurar o backup no computador de destino em que o SQL Server está em execução para evitar erros durante a reprodução.

P: O que significa “% de aprovação” na página de reprodução?

% de aprovação significa que somente uma porcentagem das consultas foi aprovada. Você pode diagnosticar se o número de erros é esperado. Os erros podem ser esperados ou podem ocorrer porque o banco de dados perdeu a integridade. Se o valor para % de aprovação não for o esperado, você poderá interromper o rastreamento e examinar o arquivo de rastreamento no SQL Profiler para obter quais consultas não tiveram êxito.

P: Como faço para visualizar os eventos de rastreamento coletados durante a reprodução?

Abra um arquivo de rastreamento de destino e realize a exibição no SQL Profiler. Como alternativa, se você desejar fazer modificações na captura de reprodução, todos os scripts do SQL Server estão disponíveis em C:\Program Files (x86)\Microsoft Corporation\Database Experimentation Assistant\Scripts\StartReplayCapture.sql.

P: Quais eventos de rastreamento o DEA coleta durante a reprodução?

O DEA captura eventos de rastreamento que contêm informações relacionadas ao desempenho. A configuração de captura está no script StartReplayCaptureTrace.sql. Esses eventos são típicos eventos de rastreamento do SQL Server listados na documentação de referência para sp_trace_setevent (Transact-SQL).

Solucionar problemas da reprodução de rastreamento

P: Por que não consigo me conectar ao computador em que o SQL Server está em execução?

  • Confirme se o nome do computador que está executando o SQL Server é válido. Para confirmar, tente se conectar ao servidor usando o SQL Server Management Studio (SSMS).
  • Confirme se a configuração do firewall não bloqueia conexões com o computador em que o SQL Server está em execução.
  • Confirme se o usuário tem os direitos do usuário necessários.
  • Confirme se a conta de serviço do cliente do Distributed Replay tem acesso ao computador em que o SQL Server está em execução.

Você pode obter mais detalhes nos logs em %temp%\DEA. Se o problema persistir, entre em contato com a equipe do produto.

P: Por que não consigo me conectar ao controlador do Distributed Replay?

  • Verifique se o serviço do controlador do Distributed Replay está em execução no computador controlador. Para verificar, use as Ferramentas de Gerenciamento do Distributed Replay (execute o comando dreplay.exe status -f 1).
  • Se a reprodução for iniciada remotamente:
    • Confirme se o computador que executa o DEA consegue executar ping no controlador com êxito. Confirme se as configurações do firewall permitem conexões de acordo com as instruções na página Configurar Ambiente de Reprodução. Para obter mais informações, consulte o artigo SQL Server Distributed Replay.
    • Certifique-se de que o Início Remoto e a Ativação Remota do Distributed COM estejam permitidos para o usuário do controlador do Distributed Replay.
    • Certifique-se de que os direitos do usuário de Acesso Remoto do Distributed COM estejam permitidos para o usuário do controlador do Distributed Replay.

P: O caminho do arquivo de rastreamento existe no meu computador. Por que o controlador do Distributed Replay não consegue encontrá-lo?

O Distributed Replay pode acessar somente recursos do disco local. Você deve copiar os arquivos de rastreamento de origem para o computador controlador do Distributed Replay antes de iniciar a reprodução. Além disso, você deve fornecer o caminho na página Nova Reprodução do DEA.

Os caminhos UNC não são compatíveis com o Distributed Replay. Os caminhos do Distributed Replay devem ser caminhos absolutos e locais para o primeiro arquivo de rastreamento de origem, incluindo a extensão.

P: Por que não consigo procurar arquivos na página Nova Reprodução?

Como não é possível procurar pelas pastas em um computador remoto, procurar arquivos não é útil. É mais eficiente copiar e colar os caminhos absolutos.

P: Iniciei a reprodução com um rastreamento, mas o Distributed Replay não reproduziu nenhum evento. Por quê?

Esse problema pode ocorrer porque o arquivo de rastreamento não contém eventos reproduzíveis nem informações sobre como reproduzir eventos. Confirme se o caminho do arquivo de rastreamento fornecido direciona para um arquivo de rastreamento de origem. O arquivo de rastreamento de origem é criado ao usar a configuração fornecida no script StartCaptureTrace.sql.

P: Obtenho “Ocorreu um erro inesperado!” quando tento processar previamente meus arquivos de rastreamento usando o controlador do Distributed Replay do SQL Server 2017. Por quê?

Esse problema é conhecido na versão RTM do SQL Server 2017. Para obter mais informações, consulte Erro inesperado ao usar o recurso DReplay para reproduzir um rastreamento capturado no SQL Server 2017.

O problema foi resolvido na Atualização Cumulativa 1 mais recente para o SQL Server 2017. Faça download da última versão da Atualização Cumulativa 1 para SQL Server 2017.

Confira também

  • Para criar um relatório de análise que ajude você a obter insights sobre as alterações propostas, consulte Criar relatórios.