SQL LogScout v6.24.10.10
Download
To download this release package, go to release v6.24.11.02 which is a slightly updated version of this release.
Known Issue(s)
Issue 1: Connection failure
Symptoms:
On some machines you may get a connection failure with the following error message:
2024-10-23 10:16:54.202 WARN Could not Connect to SQL Server
2024-10-23 10:16:54.219 ERROR Function 'GetPerformanceDataAndLogs' failed with error: Cannot index into a null array. (line: 7005, offset: 21, file: C:\SQL LogScout\Bin\SQLLogScoutPs.psm1)
2024-10-23 10:16:54.235 ERROR Function '' :
2024-10-23 10:16:54.235 INFO Ending data collection
If you look at the \output*\internal\##SQLLOGSCOUT_DEBUG.LOG you may see the following more detailed error indicating an SSL security error.
2024-10-23 10:16:54.202 WARN Could not Connect to SQL Server
2024-10-23 10:16:54.202 DEBUG1 Exception calling "Open" with "0" argument(s): "ERROR [08001] [Microsoft][ODBC SQL Server Driver][Shared Memory]SSL Security error
ERROR [01000] [Microsoft][ODBC SQL Server Driver][Shared Memory]ConnectionOpen (SECCreateCredentials()).
ERROR [01S00] [Microsoft][ODBC SQL Server Driver]Invalid connection string attribute"
2024-10-23 10:16:54.202 DEBUG3 Failed to get a connection object, check previous messages
2024-10-23 10:16:54.219 ERROR Function 'GetPerformanceDataAndLogs' failed with error: Cannot index into a null array. (line: 7005, offset: 21, file: C:\SQL LogScout\Bin\SQLLogScoutPs.psm1)
2024-10-23 10:16:54.235 ERROR Function '' :
Cause:
This is likely caused by SQL ODBC driver incompatibility with strict TLS requirements and connection fails on older OS versions - WIndows 2012 R2, Windows 2016.
Solution:
This issue has been resolved in release v6.24.11.02
Issue 2: Failure on case-sensitive systems
Symptoms:
On some systems certain scripts may fail with invalid object or invalid column errors
Cause:
A few T-SQL commands were not written in the proper letter case and on case-insensitive systems, tables or columns would be reported as not found or invalid.
Solution:
Resolved in release v6.24.11.02
Enhancements
- For memory dump scenario, users can trigger a dump on-demand after the collection has started
- Enable dynamic (relative) start and end times as duration for DiagStartTime and DiagStopTime parameters (e.g. +2:00:00 - two hours from now)
- Move Cluster logs collection back in the Basic scenario and collect them if on a FCI or AG system
- Include Full-Text Search metadata and logs collector in Basic scenario
- Added the ability to discover missing MSIs in Setup scenario (FindMissingMSI)
- Added the ability to perform a continuous capture where SQL LogScout shuts down and restarts with another collection immediately (similar to the registering as a service functionality in SQLDiag/PSSDiag)
- With parameter
-DeleteExistingOrCreateNew
, allow the user to preserve a specified number of output folders when repeat collections (continuous mode) is used and delete the rest - Improve CTRL+C experience and performance. You can cancel a SQL LogScout collection without delay
- Query Store data collection updated to help determine causes for plan forcing failures
- Switched to using MSOLEDBSQL or ODBC driver instead of System.Data.SqlClient
- Add SQL Agent job history to replication collector for replication agent jobs
- AGTopology no longer uses BCP for better error handling
- Programmatically block Powershell ISE as a host and update the Readme documenting Powershell ISE is unsupported
- Add net_transport and other fields from dm_exec_connections to PerfStats collection
- Update SQL_LogScout to use a PowerShell file (SQL_LogScout.ps1) instead of SQL_LogScout.cmd to allow parameter flexibility and file signing. SQL_LogScout.cmd is deprecated but still works for backwards compatibility
- In Perfstats collector, remove sys.dm_os_ring_buffers references as DMV is not supported and can cause issues
- Re-write the Perfstats script to not use sysprocesses to prevent performance issues
- Refactor: Improve isScenarioEnabled function simplify logic
- Reduce the execution time in the Test Pipeline by adding a parameter to control individual test duration
- Added logging to CleanupIncompleteShutdown
- Addition of instance parameter to CleanupIncompleteShutdown to run silently
- Enabled SQL_LogScout as a scheduled task to use "continuous" capture functionality
- Added
-EndActiveConsoles
parameter to CleanupIncompleteShutdown to force the closure of open Powershell sessions invoked by SQL_LogScout - ScheduleSQLLogscoutAsTask cleanup task updated to invoke CleanupIncompleteShutdown and use new parameter
-EndActiveConsoles
- ScheduleSQLLogscoutAsTask accepts relative start time and no longer makes start time a required parameter
- ScheduleSQLLogscoutAsTask ReadMe updated to including examples
- Testing suite enhancement: Add a SQL Nexus test validation for sys.dm_db_tuning_recommendations
- Update the Readme to include the fact that Cluster logs and other AlwaysOn collections are part of Basic now
- Documentation update for rollover and file size for Perf and AlwaysOn Xevents in the Readme
- Update Pipeline to download latest SQL Nexus (aka link), latest RML Utils and remove SQL CLR Types and ReportViewer installations
Fixes
- Ensure that unexpected shutdown (CTRL+C) returns SQL LogScout location back to root folder instead of \Bin
- If go-sqlcmd and sqlcmd are installed on the system, pick sqlcmd and discover the highest version
- Remove $global:gDisableCtrlCasInput and [console]::TreatControlCAsInput as they are not needed
- Performance improvement to NetTCPandUDPConnections by using process ID to prevent long collector execution
- Fixed null pointer issue with WindowsDiskInfo collector by re-writing the collector and deprecated WMI calls
- Fix to capture SQL specific perfmon counters properly when instance name is the same as hostname
- PerfStatsSnapshot fix to capture Database Scoped Configurations properly
- Ensure filtered and full dump warning show up only when one of those to options are selected in the memory dump scenario
- Fix the text of some information messages in Scheduled tasks
- Migrate Pipeline to One Engineering System (1ES template)
- Ensure Event logs in other languages (Japanese, Chinese, etc) are exported with proper characters instead of "?"
- Fix issue where NeverEnding test fails with "Cannot bind argument to parameter 'ArrayToEdit' because it is an empty collection" when run on a SQL version that doesn't support lightweight profiling
- Fix testing infrastructure suite failure when run against SQL 2014-2017 instance due to SQLFT file(s) not existing
- Fix issue where Xevents are missing in UI for AlwaysOn and ServiceBroker Scenarios
- Fix the issue where RepeatCollections only runs one time, not multiple, if you invoke SQL LogScout using Powershell.exe -File
- Fix issue where using -DeleteExistingOrCreateNew "NewCustomFolder" would result in \output folder instead of \output_datetime if \output folder doesn't exist on disk
- ScheduleSQLLogscoutAsTask
-Daily
execution issue fixed from previous release - Fix an incorrect prompt to delete and recreate the \output folder when it's not there