SQL Server Distributed Replay

Si applica a: SQL Server 2016 (13.x), SQL Server 2017 (14.x) e SQL Server 2019 (15.x)

Importante

SQL Server Riesecuzione distribuita non è disponibile con SQL Server anteprima 2022 (16.x).

La funzionalità Microsoft SQL Server Riesecuzione distribuita consente di valutare l'impatto degli aggiornamenti futuri SQL Server. È anche possibile usarlo per valutare l'impatto degli aggiornamenti hardware e del sistema operativo e SQL Server l'ottimizzazione.

Vantaggi di Distributed Replay

Analogamente a SQL Server Profiler, è possibile usare Riesecuzione distribuita per riprodurre una traccia acquisita in un ambiente di test aggiornato. A differenza di SQL Server Profiler, Riesecuzione distribuita non è limitato alla riproduzione del carico di lavoro da un singolo computer.

ma offre una soluzione più scalabile rispetto a SQL Server Profiler. Con Distributed Replay è possibile riprodurre un carico di lavoro da più computer e simulare in modo migliore un carico di lavoro di importanza critica.

La funzionalità Microsoft SQL Server Riesecuzione distribuita può usare più computer per riprodurre i dati di traccia e simulare un carico di lavoro cruciale. Utilizzare Distributed Replay per testare la compatibilità delle applicazioni e le prestazioni o per pianificare la capacità.

Quando utilizzare Distributed Replay

SQL Server Profiler e Riesecuzione distribuita offrono alcune funzionalità sovrapposte.

È possibile usare SQL Server Profiler per riprodurre una traccia acquisita in un ambiente di test aggiornato. È inoltre possibile analizzare i risultati di riproduzione per cercare possibili incompatibilità funzionali e di prestazioni. Tuttavia, SQL Server Profiler può riprodurre solo un carico di lavoro da un singolo computer. Durante la riproduzione di un'applicazione OLTP a elevato utilizzo con connessioni simultanee attive o velocità effettiva elevata, SQL Server Profiler può diventare un collo di bottiglia della risorsa.

ma offre una soluzione più scalabile rispetto a SQL Server Profiler. Utilizzarlo per riprodurre un carico di lavoro da più computer e simulare in modo migliore un carico di lavoro di importanza critica.

Nella tabella seguente viene descritto quando utilizzare ciascuno strumento.

Strumento Usare se...
SQL Server Profiler Si desidera utilizzare il meccanismo di riproduzione convenzionale in un singolo computer. In particolare, sono necessarie funzionalità di debug riga per riga, ad esempio i comandi Passaggio, Esegui fino al cursoree Imposta/Rimuovi punto di interruzione .

Si vuole riprodurre una traccia di Analysis Services.
Distributed Replay Si desidera valutare la compatibilità delle applicazioni. Ad esempio, si vogliono testare scenari di aggiornamento SQL Server e del sistema operativo, aggiornamenti hardware o ottimizzazione dell'indice.

La concorrenza nella traccia acquisita è talmente elevata che un singolo client di riproduzione non è in grado di simularla in modo appropriato.

Concetti di base di Distributed Replay

I componenti seguenti costituiscono l'ambiente di Distributed Replay:

  • Strumento di amministrazione Riesecuzione distribuita: applicazione console, DReplay.exe, usata per comunicare con il servizio controller di Riesecuzione distribuita. Utilizzare lo strumento di amministrazione per controllare la riproduzione distribuita.

  • Riesecuzione distribuita controller: un computer che esegue il servizio Windows denominato SQL Server Riesecuzione distribuita controller. Con il controller di Riesecuzione distribuita è possibile orchestrare le azioni dei client Riesecuzione distribuita. In ogni ambiente di Riesecuzione distribuita può essere presente una sola istanza del controller.

  • Riesecuzione distribuita client: uno o più computer (fisici o virtuali) che eseguono il servizio Windows denominato SQL Server Riesecuzione distribuita client. I client Riesecuzione distribuita vengono utilizzati insieme per simulare carichi di lavoro in un'istanza di SQL Server. In ogni ambiente di Riesecuzione distribuita possono essere presenti uno o più client.

  • Server di destinazione: istanza di SQL Server che i client Riesecuzione distribuita possono usare per riprodurre i dati di traccia. È consigliabile posizionare il server di destinazione in un ambiente di testing.

Distributed Replay Administration Tool, Controller e Client possono essere installati in computer diversi o sullo stesso computer. Sullo stesso computer può essere in esecuzione una sola istanza del servizio Distributed Replay Controller o Client.

La figura seguente illustra l'architettura fisica SQL Server Riesecuzione distribuita:

Architettura Riesecuzione distribuita

Attività Distributed Replay

Descrizione dell'attività Argomento
Viene descritto come configurare Distributed Replay. Configurare Riesecuzione distribuita
Viene descritto come preparare i dati di traccia di input. Preparare i dati di traccia di input
Viene descritto come riprodurre i dati di traccia. Rieseguire i dati di traccia
Viene descritto come rivedere i risultati dei dati di traccia di Distributed Replay. Esaminare i risultati della riesecuzione
Viene descritto come usare lo strumento di amministrazione per avviare, monitorare e annullare operazioni nel controller. Opzioni della riga di comando dello strumento di amministrazione (Distributed Replay Utility)

Requisiti

Prima di usare la funzionalità Microsoft SQL Server Riesecuzione distribuita, prendere in considerazione i requisiti del prodotto descritti in questo argomento.

Requisiti della traccia di input

Affinché possano essere riprodotti correttamente, i dati di traccia devono soddisfare i requisiti per la versione e il formato e contenere le colonne e gli eventi necessari.

Versioni della traccia di input

Riesecuzione distribuita supporta i dati di traccia di input raccolti nelle versioni seguenti di SQL Server:

  • SQL Server 2017 (14.x) Aggiornamento cumulativo 1 e versioni successive. Vedere Aggiornamenti cumulativi per SQL Server 2017.
  • SQL Server 2016 (13.x)
  • SQL Server 2014 (12.x)
  • SQL Server 2012 (11.x)
  • SQL Server 2008 R2
  • SQL Server 2008
  • SQL Server 2005 (9.x)

Formati della traccia di input

I dati di traccia di input possono utilizzare uno dei formati seguenti:

  • Singolo file di traccia con estensione .trc .

  • Set di file di traccia di rollover che rispettano la convenzione di denominazione per il rollover dei file, ad esempio <TraceFile>.trc, <TraceFile>_1.trc, <TraceFile>_2.trc, <TraceFile>_3.trc, ... <TraceFile>_n.trc.

Eventi e colonne della traccia di input

I dati di traccia di input devono contenere colonne ed eventi specifici, che devono essere rieseguiti da Riesecuzione distribuita. Il modello di TSQL_Replay in SQL Server Profiler contiene tutti gli eventi e le colonne necessari, oltre a informazioni aggiuntive. Per altre informazioni sul modello, vedere Requisiti per la riproduzione.

Avviso

Se non si usa il modello TSQL_Replay per acquisire i dati di traccia di input o se i requisiti della traccia di input non sono soddisfatti, è possibile che si verifichino risultati di riproduzione imprevisti.

È inoltre possibile creare un modello di traccia personalizzato e utilizzarlo per riprodurre eventi con Riesecuzione distribuita, purché contenga gli eventi seguenti:

  • Connessione di controllo

  • Disconnessione di controllo

  • ExistingConnection

  • RPC Output Parameter

  • RPC:Completed

  • RPC:Starting

  • SQL:BatchCompleted

  • SQL:BatchStarting

Se si ripropongono cursori sul lato server, sono necessari anche gli eventi seguenti:

  • CursorClose

  • CursorExecute

  • CursorOpen

  • CursorPrepare

  • CursorUnprepare

Se si riproponono istruzioni SQL preparate sul lato server, sono necessari anche gli eventi seguenti:

  • Exec Prepared SQL

  • Prepare SQL

Tutti i dati di traccia di input devono contenere le colonne seguenti:

  • Event Class

  • EventSequence

  • TextData

  • Nome dell'applicazione

  • LoginName

  • DatabaseName

  • ID database

  • HostName

  • Binary Data

  • SPID

  • Ora di Inizio

  • EndTime

  • IsSystem

Combinazioni di traccia di input e server di destinazione supportate

Nella tabella seguente sono elencate le versioni supportate dei dati di traccia e, per ognuna, le versioni supportate di SQL Server su cui è possibile riprodurre i dati.

Versione dei dati di traccia di input Versioni supportate di SQL Server per l'istanza del server di destinazione
SQL Server 2005 (9.x) SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 (11,x), SQL Server 2014 (12.x), SQL Server 2016 (13.x), SQL Server 2017 (14.x)
SQL Server 2008 SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 (11,x), SQL Server 2014 (12.x), SQL Server 2016 (13.x), SQL Server 2017 (14.x)
SQL Server 2008 R2 SQL Server 2008 R2, SQL Server 2012 (11,x), SQL Server 2014 (12,x), SQL Server 2016 (13,x), SQL Server 2017 (14,x)
SQL Server 2012 (11.x) SQL Server 2012 (11,x), SQL Server 2014 (12.x),SQL Server 2016 (13,x), SQL Server 2017 (14.x)
SQL Server 2014 (12.x) SQL Server 2014 (12.x), SQL Server 2016 (13.x), SQL Server 2017 (14.x)
SQL Server 2016 (13.x) SQL Server 2016 (13.x), SQL Server 2017 (14.x)
SQL Server 2017 (14.x) SQL Server 2017 (14.x)

Requisiti del sistema operativo

I sistemi operativi supportati per l'esecuzione dello strumento di amministrazione e dei servizi controller e client sono gli stessi dell'istanza di SQL Server. Per altre informazioni sui sistemi operativi supportati per l'istanza di SQL Server, vedere Requisiti hardware e software per l'installazione di SQL Server 2016.

Le funzionalità di Riesecuzione distribuita sono supportate sia in sistemi operativi x86 che x64. Per i sistemi operativi basati su x64, è supportata solo la modalità Windows on Windows (WOW).

Limitazioni relative all'installazione

In ogni computer può essere installata una sola istanza di ogni funzionalità di Riesecuzione distribuita. Nella tabella seguente viene indicato il numero di installazioni consentito per ogni funzionalità in un singolo ambiente di Riesecuzione distribuita.

Funzionalità di Riesecuzione distribuita Numero massimo di installazioni per ambiente di riproduzione
servizio controller di SQL Server Riesecuzione distribuita 1
servizio client SQL Server Riesecuzione distribuita 16 (computer fisici o virtuali)
Strumento di amministrazione Nessuna limitazione

Nota

Benché sia possibile installare solo un'istanza dello strumento di amministrazione in ogni computer, è possibile avviare più istanze dello strumento di amministrazione. I comandi eseguiti da più strumenti di amministrazione vengono risolti in base all'ordine di ricezione.

Provider di accesso ai dati

Riesecuzione distribuita supporta solo il provider di accesso ai dati ODBC SQL Server Native Client.

Requisiti di preparazione del server di destinazione

È consigliabile posizionare il server di destinazione in un ambiente di testing. Per riprodurre i dati di traccia in un'istanza diversa di SQL Server rispetto a quella originariamente registrata, assicurarsi che siano state eseguite le operazioni seguenti nel server di destinazione:

  • Tutti gli account di accesso e gli utenti contenuti nei dati di traccia devono essere presenti nello stesso database nel server di destinazione.

  • Tutti gli account di accesso e gli utenti presenti nel server di destinazione devono disporre delle stesse autorizzazioni di cui disponevano nel server originale.

  • È consigliabile che gli ID di database nella destinazione e nell'origine siano uguali. Tuttavia, se non sono uguali, la corrispondenza può essere eseguita in base a DatabaseName , se presente nella traccia.

  • Il database predefinito per ogni account di accesso contenuto nei dati di traccia deve essere impostato (nel server di destinazione) sul rispettivo database di destinazione dell'account di accesso. Ad esempio, i dati di traccia da riprodurre contengono attività per l'account di accesso, Fred, nel database Fred_Db nell'istanza originale di SQL Server. Di conseguenza, nel server di destinazione il database predefinito per l'account di accesso Freddeve essere impostato sul database corrispondente a Fred_Db , anche se il nome del database è diverso. Per impostare il database predefinito dell'account di accesso, utilizzare la stored procedure di sistema sp_defaultdb .

La riproduzione degli eventi associati ad account di accesso mancanti o non corretti genera errori di riproduzione, ma l'operazione non viene interrotta.

Vedi anche