Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op: SQL Server 2016 (13.x),
SQL Server 2017 (14.x) en
SQL Server 2019 (15.x)
Belangrijk
Sql Server Distributed Replay is niet beschikbaar met SQL Server 2022 (16.x) en latere versies.
Met de functie Gedistribueerde herhaling van Microsoft SQL Server kunt u het effect van toekomstige SQL Server-upgrades beoordelen. U kunt het ook gebruiken om het effect van hardware- en besturingssysteemupgrades en HET afstemmen van SQL Server te evalueren.
Afschaffing van gedistribueerde herhaling in SQL Server 2022
Gedistribueerde herhaling wordt afgeschaft vanaf SQL Server 2022 (16.x), zoals vermeld in afgeschafte database-enginefuncties in SQL Server 2022 (16.x). Distributed Replay is afhankelijk van SQL Server Native Client (SNAC), die is verwijderd uit SQL Server 2022 (16.x). Deze wijziging wordt beschreven in ondersteuningsbeleid voor sql Server Native Client. Bovendien is gedistribueerde herhaling afhankelijk van .trc bestanden, die worden vastgelegd met SQL Trace en SQL Server Profiler, die beide ook zijn afgeschaft.
De Distributed Replay Controller is verwijderd uit SQL Server 2022 (16.x) Setup en de Distributed Replay Client is niet meer beschikbaar in SQL Server Management Studio (SSMS) vanaf versie 18. Als u de Distributed Replay Controller wilt verkrijgen, moet u SQL Server 2019 (15.x) of een eerdere versie installeren. Als u de Distributed Replay-client wilt verkrijgen, moet u SSMS 17.9.1 installeren.
Voor klanten op SQL Server 2022 (16.x) kunt u in plaats daarvan RML-hulpprogramma's (Replay Markup Language) gebruiken, waaronder ostress, om een workload opnieuw af te spelen.
Voordelen van gedistribueerde herhaling
Net als bij SQL Server Profiler kunt u Distributed Replay gebruiken om een vastgelegde trace opnieuw af te spelen in een bijgewerkte testomgeving. In tegenstelling tot SQL Server Profiler is gedistribueerde herhaling niet beperkt tot het opnieuw afspelen van de workload vanaf één computer.
Gedistribueerde herhaling biedt een schaalbare oplossing dan SQL Server Profiler. Met Gedistribueerde herhaling kunt u een workload van meerdere computers opnieuw afspelen en een bedrijfskritieke workload beter simuleren.
De functie Gedistribueerde herhaling kan meerdere computers gebruiken om traceringsgegevens opnieuw af te spelen en een bedrijfskritieke workload te simuleren. Gebruik gedistribueerde herhaling voor het testen van toepassingscompatibiliteit, prestatietests of capaciteitsplanning.
Wanneer gebruik maken van Gedistribueerde Herhaling
SQL Server Profiler en Gedistribueerde herhaling bieden enige overlapping in functionaliteit.
U kunt SQL Server Profiler gebruiken om een vastgelegde tracering opnieuw af te spelen op basis van een bijgewerkte testomgeving. U kunt ook de herhalingsresultaten analyseren om te zoeken naar mogelijke functionele en prestatie-incompatibiliteit. SQL Server Profiler kan echter alleen een workload van één computer opnieuw afspelen. Bij het opnieuw afspelen van een intensieve OLTP-toepassing die veel actieve gelijktijdige verbindingen of hoge doorvoer heeft, kan SQL Server Profiler een knelpunt voor resources worden.
Gedistribueerde herhaling biedt een schaalbare oplossing dan SQL Server Profiler. Gebruik Gedistribueerde herhaling om een workload van meerdere computers opnieuw af te spelen en een bedrijfskritieke workload beter te simuleren.
In de volgende tabel wordt beschreven wanneer u elk hulpprogramma moet gebruiken.
| Werktuig | Gebruiken wanneer... |
|---|---|
| SQL Server Profiler | U wilt het conventionele herhalingsmechanisme op één computer gebruiken. Met name hebt u mogelijkheden voor foutopsporing per regel nodig, zoals de opdrachten Step, Run to Cursor en Toggle Breakpoint. U wilt een Analysis Services-tracering opnieuw afspelen. |
| Gedistribueerde herhaling | U wilt de compatibiliteit van toepassingen evalueren. U wilt bijvoorbeeld upgradescenario's voor SQL Server en besturingssysteem testen, hardware-upgrades of indexafstemming. De gelijktijdigheid in de vastgelegde tracering is zo hoog dat één herhalingsclient deze niet voldoende kan simuleren. |
Concepten voor gedistribueerde herhalingen
De volgende onderdelen vormen de Distributed Replay-omgeving:
Gedistribueerd beheerprogramma voor opnieuw afspelen: een consoletoepassing, DReplay.exe, die wordt gebruikt om te communiceren met de gedistribueerde replay-controller. Gebruik het beheerprogramma om de gedistribueerde herhaling te beheren.
Distributed Replay controller: een computer met de Windows-service met de naam SQL Server Distributed Replay controller. De controller van de Distributed Replay coördineert de acties van de gedistribueerde replay-clients. Er kan slechts één controllerinstantie zijn in elke gedistribueerde replay-omgeving.
Gedistribueerde herhalingsclients: een of meer computers (fysiek of virtueel) met de Windows-service genaamd SQL Server Distributed Replay Client. De gedistribueerde herhaalclients werken samen om workloads te simuleren tegen een instantie van SQL Server. Er kunnen een of meer clients zijn in elke gedistribueerde replay-omgeving.
Doelserver: een exemplaar van SQL Server dat de gedistribueerde herhalingsclients kunnen gebruiken om traceringsgegevens opnieuw af te spelen. Het is raadzaam dat de doelserver zich in een testomgeving bevindt.
Het beheerprogramma voor gedistribueerde herhaling, controller en client kan worden geïnstalleerd op verschillende computers of op dezelfde computer. Er kan slechts één exemplaar van de gedistribueerde replaycontroller of clientservice zijn die op dezelfde computer wordt uitgevoerd.
In de volgende afbeelding ziet u de fysieke architectuur van SQL Server Distributed Replay:
Gedistribueerde replayopdrachten
| Taakbeschrijving | Artikel |
|---|---|
| Hierin wordt beschreven hoe u gedistribueerde herhaling configureert. | Gedistribueerde herhaling configureren |
| Hierin wordt beschreven hoe u de invoertraceringsgegevens voorbereidt. | Invoertraceringsgegevens voorbereiden |
| Beschrijft hoe u traceringsgegevens opnieuw kunt afspelen. | Traceringsgegevens opnieuw afspelen |
| Hoe u de traceringsresultaten van Distributed Replay controleert. | De resultaten van het opnieuw afspelen beoordelen |
| Beschrijft hoe u het beheerprogramma gebruikt om bewerkingen op de controller te initiëren, bewaken en annuleren. | Opdrachtregelopties voor het Beheerprogramma (Hulpprogramma voor Gedistribueerde Herhaling) |
Behoeften
Voordat u de functie Gedistribueerde herhaling gebruikt, moet u rekening houden met de productvereisten die in dit artikel worden beschreven.
Vereisten voor invoertracering
Als u traceringsgegevens opnieuw wilt afspelen, moet deze voldoen aan de vereisten voor versie en indeling en de vereiste gebeurtenissen en kolommen bevatten.
Invoervolgersversies
Gedistribueerde herhaling ondersteunt invoertraceringsgegevens die worden verzameld op de volgende versies van SQL Server:
- SQL Server 2019 (15.x)
- SQL Server 2017 (14.x) (cumulatieve update 1 en latere versies - zie buildversies van SQL Server 2017)
- SQL Server 2016 (13.x)
- SQL Server 2014 (12.x)
- SQL Server 2012 (11.x)
- SQL Server 2008 R2 (10.50.x)
- SQL Server 2008 (10.0.x)
- SQL Server 2005 (9.x)
Indelingen voor invoertracering
De invoertraceringsgegevens kunnen een van de volgende indelingen hebben:
Eén traceringsbestand met de
.trcextensie.Een set rollover-traceringsbestanden die de naamconventie voor bestandsrollover volgen, bijvoorbeeld:
<TraceFile>.trc,<TraceFile>_1.trc,<TraceFile>_2.trc,<TraceFile>_3.trc...<TraceFile>_n.trc.
Gebeurtenissen en kolommen voor tracering invoeren
De invoertraceringsgegevens moeten specifieke gebeurtenissen en kolommen bevatten die opnieuw moeten worden afgespeeld door gedistribueerde herhaling. De TSQL_Replay-sjabloon in SQL Server Profiler bevat alle vereiste gebeurtenissen en kolommen, naast extra informatie. Zie Vereisten voor opnieuw afspelen voor meer informatie over die sjabloon.
Waarschuwing
Als u de TSQL_Replay-sjabloon niet gebruikt om de invoertraceringsgegevens vast te leggen of als niet aan de vereisten voor invoertracering wordt voldaan, ontvangt u mogelijk onverwachte herhalingsresultaten.
U kunt ook een aangepaste traceringssjabloon maken en deze gebruiken om gebeurtenissen opnieuw af te spelen met Gedistribueerde herhaling, zolang deze de volgende gebeurtenissen bevat:
- Aanmelding controleren
- Uitloggen voor controle
- BestaandeVerbinding
- RPC-uitvoerparameter
- RPC:Voltooid
- RPC:Starten
- SQL:BatchCompleted
- SQL:BatchStarting
Als u cursors aan de serverzijde afspeelt, zijn ook de volgende gebeurtenissen vereist:
- CursorSluiten
- CursorExecute
- CursorOpenen
- CursorPrepare
- CursorUnprepare
Als u voorbereide SQL-instructies aan de serverzijde opnieuw afspeelt, zijn ook de volgende gebeurtenissen vereist:
- Voorbereide SQL-uitvoering
- SQL voorbereiden
Alle invoertraceringsgegevens moeten de volgende kolommen bevatten:
- Gebeurtenisklasse
- GebeurtenisVolgorde
- Tekstgegevens
- Naam van de toepassing
- Gebruikersnaam
- Databasenaam
- Database-id
- Hostnaam
- Binaire gegevens
- SPID
- Begintijd
- Eindtijd
- IsSysteem
Ondersteunde combinaties van invoertrace en doelserver
De volgende tabel bevat de ondersteunde versies van traceringsgegevens en voor elke daarvan de versies van SQL Server waarop de gegevens opnieuw kunnen worden afgespeeld.
| Versie van invoertraceringsgegevens | Ondersteunde versies van SQL Server voor het doelserverexemplaar |
|---|---|
| SQL Server 2005 (9.x) | SQL Server 2008 (10.0.x), SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x), SQL Server 2014 (12.x), SQL Server 2016 (13.x), SQL Server 2017 (14.x), SQL Server 2019 (15.x) |
| SQL Server 2008 (10.0.x) | SQL Server 2008 (10.0.x), SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x), SQL Server 2014 (12.x), SQL Server 2016 (13.x), SQL Server 2017 (14.x), SQL Server 2019 (15.x) |
| SQL Server 2008 R2 (10.50.x) | SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x), SQL Server 2014 (12.x), SQL Server 2016 (13.x), SQL Server 2017 (14.x), SQL Server 2019 (15.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 2019 (15.x) |
| SQL Server 2014 (12.x) | SQL Server 2014 (12.x), SQL Server 2016 (13.x), SQL Server 2017 (14.x), SQL Server 2019 (15.x) |
| SQL Server 2016 (13.x) | SQL Server 2016 (13.x), SQL Server 2017 (14.x), SQL Server 2019 (15.x) |
| SQL Server 2017 (14.x) | SQL Server 2017 (14.x), SQL Server 2019 (15.x) |
| SQL Server 2019 (15.x) | SQL Server 2019 (15.x) |
Besturingssysteemvereisten
Ondersteunde besturingssystemen voor het uitvoeren van het beheerprogramma en de controller en clientservices zijn hetzelfde als uw SQL Server-exemplaar. Zie Hardware- en softwarevereisten voor SQL Server 2016 en SQL Server 2017 voor meer informatie over welke besturingssystemen worden ondersteund voor uw SQL Server-exemplaar.
Gedistribueerde herhalingsfuncties worden ondersteund op zowel x86- als x64-besturingssystemen. Voor x64-besturingssystemen wordt alleen Windows op Windows (WOW) modus ondersteund.
Installatiebeperkingen
Elke computer kan slechts één exemplaar van elke gedistribueerde herhalingsfunctie hebben geïnstalleerd. In de volgende tabel ziet u hoeveel installaties van elke functie zijn toegestaan in één gedistribueerde replay-omgeving.
| Gedistribueerde Herhaling functie | Maximum aantal installaties per replay-omgeving |
|---|---|
| SQL Server Distributed Replay controllerdienst | 1 |
| Sql Server Distributed Replay-clientservice | 16 (fysieke of virtuele computers) |
| Beheertool | Onbeperkt |
Opmerking
Hoewel slechts één exemplaar van het beheerprogramma op één computer kan worden geïnstalleerd, kunt u meerdere exemplaren van het beheerprogramma starten. Opdrachten die zijn uitgegeven vanuit meerdere beheerprogramma's, worden omgezet in de volgorde waarin ze worden ontvangen.
Gegevenstoegangsprovider
Gedistribueerde Replay ondersteunt alleen de ODBC-gegevenstoegangsprovider van SQL Server Native Client.
Voorbereidingsvereisten voor de doelserver
Het is raadzaam dat de doelserver zich in een testomgeving bevindt. Als u traceringsgegevens opnieuw wilt afspelen op een ander exemplaar van SQL Server dan oorspronkelijk is vastgelegd, moet u ervoor zorgen dat de volgende stappen zijn uitgevoerd op de doelserver:
Alle aanmeldingen en gebruikers die zich in de traceringsgegevens bevinden, moeten aanwezig zijn in dezelfde database op de doelserver.
Alle aanmeldingen en gebruikers op de doelserver moeten dezelfde machtigingen hebben als op de oorspronkelijke server.
De database-id's op het doel moeten idealiter gelijk zijn aan die van de bron. Als ze echter niet hetzelfde zijn, kunnen overeenkomsten worden uitgevoerd op basis van DatabaseName als deze aanwezig is in de tracering.
De standaarddatabase voor elke aanmelding die zich in de traceringsgegevens bevindt, moet worden ingesteld (op de doelserver) op de respectieve doeldatabase van de aanmelding. De traceringsgegevens die opnieuw moeten worden afgespeeld, bevatten bijvoorbeeld activiteit voor de aanmelding, Fred, in de database Fred_Db op het oorspronkelijke exemplaar van SQL Server. Daarom moet Fred op de doelserver de standaarddatabase voor de aanmelding instellen op de database die overeenkomt met Fred_Db (zelfs als de databasenaam anders is). Als u de standaarddatabase van de aanmelding wilt instellen, gebruikt u de door het
sp_defaultdbsysteem opgeslagen procedure.
Het opnieuw afspelen van gebeurtenissen die zijn gekoppeld aan ontbrekende of onjuiste aanmeldingen, resulteert in fouten bij opnieuw afspelen, maar de bewerking voor opnieuw afspelen wordt voortgezet.