Skip to content

Commit 60352a5

Browse files
authored
Merge pull request #2920 from BrentOzarULTD/dev
2021-05-30 Release
2 parents 3e662b9 + dbb121e commit 60352a5

19 files changed

+1150
-555
lines changed

Install-All-Scripts.sql

Lines changed: 298 additions & 159 deletions
Large diffs are not rendered by default.

Install-Core-Blitz-No-Query-Store.sql

Lines changed: 270 additions & 116 deletions
Large diffs are not rendered by default.

Install-Core-Blitz-With-Query-Store.sql

Lines changed: 272 additions & 117 deletions
Large diffs are not rendered by default.

SqlServerVersions.sql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ DELETE FROM dbo.SqlServerVersions;
4141
INSERT INTO dbo.SqlServerVersions
4242
(MajorVersionNumber, MinorVersionNumber, Branch, [Url], ReleaseDate, MainstreamSupportEndDate, ExtendedSupportEndDate, MajorVersionName, MinorVersionName)
4343
VALUES
44-
(15, 4123, 'CU10', 'https://support.microsoft.com/en-us/help/5001090', '2021-02-11', '2025-01-07', '2030-01-08', 'SQL Server 2019', 'Cumulative Update 10'),
44+
(15, 4123, 'CU10', 'https://support.microsoft.com/en-us/help/5001090', '2021-04-06', '2025-01-07', '2030-01-08', 'SQL Server 2019', 'Cumulative Update 10'),
4545
(15, 4102, 'CU9', 'https://support.microsoft.com/en-us/help/5000642', '2021-02-11', '2025-01-07', '2030-01-08', 'SQL Server 2019', 'Cumulative Update 9 '),
4646
(15, 4073, 'CU8 GDR', 'https://support.microsoft.com/en-us/help/4583459', '2021-01-12', '2025-01-07', '2030-01-08', 'SQL Server 2019', 'Cumulative Update 8 GDR '),
4747
(15, 4073, 'CU8', 'https://support.microsoft.com/en-us/help/4577194', '2020-10-01', '2025-01-07', '2030-01-08', 'SQL Server 2019', 'Cumulative Update 8 '),
@@ -54,6 +54,7 @@ VALUES
5454
(15, 4003, 'CU1', 'https://support.microsoft.com/en-us/help/4527376', '2020-01-07', '2025-01-07', '2030-01-08', 'SQL Server 2019', 'Cumulative Update 1 '),
5555
(15, 2070, 'GDR', 'https://support.microsoft.com/en-us/help/4517790', '2019-11-04', '2025-01-07', '2030-01-08', 'SQL Server 2019', 'RTM GDR '),
5656
(15, 2000, 'RTM ', '', '2019-11-04', '2025-01-07', '2030-01-08', 'SQL Server 2019', 'RTM '),
57+
(14, 3391, 'RTM CU24', 'https://support.microsoft.com/en-us/help/5001228', '2021-05-10', '2022-10-11', '2027-10-12', 'SQL Server 2017', 'RTM Cumulative Update 24'),
5758
(14, 3381, 'RTM CU23', 'https://support.microsoft.com/en-us/help/5000685', '2021-02-25', '2022-10-11', '2027-10-12', 'SQL Server 2017', 'RTM Cumulative Update 23'),
5859
(14, 3370, 'RTM CU22 GDR', 'https://support.microsoft.com/en-us/help/4583457', '2021-01-12', '2022-10-11', '2027-10-12', 'SQL Server 2017', 'RTM Cumulative Update 22 GDR'),
5960
(14, 3356, 'RTM CU22', 'https://support.microsoft.com/en-us/help/4577467', '2020-09-10', '2022-10-11', '2027-10-12', 'SQL Server 2017', 'RTM Cumulative Update 22'),
@@ -79,6 +80,7 @@ VALUES
7980
(14, 3008, 'RTM CU2', 'https://support.microsoft.com/en-us/help/4052574', '2017-11-28', '2022-10-11', '2027-10-12', 'SQL Server 2017', 'RTM Cumulative Update 2'),
8081
(14, 3006, 'RTM CU1', 'https://support.microsoft.com/en-us/help/4038634', '2017-10-24', '2022-10-11', '2027-10-12', 'SQL Server 2017', 'RTM Cumulative Update 1'),
8182
(14, 1000, 'RTM ', '', '2017-10-02', '2022-10-11', '2027-10-12', 'SQL Server 2017', 'RTM '),
83+
(13, 5888, 'SP2 CU17', 'https://support.microsoft.com/en-us/help/5001092', '2021-03-29', '2021-07-13', '2026-07-14', 'SQL Server 2016', 'Service Pack 2 Cumulative Update 17'),
8284
(13, 5882, 'SP2 CU16', 'https://support.microsoft.com/en-us/help/5000645', '2021-02-11', '2021-07-13', '2026-07-14', 'SQL Server 2016', 'Service Pack 2 Cumulative Update 16'),
8385
(13, 5865, 'SP2 CU15 GDR', 'https://support.microsoft.com/en-us/help/4583461', '2021-01-12', '2021-07-13', '2026-07-14', 'SQL Server 2016', 'Service Pack 2 Cumulative Update 15 GDR'),
8486
(13, 5850, 'SP2 CU15', 'https://support.microsoft.com/en-us/help/4577775', '2020-09-28', '2021-07-13', '2026-07-14', 'SQL Server 2016', 'Service Pack 2 Cumulative Update 15'),

Uninstall.sql

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ BEGIN
3939
FROM sys.procedures P
4040
JOIN #ToDelete D ON D.ProcedureName = P.name;
4141

42+
SELECT @SQL += N'DROP TABLE dbo.SqlServerVersions;' + CHAR(10)
43+
FROM sys.tables
44+
WHERE schema_id = 1 AND name = 'SqlServerVersions';
45+
4246
END
4347
ELSE
4448
BEGIN
@@ -64,6 +68,12 @@ BEGIN
6468

6569
EXEC sp_executesql @innerSQL, N'@SQL nvarchar(max) OUTPUT', @SQL = @SQL OUTPUT;
6670

71+
SET @innerSQL = N' SELECT @SQL += N''USE ' + @dbname + N';' + NCHAR(10) + N'DROP TABLE dbo.SqlServerVersions;'' + NCHAR(10)
72+
FROM ' + @dbname + N'.sys.tables
73+
WHERE schema_id = 1 AND name = ''SqlServerVersions''';
74+
75+
EXEC sp_executesql @innerSQL, N'@SQL nvarchar(max) OUTPUT', @SQL = @SQL OUTPUT;
76+
6777
FETCH NEXT FROM c INTO @dbname;
6878

6979
END
@@ -73,9 +83,6 @@ BEGIN
7383

7484
END
7585

76-
IF OBJECT_ID('dbo.SqlServerVersions') IS NOT NULL
77-
DROP TABLE dbo.SqlServerVersions;
78-
7986
PRINT @SQL;
8087

8188
IF(@printOnly = 0)

sp_AllNightLog.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,12 @@ ALTER PROCEDURE dbo.sp_AllNightLog
2626
WITH RECOMPILE
2727
AS
2828
SET NOCOUNT ON;
29+
SET STATISTICS XML OFF;
2930

3031
BEGIN;
3132

3233

33-
SELECT @Version = '8.03', @VersionDate = '20210420';
34+
SELECT @Version = '8.04', @VersionDate = '20210530';
3435

3536
IF(@VersionCheckMode = 1)
3637
BEGIN

sp_AllNightLog_Setup.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,11 @@ ALTER PROCEDURE dbo.sp_AllNightLog_Setup
3333
WITH RECOMPILE
3434
AS
3535
SET NOCOUNT ON;
36+
SET STATISTICS XML OFF;
3637

3738
BEGIN;
3839

39-
SELECT @Version = '8.03', @VersionDate = '20210420';
40+
SELECT @Version = '8.04', @VersionDate = '20210530';
4041

4142
IF(@VersionCheckMode = 1)
4243
BEGIN

sp_Blitz.sql

Lines changed: 82 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,11 @@ ALTER PROCEDURE [dbo].[sp_Blitz]
3434
WITH RECOMPILE
3535
AS
3636
SET NOCOUNT ON;
37+
SET STATISTICS XML OFF;
3738
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
3839

3940

40-
SELECT @Version = '8.03', @VersionDate = '20210420';
41+
SELECT @Version = '8.04', @VersionDate = '20210530';
4142
SET @OutputType = UPPER(@OutputType);
4243

4344
IF(@VersionCheckMode = 1)
@@ -428,33 +429,38 @@ AS
428429
AND db_id('rdsadmin') IS NOT NULL
429430
AND EXISTS(SELECT * FROM master.sys.all_objects WHERE name IN ('rds_startup_tasks', 'rds_help_revlogin', 'rds_hexadecimal', 'rds_failover_tracking', 'rds_database_tracking', 'rds_track_change'))
430431
BEGIN
431-
INSERT INTO #SkipChecks (CheckID) VALUES (6);
432-
INSERT INTO #SkipChecks (CheckID) VALUES (29);
433-
INSERT INTO #SkipChecks (CheckID) VALUES (30);
434-
INSERT INTO #SkipChecks (CheckID) VALUES (31);
435-
INSERT INTO #SkipChecks (CheckID) VALUES (40); /* TempDB only has one data file */
436-
INSERT INTO #SkipChecks (CheckID) VALUES (57);
437-
INSERT INTO #SkipChecks (CheckID) VALUES (59);
438-
INSERT INTO #SkipChecks (CheckID) VALUES (61);
439-
INSERT INTO #SkipChecks (CheckID) VALUES (62);
440-
INSERT INTO #SkipChecks (CheckID) VALUES (68);
441-
INSERT INTO #SkipChecks (CheckID) VALUES (69);
442-
INSERT INTO #SkipChecks (CheckID) VALUES (73);
443-
INSERT INTO #SkipChecks (CheckID) VALUES (79);
444-
INSERT INTO #SkipChecks (CheckID) VALUES (92);
445-
INSERT INTO #SkipChecks (CheckID) VALUES (94);
446-
INSERT INTO #SkipChecks (CheckID) VALUES (96);
447-
INSERT INTO #SkipChecks (CheckID) VALUES (98);
432+
INSERT INTO #SkipChecks (CheckID) VALUES (6); /* Security - Jobs Owned By Users per https://github.com/BrentOzarULTD/SQL-Server-First-Responder-Kit/issues/1919 */
433+
INSERT INTO #SkipChecks (CheckID) VALUES (29); /* tables in model database created by users - not allowed */
434+
INSERT INTO #SkipChecks (CheckID) VALUES (40); /* TempDB only has one data file in RDS */
435+
INSERT INTO #SkipChecks (CheckID) VALUES (62); /* Database compatibility level - cannot change in RDS */
436+
INSERT INTO #SkipChecks (CheckID) VALUES (68); /*Check for the last good DBCC CHECKDB date - can't run DBCC DBINFO() */
437+
INSERT INTO #SkipChecks (CheckID) VALUES (69); /* High VLF check - requires DBCC LOGINFO permission */
438+
INSERT INTO #SkipChecks (CheckID) VALUES (73); /* No Failsafe Operator Configured check */
439+
INSERT INTO #SkipChecks (CheckID) VALUES (92); /* Drive info check - requires xp_Fixeddrives permission */
448440
INSERT INTO #SkipChecks (CheckID) VALUES (100); /* Remote DAC disabled */
449-
INSERT INTO #SkipChecks (CheckID) VALUES (123);
450-
INSERT INTO #SkipChecks (CheckID) VALUES (177);
451-
INSERT INTO #SkipChecks (CheckID) VALUES (180); /* 180/181 are maintenance plans */
452-
INSERT INTO #SkipChecks (CheckID) VALUES (181);
453-
INSERT INTO #SkipChecks (CheckID) VALUES (184); /* xp_readerrorlog checking for IFI */
454-
INSERT INTO #SkipChecks (CheckID) VALUES (211); /* xp_regread checking for power saving */
455-
INSERT INTO #SkipChecks (CheckID) VALUES (212); /* xp_regread */
456-
INSERT INTO #SkipChecks (CheckID) VALUES (219);
441+
INSERT INTO #SkipChecks (CheckID) VALUES (177); /* Disabled Internal Monitoring Features check - requires dm_server_registry access */
442+
INSERT INTO #SkipChecks (CheckID) VALUES (180); /* 180/181 are maintenance plans checks - Maint plans not available in RDS*/
443+
INSERT INTO #SkipChecks (CheckID) VALUES (181); /*Find repetitive maintenance tasks*/
444+
445+
-- can check errorlog using rdsadmin.dbo.rds_read_error_log, so allow this check
446+
--INSERT INTO #SkipChecks (CheckID) VALUES (193); /* xp_readerrorlog checking for IFI */
447+
448+
INSERT INTO #SkipChecks (CheckID) VALUES (211); /* xp_regread not allowed - checking for power saving */
449+
INSERT INTO #SkipChecks (CheckID) VALUES (212); /* xp_regread not allowed - checking for additional instances */
457450
INSERT INTO #SkipChecks (CheckID) VALUES (2301); /* sp_validatelogins called by Invalid login defined with Windows Authentication */
451+
452+
-- Following are skipped due to limited permissions in msdb/SQLAgent in RDS
453+
INSERT INTO #SkipChecks (CheckID) VALUES (30); /* SQL Server Agent alerts not configured */
454+
INSERT INTO #SkipChecks (CheckID) VALUES (31); /* check whether we have NO ENABLED operators */
455+
INSERT INTO #SkipChecks (CheckID) VALUES (57); /* SQL Agent Job Runs at Startup */
456+
INSERT INTO #SkipChecks (CheckID) VALUES (59); /* Alerts Configured without Follow Up */
457+
INSERT INTO #SkipChecks (CheckID) VALUES (61); /*SQL Server Agent alerts do not exist for severity levels 19 through 25*/
458+
INSERT INTO #SkipChecks (CheckID) VALUES (79); /* Shrink Database Job check */
459+
INSERT INTO #SkipChecks (CheckID) VALUES (94); /* job failure without operator notification check */
460+
INSERT INTO #SkipChecks (CheckID) VALUES (96); /* Agent alerts for corruption */
461+
INSERT INTO #SkipChecks (CheckID) VALUES (98); /* check for disabled alerts */
462+
INSERT INTO #SkipChecks (CheckID) VALUES (123); /* Agent Jobs Starting Simultaneously */
463+
INSERT INTO #SkipChecks (CheckID) VALUES (219); /* check for alerts that do NOT include event descriptions in their outputs via email/pager/net-send */
458464
INSERT INTO #BlitzResults
459465
( CheckID ,
460466
Priority ,
@@ -3248,11 +3254,6 @@ AS
32483254
'The job ' + [name]
32493255
+ ' has not been set up to notify an operator if it fails.' AS Details
32503256
FROM msdb.[dbo].[sysjobs] j
3251-
INNER JOIN ( SELECT DISTINCT
3252-
[job_id]
3253-
FROM [msdb].[dbo].[sysjobschedules]
3254-
WHERE next_run_date > 0
3255-
) s ON j.job_id = s.job_id
32563257
WHERE j.enabled = 1
32573258
AND j.notify_email_operator_id = 0
32583259
AND j.notify_netsend_operator_id = 0
@@ -8130,16 +8131,30 @@ IF @ProductVersionMajor >= 10 AND NOT EXISTS ( SELECT 1
81308131
*/
81318132
IF NOT EXISTS ( SELECT 1
81328133
FROM #SkipChecks
8133-
WHERE DatabaseName IS NULL AND CheckID = 184 )
8134-
AND (@ProductVersionMajor >= 13) OR (@ProductVersionMajor = 12 AND @ProductVersionMinor >= 5000)
8134+
WHERE DatabaseName IS NULL AND CheckID = 193 )
8135+
AND ((@ProductVersionMajor >= 13) OR (@ProductVersionMajor = 12 AND @ProductVersionMinor >= 5000))
81358136
BEGIN
81368137

8137-
IF @Debug IN (1, 2) RAISERROR('Running CheckId [%d].', 0, 1, 184) WITH NOWAIT;
8138+
IF @Debug IN (1, 2) RAISERROR('Running CheckId [%d].', 0, 1, 193) WITH NOWAIT;
81388139

8139-
INSERT INTO #ErrorLog
8140-
EXEC sys.xp_readerrorlog 0, 1, N'Database Instant File Initialization: enabled';
8140+
-- If this is Amazon RDS, use rdsadmin.dbo.rds_read_error_log
8141+
IF LEFT(CAST(SERVERPROPERTY('ComputerNamePhysicalNetBIOS') AS VARCHAR(8000)), 8) = 'EC2AMAZ-'
8142+
AND LEFT(CAST(SERVERPROPERTY('MachineName') AS VARCHAR(8000)), 8) = 'EC2AMAZ-'
8143+
AND LEFT(CAST(SERVERPROPERTY('ServerName') AS VARCHAR(8000)), 8) = 'EC2AMAZ-'
8144+
AND db_id('rdsadmin') IS NOT NULL
8145+
AND EXISTS(SELECT * FROM master.sys.all_objects WHERE name IN ('rds_startup_tasks', 'rds_help_revlogin', 'rds_hexadecimal', 'rds_failover_tracking', 'rds_database_tracking', 'rds_track_change'))
8146+
BEGIN
8147+
INSERT INTO #ErrorLog
8148+
EXEC rdsadmin.dbo.rds_read_error_log 0, 1, N'Database Instant File Initialization: enabled';
8149+
END
8150+
ELSE
8151+
BEGIN
8152+
INSERT INTO #ErrorLog
8153+
EXEC sys.xp_readerrorlog 0, 1, N'Database Instant File Initialization: enabled';
8154+
END
81418155

81428156
IF @@ROWCOUNT > 0
8157+
begin
81438158
INSERT INTO #BlitzResults
81448159
( CheckID ,
81458160
[Priority] ,
@@ -8155,6 +8170,37 @@ IF @ProductVersionMajor >= 10 AND NOT EXISTS ( SELECT 1
81558170
'Instant File Initialization Enabled' AS [Finding] ,
81568171
'https://www.brentozar.com/go/instant' AS [URL] ,
81578172
'The service account has the Perform Volume Maintenance Tasks permission.';
8173+
end
8174+
else -- if version of sql server has instant_file_initialization_enabled column in dm_server_services, check that too
8175+
-- in the event the error log has been cycled and the startup messages are not in the current error log
8176+
begin
8177+
if EXISTS ( SELECT *
8178+
FROM sys.all_objects o
8179+
INNER JOIN sys.all_columns c ON o.object_id = c.object_id
8180+
WHERE o.name = 'dm_server_services'
8181+
AND c.name = 'instant_file_initialization_enabled' )
8182+
begin
8183+
INSERT INTO #BlitzResults
8184+
( CheckID ,
8185+
[Priority] ,
8186+
FindingsGroup ,
8187+
Finding ,
8188+
URL ,
8189+
Details
8190+
)
8191+
SELECT
8192+
193 AS [CheckID] ,
8193+
250 AS [Priority] ,
8194+
'Server Info' AS [FindingsGroup] ,
8195+
'Instant File Initialization Enabled' AS [Finding] ,
8196+
'https://www.brentozar.com/go/instant' AS [URL] ,
8197+
'The service account has the Perform Volume Maintenance Tasks permission.'
8198+
where exists (select 1 FROM sys.dm_server_services
8199+
WHERE instant_file_initialization_enabled = 'Y'
8200+
AND filename LIKE '%sqlservr.exe%')
8201+
OPTION (RECOMPILE);
8202+
end;
8203+
end;
81588204
END;
81598205

81608206
/* Server Info - Instant File Initialization Not Enabled - Check 192 - SQL Server 2016 SP1 and newer */

sp_BlitzAnalysis.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ ALTER PROCEDURE [dbo].[sp_BlitzAnalysis] (
3535
)
3636
AS
3737
SET NOCOUNT ON;
38+
SET STATISTICS XML OFF;
3839

39-
SELECT @Version = '8.03', @VersionDate = '20210420';
40+
SELECT @Version = '8.04', @VersionDate = '20210530';
4041

4142
IF(@VersionCheckMode = 1)
4243
BEGIN

sp_BlitzBackups.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@ WITH RECOMPILE
2121
AS
2222
BEGIN
2323
SET NOCOUNT ON;
24+
SET STATISTICS XML OFF;
2425
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
2526

26-
SELECT @Version = '8.03', @VersionDate = '20210420';
27+
SELECT @Version = '8.04', @VersionDate = '20210530';
2728

2829
IF(@VersionCheckMode = 1)
2930
BEGIN

0 commit comments

Comments
 (0)