SQL LogScout version 5.0
Verify downloaded file:
You can verify the download by computing the hash of the SQL_LogScout_v5.0_Signed.zip file, using this command:
certutil -hashfile SQL_LogScout_v5.0_Signed.zip SHA512Compare to this:
45261a7ad9bdaf1eec8496771842afd1740699ef5c71913b011943b19cd411fb440de5bdb50b9b454f6116e0fa003a512b64ee43329b17bd3fff47571af8840b
Enhancements
- Make SQLLogScout data collection configurable with GUI
- Add a new Procmon scenario to collect Process Monitor (procmon) trace
- Enhance TempDB Space usage script to match the updates on PSSDiag (Use of DMVs, optimized code, and streamlined resultset to only show non-empty tempdb pages)
- Enhance TempDB_and_Tran_Analysis.sql script with latest (from PSSDIAG) for better formatting of resultset
- Enhance Replication scenario to include distribution database metadata about publication, subscriptions, etc
- Add support for Instant file initialization check in the MiscPssdiagInfo.sql
- Add support for resumable indexes is for SQL Server versions 2019 and later
- Add ability to execute SQL LogScout on Secondary replicas in Availability Group with Read-Intent Only
- Add ability to make SQLLogScout schedulable as a Windows task
- Add support for scheduling multiple SQLLogScout sessions at different times with different task names by including a -CmdTaskName parameter when calling ScheduleSQLLogScoutAsTask.ps1
- Enhance linked_server_config.sql to eliminate errors when executed by non-sysadmin user and also enhance readability of the output log
- Create a clean-up script which will close/shut down any left-over processes in case the CMD window from which SQLLogScout was launched is closed before LogScout completes
- Add a warning message during quiet mode execution that indicates to the end user that the quite mode suppresses all prompts and accepts all Y for user input
- Support collection of Service Broker Xevents by default in General and Detailed Scenarios
- Add functionality to capture only the head and tail parts (500 lines on each end) for large ERRORLOG files (> 1GB)
- Add collection of server properties for display in SQLNexus in all collectors even if Basic collector is not explicitly selected for execution
- Add support for collecting FSUtil info in the Basic scenario to get disk sector information
- Add ability to export the list of filtered drivers into SQL Nexus so the filtered driver list can be viewed directly from SQL Nexus
- Enable support for usage of "server,port" as a ServerName in command options
- Enable Setup scenario to run on shutdown
- Enhance Spinlock collection to include only non-zero spins
- Make the TaskList outputs importable into SQL Nexus by using an identifier and column names
- Move all AG-related queries to AlwaysOnDiagScript.sql and (out of MiscPssdiagInfo.sql)
- Simplify the output of ServerProperties resultset by removing dependency on xp_instance_regread in MiscPssdiagInfo.sql
- Split SQLLogScoutPs.ps1 into multiple PSM modules
- Update PerfStats snapshot script to reflect some of the changes that exist in Diagmanager
- Create hashtables to store Scenario Name and Bit value to simplify lookups
Fixes
- Added backslash support in the $OutputPath and $LogScoutPath parameter values
- BackupRestore_Test.ps1 is no longer unresponsive due to displaying a prompt for SQL VSS Writer service restart agreement when executed from command prompt with Quiet mode
- Clean up or improve some text messages (UX)
- Confirm-SQLPermissions now has a check for empty string in addition to the check for NULL for user or password variables
- Fixed exception "file is being used by another process" when SQLLogScoutPs.ps1 is invoked directly inside Powershell is fixed
- Fix for Error "class keyword not supported" on Powershell version 4.0
- Fix for error 469 indicating collation conflict when running '--XEvent Session Details--' query in MiscPssdiagInfo.sql when user database has a different collation from master database
- Fix for Error in SQLLogScoutPs.ps1 Collector: "Function 'Select-Scenario' failed with error: Cannot index into a null array."
- Fix for errors observed when a choice is made to not proceed with DetailedPerf
- Fix for failure in Execution of AlwaysOn+DumpMemory+GeneralPerf with error: "The team .\sqldumphelper.ps1 is not recognized as a name of a cmdlet, function, script file or operable program"
- Fix for Failure in Function 'Invoke-DiagnosticCleanUpAndExit' with error: You cannot call a method on a null-valued expression when closing the GUI with Cancel button
- Fix for failure to locate/open the .SQL files for hash validation if sqllogscoutps.ps1 is executed directly
- Fix for intermittent failure in GeneralPerf and DetailedPerf collections with error : "Cannot alter the event session 'xevent_SQLLogScout', because it does not exist or you do not have permission."
- Fix for unresponsive GUI for a few seconds and exit back to CMD mode when SQLLogScout is opened in PowerShell
- Get-FileAttributes now excludes psm, htm, and txt files. Previously it was only excluding ps1 files and not the other files.
- GetAlwaysOnHealthXel function now successfully gets AlwaysOn_health*.xel files using Get-InstanceNameOnly to retrieve instance name even when SQL Server Parameters registry key is NULL
- High_IO_Perfstats.sql , StartNetworkTrace.bat, and StopNetworkTrace.bat are now hashed in Confirm-FileAttributes
- IO scenario now recognizes when an instance name is provided and collects DMV info, previously it would fail due to it being included in the list of instance independent scenarios
- Kill-ActiveLogScoutSessions no longer runs when Procmon scenario is used without an instance
- Perfmon counters are now collected for a default SQL instance on a cluster
- Re-run of SQLLogScoutPs.ps1 in the same PowerShell session is now possible due to a fix that ensures that all handles to open log files are closed
- SQL Instance name in the form of ippadd,portno is now resolved in function GetSQLErrorLogsDumpsSysHealth() that obtains logs from SQL Log folder
- T-SQL scripts that execute on shutdown are now executed synchronously so that they are not terminated early during shutdown due to asynchronous call
- Update Replication Collector to Print Header Only if Table Exists
- Warning messages indicating skipping execution of collector(s) are shown to the user when the user does not have access granted on SQL instance
- WPR collection now limits the user entry for duration of WPR trace to a valid range of 3-45 seconds
- WPR collection now uses the server name if made available as a parameter instead of always using the no_instance_found as default from the file name
- Update SQL_Server_Mem_Stats.sql to allow it to import in SQL Nexus data
Automated Tests - Fixes and Enhancements
- Add scenario name in Files Name generated in Test Infrastructure run
- Add the SQLNexus replication testing in ConsistentQualityTests , since the replication tables are made importable in Nexus
- Add Validation to ensure processing of SQLLogScout output by SQLNexus for the following scenarios: GeneralPerf, DetailedPerf, and LightPerf
- Automated testing for Replication Collector does not handle No Replication Configuration
- Fix for Failure in Function 'Write-Log' fails with error: Cannot validate argument on parameter 'Message'
- Fix for failure to run test against the AlwaysOn scenario due to a misspelled scenario name - Always_On instead of AlwaysOn
- Fix for failures with Network trace scenario test due to incorrect number of files
- Fix for Test name sometimes shows up as blank ''
- SQLAssessmentAPI.out output file is removed as a required output file to prevent tests failing due to missing SQLAssessmentAPI.out file
- Visually deliniate each individual test scenario on console output for ease of readability
- Add summary file for all tests run and dump the result in single file