---------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------CHECKDB------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- SELECT * FROM Minion.CheckDBSettingsDB SELECT * FROM Minion.CheckDBSettingsTable -------------------------------------------------------- -------------------------------------------------------- -------------------BEGIN Ordering----------------------- -------------------------------------------------------- -------------------------------------------------------- TRUNCATE TABLE Minion.CheckDBSettingsDB INSERT INTO Minion.CheckDBSettingsDB (DBName, Port, OpLevel, OpName, Exclude, GroupOrder, GroupDBOrder, NoIndex, RepairOption, RepairOptionAgree, WithRollback, AllErrorMsgs, ExtendedLogicalChecks, NoInfoMsgs, IsTabLock, IntegrityCheckLevel, DisableDOP, IsRemote, IncludeRemoteInTimeLimit, PreferredServer, PreferredServerPort, PreferredDBName, RemoteJobName, RemoteCheckDBMode, RemoteRestoreMode, DropRemoteDB, DropRemoteJob, LockDBMode, ResultMode, HistRetDays, PushToMinion, MinionTriggerPath, AutoRepair, AutoRepairTime, DefaultSchema, DBPreCode, DBPostCode, TablePreCode, TablePostCode, DBInternalThreads, DefaultTimeEstimateMins, LogSkips, BeginTime, EndTime, DayOfWeek, IsActive, Comment) VALUES (N'MinionDefault', NULL, 'DB', 'CHECKDB', 0, 0, 0, 0, 'NONE', 1, NULL, 1, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'Full', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, 0, '00:00:00', '23:59:00', 'Daily', 1, 'MinionDefault. DO NOT REMOVE.' ), (N'MinionDefault', 1433, 'DB', 'CHECKTABLE', 0, 0, 0, 0, 'NONE', 1, NULL, 1, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'Summary', 60, NULL, NULL, NULL, NULL, 'dbo', NULL, NULL, NULL, NULL, 1, 1, 1, '00:00:00', '23:59:00', 'Daily', 1, 'MinionDefault. DO' ) --DELETE Minion.CheckDBSettingsDB --WHERE ID > 2; SELECT * FROM Minion.CheckDBSettingsDB -------------------------------------------- -------------BEGIN Orig Order--------------- -------------------------------------------- [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'CHECKDB', @StmtOnly = 1, @Schemas = NULL, @Tables = NULL, @Include = NULL, @Exclude = NULL , @NumConcurrentProcesses = 1; -------------------------------------------- -------------END Orig Order----------------- -------------------------------------------- -------------------------------------------- -------------BEGIN New Order---------------- -------------------------------------------- INSERT INTO Minion.CheckDBSettingsDB (DBName, Port, OpLevel, OpName, Exclude, GroupOrder, GroupDBOrder, NoIndex, RepairOption, RepairOptionAgree, WithRollback, AllErrorMsgs, ExtendedLogicalChecks, NoInfoMsgs, IsTabLock, IntegrityCheckLevel, DisableDOP, IsRemote, IncludeRemoteInTimeLimit, PreferredServer, PreferredServerPort, PreferredDBName, RemoteJobName, RemoteCheckDBMode, RemoteRestoreMode, DropRemoteDB, DropRemoteJob, LockDBMode, ResultMode, HistRetDays, PushToMinion, MinionTriggerPath, AutoRepair, AutoRepairTime, DefaultSchema, DBPreCode, DBPostCode, TablePreCode, TablePostCode, DBInternalThreads, DefaultTimeEstimateMins, LogSkips, BeginTime, EndTime, DayOfWeek, IsActive, Comment) VALUES (N'Demo', NULL, 'DB', 'CHECKDB', 0, 10, 0, 0, 'NONE', 1, NULL, 1, 0, 0, 0, NULL, NULL, NULL, NULL, 'MINIONDEVCON', NULL, NULL, NULL, 'Disconnected', 'NONE', NULL, NULL, NULL, 'Summary', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 1, 1, '00:00:00', '23:59:00', 'Daily', 1, 'MinionDefault. DO' ), (N'Demo', NULL, 'DB', 'CHECKTABLE', 0, 10, 0, 0, 'NONE', 1, NULL, 1, 0, 0, 0, NULL, NULL, NULL, NULL, 'MINIONDEVCON', NULL, NULL, NULL, 'Disconnected', 'NONE', NULL, NULL, NULL, 'Summary', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 1, 1, '00:00:00', '23:59:00', 'Daily', 1, 'MinionDefault. DO' ), (N'CDC', NULL, 'DB', 'CHECKDB', 0, 5, 0, 0, 'NONE', 1, NULL, 1, 0, 0, 0, NULL, NULL, 0, NULL, NULL, NULL, NULL, '%DBName%Remote-From-%Server%', 'Disconnected', 'NONE', 0, 0, NULL, 'Summary', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, 1, '00:00:00', '23:59:00', 'Daily', 1, 'MinionDefault. DO' ), (N'CDC', NULL, 'DB', 'CHECKTABLE', 0, 5, 0, 0, 'NONE', 1, NULL, 1, 0, 0, 0, NULL, NULL, 0, NULL, NULL, NULL, NULL, '%DBName%Remote-From-%Server%', 'Disconnected', 'NONE', 0, 0, NULL, 'Summary', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, 1, '00:00:00', '23:59:00', 'Daily', 1, 'MinionDefault. DO' ) SELECT * FROM Minion.CheckDBSettingsDB [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'CHECKDB', @StmtOnly = 1, @Schemas = NULL, @Tables = NULL, @Include = NULL, @Exclude = NULL , @NumConcurrentProcesses = 1; -------------------------------------------- -------------END New Order------------------ -------------------------------------------- INSERT INTO Minion.CheckDBSettingsDB (DBName, Port, OpLevel, OpName, Exclude, GroupOrder, GroupDBOrder, NoIndex, RepairOption, RepairOptionAgree, WithRollback, AllErrorMsgs, ExtendedLogicalChecks, NoInfoMsgs, IsTabLock, IntegrityCheckLevel, DisableDOP, IsRemote, IncludeRemoteInTimeLimit, PreferredServer, PreferredServerPort, PreferredDBName, RemoteJobName, RemoteCheckDBMode, RemoteRestoreMode, DropRemoteDB, DropRemoteJob, LockDBMode, ResultMode, HistRetDays, PushToMinion, MinionTriggerPath, AutoRepair, AutoRepairTime, DefaultSchema, DBPreCode, DBPostCode, TablePreCode, TablePostCode, DBInternalThreads, DefaultTimeEstimateMins, LogSkips, BeginTime, EndTime, DayOfWeek, IsActive, Comment) VALUES (N'MinionDev', NULL, 'DB', 'CHECKDB', 0, 10, 10, 0, 'NONE', 1, NULL, 1, 0, 0, 0, NULL, NULL, NULL, NULL, 'MINIONDEVCON', NULL, NULL, NULL, 'Disconnected', 'NONE', NULL, NULL, NULL, 'Summary', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 1, 1, '00:00:00', '23:59:00', 'Daily', 1, 'MinionDefault. DO' ), (N'MinionDev', NULL, 'DB', 'CHECKTABLE', 0, 10, 10, 0, 'NONE', 1, NULL, 1, 0, 0, 0, NULL, NULL, NULL, NULL, 'MINIONDEVCON', NULL, NULL, NULL, 'Disconnected', 'NONE', NULL, NULL, NULL, 'Summary', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 1, 1, '00:00:00', '23:59:00', 'Daily', 1, 'MinionDefault. DO' ), (N'MBDemo', NULL, 'DB', 'CHECKDB', 0, 10, 5, 0, 'NONE', 1, NULL, 1, 0, 0, 0, NULL, NULL, 0, NULL, NULL, NULL, NULL, '%DBName%Remote-From-%Server%', 'Disconnected', 'NONE', 0, 0, NULL, 'Summary', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, 1, '00:00:00', '23:59:00', 'Daily', 1, 'MinionDefault. DO' ), (N'MBDemo', NULL, 'DB', 'CHECKTABLE', 0, 10, 5, 0, 'NONE', 1, NULL, 1, 0, 0, 0, NULL, NULL, 0, NULL, NULL, NULL, NULL, '%DBName%Remote-From-%Server%', 'Disconnected', 'NONE', 0, 0, NULL, 'Summary', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, 1, '00:00:00', '23:59:00', 'Daily', 1, 'MinionDefault. DO' ) SELECT * FROM Minion.CheckDBSettingsDB ORDER BY GroupOrder DESC, GroupDBOrder DESC -------------------------------------------------------- -------------------------------------------------------- -------------------END Ordering------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------BEGIN Exclude------------------------ -------------------------------------------------------- -------------------------------------------------------- SELECT * FROM Minion.CheckDBSettingsDB ---Show the DBs at the top of the list [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'CHECKDB', @StmtOnly = 1, @Schemas = NULL, @Tables = NULL, @Include = NULL, @Exclude = NULL , @NumConcurrentProcesses = 1; ----Set Excludes UPDATE Minion.CheckDBSettingsDB SET Exclude = 1 WHERE DBName IN ('MinionDev', 'MBDemo', 'CDC', 'Demo') AND OpName = 'CheckDB'; ---- The DBs are excluded. [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'CHECKDB', @StmtOnly = 1, @Schemas = NULL, @Tables = NULL, @Include = NULL, @Exclude = NULL , @NumConcurrentProcesses = 1; -----You can also exclude via param. DELETE Minion.CheckDBSettingsDB WHERE ID > 2; ----All DBs are present [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'CHECKDB', @StmtOnly = 1, @Schemas = NULL, @Tables = NULL, @Include = NULL, @Exclude = NULL , @NumConcurrentProcesses = 1; ----Excluded DBs [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'CHECKDB', @StmtOnly = 1, @Schemas = NULL, @Tables = NULL, @Include = NULL, @Exclude = 'aaa, ReportServer, ReportServerTempDB, AdventureWorks' , @NumConcurrentProcesses = 1; -------------------------------------------------------- -------------------------------------------------------- -------------------END Exclude-------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------BEGIN Table Ordering----------------- -------------------------------------------------------- -------------------------------------------------------- TRUNCATE TABLE Minion.CheckDBSettingsTable; Minion.CheckDBCheckTable @DBName = 'Minion', @Schemas = NULL, @Tables = NULL, @StmtOnly = 1, @PrepOnly = 0, @RunPrepped = 0, @ExecutionDateTime = NULL, @Thread = 0, @Debug = 0; INSERT INTO Minion.CheckDBSettingsTable (DBName, SchemaName, TableName, IndexName, Exclude, GroupOrder, GroupTableOrder, PreferredServer, TableOrderType, NoIndex, RepairOption, RepairOptionAgree, AllErrorMsgs, ExtendedLogicalChecks, NoInfoMsgs, IsTabLock, ResultMode, IntegrityCheckLevel, HistRetDays, TablePreCode, TablePostCode, IsActive, Comment) VALUES ('Minion', 'Clone', 'LoginScripts', NULL, 0, 10, 10, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 'Full', NULL, 60, NULL, NULL, 1, NULL ), ('Minion', 'Collector', 'DBPermissions', NULL, 0, 10, 5, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 'Full', NULL, 60, NULL, NULL, 1, NULL ), ('Minion', 'Collector', 'DBFileProperties', NULL, 0, 10, 1, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 'Full', NULL, 60, NULL, NULL, 1, NULL ), ('Minion', 'Collector', 'ServerPermissions', NULL, 0, 5, 10, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 'Full', NULL, 60, NULL, NULL, 1, NULL ), ('Minion', 'Alert', 'BackupDefer', NULL, 0, 5, 5, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 'Full', NULL, 60, NULL, NULL, 1, NULL ); SELECT * FROM Minion.CheckDBSettingsTable ORDER BY GroupOrder DESC, GroupTableOrder DESC; Minion.CheckDBCheckTable @DBName = 'Minion', @Schemas = NULL, @Tables = NULL, @StmtOnly = 1, @PrepOnly = 0, @RunPrepped = 0, @ExecutionDateTime = NULL, @Thread = 0, @Debug = 0; UPDATE Minion.CheckDBSettingsTable SET GroupTableOrder = 11 WHERE TableName = 'DBFileProperties' -------------------------------------------------------- -------------------------------------------------------- -------------------END Table Ordering------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------BEGIN Table Exclusions--------------- -------------------------------------------------------- -------------------------------------------------------- TRUNCATE TABLE Minion.CheckDBSettingsTable; Minion.CheckDBCheckTable @DBName = 'Minion', @Schemas = NULL, @Tables = NULL, @StmtOnly = 1, @PrepOnly = 0, @RunPrepped = 0, @ExecutionDateTime = NULL, @Thread = 0, @Debug = 0; INSERT INTO Minion.CheckDBSettingsTable (DBName, SchemaName, TableName, IndexName, Exclude, GroupOrder, GroupTableOrder, PreferredServer, TableOrderType, NoIndex, RepairOption, RepairOptionAgree, AllErrorMsgs, ExtendedLogicalChecks, NoInfoMsgs, IsTabLock, ResultMode, IntegrityCheckLevel, HistRetDays, TablePreCode, TablePostCode, IsActive, Comment) VALUES ('Minion', 'dbo', 'ServerModule', NULL, 1, 10, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 'Full', NULL, 60, NULL, NULL, 1, NULL ), ('Minion', 'Alert', 'IndexMaintReportSettingsDB', NULL, 1, 9, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 'Full', NULL, 60, NULL, NULL, 1, NULL ); SELECT * FROM Minion.CheckDBSettingsTable; Minion.CheckDBCheckTable @DBName = 'Minion', @Schemas = NULL, @Tables = NULL, @StmtOnly = 1, @PrepOnly = 0, @RunPrepped = 0, @ExecutionDateTime = NULL, @Thread = 0, @Debug = 0; -------------------------------------------------------- -------------------------------------------------------- -------------------END Table Exclusions----------------- -------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------BEGIN Table Limiting----------------- -------------------------------------------------------- -------------------------------------------------------- TRUNCATE TABLE Minion.CheckDBSettingsTable; ----Single schema. Minion.CheckDBCheckTable @DBName = 'Minion', @Schemas = 'Collector', @Tables = NULL, @StmtOnly = 1, @PrepOnly = 0, @RunPrepped = 0, @ExecutionDateTime = NULL, @Thread = 0, @Debug = 0; --Mult. schemas. Minion.CheckDBCheckTable @DBName = 'Minion', @Schemas = 'Collector, Alert', @Tables = NULL, @StmtOnly = 1, @PrepOnly = 0, @RunPrepped = 0, @ExecutionDateTime = NULL, @Thread = 0, @Debug = 0; --Wildcard schemas. Minion.CheckDBCheckTable @DBName = 'Minion', @Schemas = 'C%', @Tables = NULL, @StmtOnly = 1, @PrepOnly = 0, @RunPrepped = 0, @ExecutionDateTime = NULL, @Thread = 0, @Debug = 0; --Mixed schemas. Minion.CheckDBCheckTable @DBName = 'Minion', @Schemas = 'C%, Alert', @Tables = NULL, @StmtOnly = 1, @PrepOnly = 0, @RunPrepped = 0, @ExecutionDateTime = NULL, @Thread = 0, @Debug = 0; --Specific tables. Minion.CheckDBCheckTable @DBName = 'Minion', @Schemas = NULL, @Tables = 'Alert.BackupDefer, Archive.Config, Clone.LoginsToPush', @StmtOnly = 1, @PrepOnly = 0, @RunPrepped = 0, @ExecutionDateTime = NULL, @Thread = 0, @Debug = 0; --Wildcard tables. Minion.CheckDBCheckTable @DBName = 'Minion', @Schemas = NULL, @Tables = 'Alert.Index%, Collector.Avail%', @StmtOnly = 1, @PrepOnly = 0, @RunPrepped = 0, @ExecutionDateTime = NULL, @Thread = 0, @Debug = 0; --Default schema issue. ----We want to process the Alert.Backup% tables. And since we can pass-in wildcards then we should be able to just pass in Backup%. ----Let's see how that works. Minion.CheckDBCheckTable @DBName = 'Minion', @Schemas = NULL, @Tables = 'Backup%', @StmtOnly = 1, @PrepOnly = 0, @RunPrepped = 0, @ExecutionDateTime = NULL, @Thread = 0, @Debug = 0; --Notice how they're all in dbo. This isn't what we wanted. We wanted all the Alert.Backup% tables. ----We need to set the DefaultSchema col. INSERT INTO Minion.CheckDBSettingsDB (DBName, Port, OpLevel, OpName, Exclude, GroupOrder, GroupDBOrder, NoIndex, RepairOption, RepairOptionAgree, WithRollback, AllErrorMsgs, ExtendedLogicalChecks, NoInfoMsgs, IsTabLock, IntegrityCheckLevel, DisableDOP, IsRemote, IncludeRemoteInTimeLimit, PreferredServer, PreferredServerPort, PreferredDBName, RemoteJobName, RemoteCheckDBMode, RemoteRestoreMode, DropRemoteDB, DropRemoteJob, LockDBMode, ResultMode, HistRetDays, PushToMinion, MinionTriggerPath, AutoRepair, AutoRepairTime, DefaultSchema, DBPreCode, DBPostCode, TablePreCode, TablePostCode, DBInternalThreads, DefaultTimeEstimateMins, LogSkips, BeginTime, EndTime, DayOfWeek, IsActive, Comment) VALUES (N'Minion', NULL, 'DB', 'CHECKTABLE', 0, 10, 0, 0, 'NONE', 1, NULL, 1, 0, 0, 0, NULL, NULL, NULL, NULL, 'MINIONDEVCON', NULL, NULL, NULL, 'Disconnected', 'NONE', NULL, NULL, NULL, 'Summary', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 1, 1, '00:00:00', '23:59:00', 'Daily', 1, 'MinionDefault. DO' ) UPDATE Minion.CheckDBSettingsDB SET DefaultSchema = 'Alert' WHERE DBName = 'Minion' AND OpName = 'CheckTable'; SELECT * FROM Minion.CheckDBSettingsDB ----Now let's try again and we should get the Alert.Backup% tables. Minion.CheckDBCheckTable @DBName = 'Minion', @Schemas = NULL, @Tables = 'Backup%', @StmtOnly = 1, @PrepOnly = 0, @RunPrepped = 0, @ExecutionDateTime = NULL, @Thread = 0, @Debug = 0; -------------------------------------------------------- -------------------------------------------------------- -------------------END Table Limiting------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------BEGIN Snapshots---------------------- -------------------------------------------------------- -------------------------------------------------------- --Problem: Too much I/O on prod disk, or not enough space. --Solution: Custom snapshot for CHECKDB. --Start by telling MC that you want a custom snapshot. TRUNCATE TABLE [Minion].[CheckDBSettingsSnapshot]; INSERT INTO [Minion].[CheckDBSettingsSnapshot] VALUES ('MinionDefault', 'CheckTable', 0, 0, 1, 1, NULL, NULL, NULL, NULL, 1, NULL ), ('MinionDefault', 'CHECKDB', 0, 0, NULL, 1, NULL, NULL, NULL, NULL, 1, NULL ), ('Demo', 'CheckTable', 1, 1, 1, 1, NULL, NULL, NULL, NULL, 1, NULL ), ('Demo', 'CHECKDB', 1, 1, 1, 0, NULL, NULL, NULL, NULL, 1, NULL ); SELECT * FROM [Minion].[CheckDBSettingsSnapshot]; --Now tell MC where you want the snapshot to go. TRUNCATE TABLE [Minion].[CheckDBSnapshotPath]; INSERT INTO [Minion].[CheckDBSnapshotPath] VALUES ('MinionDefault', 'CHECKTABLE', 'MinionDefault', 'C:\', 'MySnapshotCheckTable\', NULL, 0, 1, 'MinionDefault' ), ('MinionDefault', 'CHECKDB', 'MinionDefault', 'C:\', 'SnapshotCheckDB\', NULL, 0, 1, 'MinionDefault' ); SELECT * FROM [Minion].[CheckDBSnapshotPath] ----Now run the CheckDB to see the snapshot. [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'CHECKDB', @StmtOnly = 0, @Schemas = NULL, @Tables = NULL, @Include = 'Demo', @Exclude = NULL , @NumConcurrentProcesses = 1; --The problem here is that the snapshot is still there. You can't keep a snapshot around forever. It needs to be managed. UPDATE [Minion].[CheckDBSettingsSnapshot] SET DeleteFinalSnapshot = 1; SELECT * FROM [Minion].[CheckDBSettingsSnapshot]; ----Now run the CheckDB to see the snapshot. [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'CHECKDB', @StmtOnly = 0, @Schemas = NULL, @Tables = NULL, @Include = 'Demo', @Exclude = NULL , @NumConcurrentProcesses = 1; ----Now you can see the snapshot was used, but it was deleted since it's not there anymore. SELECT ExecutionDateTime, Status, PctComplete, DBName, CheckDBName FROM Minion.CheckDBLogDetails ORDER BY ID DESC; -------------------------------------------------------------------------- -------------------------BEGIN Custom Snapshot Paths---------------------- -------------------------------------------------------------------------- --Problem: There's not enough space for all DB files on 1 disk, or diff DBs need to be on diff disks for either space or I/O. --Customize diff locations for diff files and DBs. INSERT INTO [Minion].[CheckDBSnapshotPath] VALUES ('SnapShotTestMultiFiles', 'CHECKDB', 'MinionDefault', 'C:\', 'MySnapshotCheckDB\', NULL, 0, 1, 'MinionDefault' ), ('SnapShotTestMultiFiles', 'CHECKDB', 'SnapShotTestMultiFiles', 'C:\', 'SnapshotSnapShotTestMultiFiles\', NULL, 0, 1, 'MinionDefault' ), ('SnapShotTestMultiFiles', 'CHECKDB', 'SnapShotTestMultiFiles2', 'C:\', 'SnapshotSnapShotTestMultiFiles2\', NULL, 0, 1, 'MinionDefault' ), ('SnapShotTestMultiFiles', 'CHECKDB', 'SnapShotTestMultiFiles3', 'C:\', 'SnapshotSnapShotTestMultiFiles3\', NULL, 0, 1, 'MinionDefault' ); --And now so we can see where the snapshot files are, we'll turn off the final delete. UPDATE [Minion].[CheckDBSettingsSnapshot] SET CustomSnapshot = 1, DeleteFinalSnapshot = 0; SELECT * FROM [Minion].[CheckDBSettingsSnapshot] SELECT * FROM [Minion].[CheckDBSnapshotPath] [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'CHECKDB', @StmtOnly = 0, @Schemas = NULL, @Tables = NULL, @Include = 'SnapShotTestMultiFiles', @Exclude = NULL , @NumConcurrentProcesses = 1; SELECT * FROM Minion.CheckDBLogDetails ORDER BY ID DESC; SELECT * FROM [Minion].[CheckDBSnapshotLog] ORDER BY ID DESC, FileID ASC; SELECT name, physical_name FROM sys.master_files WHERE DB_NAME(database_id) like 'SnapShotTestMultiFiles%' AND DB_NAME(database_id) <> 'SnapShotTestMultiFiles' ---------------------------------------------------------------- ------Custom Snapshots for CHECKTABLE--------------------------- ---------------------------------------------------------------- INSERT INTO [Minion].[CheckDBSnapshotPath] VALUES ('SnapShotTestMultiFiles', 'CHECKTABLE', 'MinionDefault', 'C:\', 'MySnapshotCheckTABLE\', NULL, 0, 1, 'MinionDefault' ) SELECT * FROM [Minion].[CheckDBSnapshotPath] SELECT * FROM [Minion].[CheckDBSettingsSnapshot] [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'CHECKTABLE', @StmtOnly = 0, @Schemas = NULL, @Tables = NULL, @Include = 'Demo', @Exclude = NULL , @NumConcurrentProcesses = 1; SELECT ExecutionDateTime, STATUS, PctComplete, DBName, CheckDBName, SchemaName, TableName FROM Minion.CheckDBLogDetailsCurrent SELECT * FROM [Minion].[CheckDBSnapshotLog] ORDER BY ID DESC, FileID ASC; SELECT DB_NAME(database_id) AS DBName, name AS FileName, physical_name FROM sys.master_files WHERE DB_NAME(database_id) like 'Demo%' AND DB_NAME(database_id) <> 'Demo'; ---Kill Snapshots--- UPDATE [Minion].[CheckDBSettingsSnapshot] SET CustomSnapshot = 0; -------------------------------------------------------- -------------------------------------------------------- -------------------END Snapshots------------------------ -------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- ----------------------------------------BEGIN Dynamic Settings------------------------------------ -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------BEGIN Auto--------------------------- -------------------------------------------------------- -------------------------------------------------------- --Scenario: You want to switch to checktable once a DB reaches a certain size. --Solution: Dynamic Tuning with AUTO. SELECT * FROM [Minion].[CheckDBSettingsAutoThresholds]; TRUNCATE TABLE [Minion].[CheckDBSettingsAutoThresholds]; INSERT INTO [Minion].[CheckDBSettingsAutoThresholds] VALUES ('MinionDefault', 'Size', 'DataAndIndex', 'GB', 5, 1, 'MINION DEFAULT. DO NOT REMOVE.' ) UPDATE Minion.CheckDBSettingsDB SET DBInternalThreads = 1; -----We'll start by seeing what we expect based on current size. DECLARE @OpName VARCHAR(20) = 'AUTO', @DBSize DECIMAL(18, 2); EXEC Minion.DBMaintDBSizeGet @Module = 'CheckDB', @OpName = @OpName output, @DBName = 'Minion', @DBSize = @DBSize output SELECT @DBSize AS DBSize, @OpName AS OpName; [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'AUTO', @StmtOnly = 0, @Schemas = NULL, @Tables = NULL, @Include = 'Minion', @Exclude = NULL , @NumConcurrentProcesses = 1; SELECT ExecutionDateTime, STATUS, PctComplete, DBName, CheckDBName, SchemaName, TableName FROM Minion.CheckDBLogDetailsCurrent; --Now let's force a CHECKDB through the AUTO process. UPDATE [Minion].[CheckDBSettingsAutoThresholds] SET ThresholdType = 'DataAndIndex', ThresholdValue = 20; -----We'll start by seeing what we expect based on current size. DECLARE @OpName VARCHAR(20) = 'AUTO', @DBSize DECIMAL(18, 2); EXEC Minion.DBMaintDBSizeGet @Module = 'CheckDB', @OpName = @OpName output, @DBName = 'Minion', @DBSize = @DBSize output SELECT @DBSize AS DBSize, @OpName AS OpName; [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'AUTO', @StmtOnly = 0, @Schemas = NULL, @Tables = NULL, @Include = 'Minion', @Exclude = NULL , @NumConcurrentProcesses = 1; -------------------------------------------------------- -------------------------------------------------------- -------------------END Auto----------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------- -------------------BEGIN Maximize Window---------------- -------------------------------------------------------- -------------------------------------------------------- ----Here we've got the issue where checkdb needs to be done within a certain window. So we need to speed it up as much as possible. ----There are a couple ways we can handle this. ---------------------Solution 1-- Lessen checks during the week.----------------- DELETE Minion.CheckDBSettingsDB WHERE ID > 2; INSERT INTO Minion.CheckDBSettingsDB (DBName, Port, OpLevel, OpName, Exclude, GroupOrder, GroupDBOrder, NoIndex, RepairOption, RepairOptionAgree, WithRollback, AllErrorMsgs, ExtendedLogicalChecks, NoInfoMsgs, IsTabLock, IntegrityCheckLevel, DisableDOP, IsRemote, IncludeRemoteInTimeLimit, PreferredServer, PreferredServerPort, PreferredDBName, RemoteJobName, RemoteCheckDBMode, RemoteRestoreMode, DropRemoteDB, DropRemoteJob, LockDBMode, ResultMode, HistRetDays, PushToMinion, MinionTriggerPath, AutoRepair, AutoRepairTime, DefaultSchema, DBPreCode, DBPostCode, TablePreCode, TablePostCode, DBInternalThreads, DefaultTimeEstimateMins, LogSkips, BeginTime, EndTime, DayOfWeek, IsActive, Comment) VALUES (N'MinionDefault', NULL, 'DB', 'CHECKDB', 0, 10, 0, 0, 'NONE', 1, NULL, 1, 0, 0, 0, NULL, NULL, NULL, NULL, 'MINIONDEVCON', NULL, NULL, NULL, 'Disconnected', 'NONE', NULL, NULL, NULL, 'Summary', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 1, 1, '00:00:00', '23:59:00', 'Weekend', 1, 'MinionDefault. Weekend' ), (N'Demo', NULL, 'DB', 'CHECKDB', 0, 10, 0, 0, 'NONE', 1, NULL, 1, 0, 0, 0, NULL, NULL, NULL, NULL, 'MINIONDEVCON', NULL, NULL, NULL, 'Disconnected', 'NONE', NULL, NULL, NULL, 'Summary', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 1, 1, '00:00:00', '23:59:00', 'Daily', 0, 'MinionDefault.' ) --This is for all DBs. UPDATE Minion.CheckDBSettingsDB SET IntegrityCheckLevel = 'PHYSICAL_ONLY', [DayOfWeek] = 'Weekday', Comment = 'Weekday Physical_Only.' WHERE OpName = 'CHECKDB' AND ID = 1; SELECT * FROM Minion.CheckDBSettingsDB; [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'AUTO', @StmtOnly = 0, @Schemas = NULL, @Tables = NULL, @Include = 'Minion', @Exclude = NULL , @NumConcurrentProcesses = 1; SELECT * FROM Minion.CheckDBLogDetails ORDER BY ID DESC; --Now we can test different scenarios easily by seeing which SettingsID will be used on any given day. ------Test WeekDay----- DECLARE @SettingID INT; EXEC Minion.DBMaintDBSettingsGet 'CHECKDB', 'Minion', 'CHECKDB', @SettingID = @SettingID OUTPUT, @TestDateTime = '2017-02-01 16:00:00'; SELECT @SettingID AS SettingID; SELECT * FROM Minion.CheckDBSettingsDB; ------Test Weekend----- DECLARE @SettingID INT; EXEC Minion.DBMaintDBSettingsGet 'CHECKDB', 'Minion', 'CHECKDB', @SettingID = @SettingID OUTPUT, @TestDateTime = '2017-02-04 16:00:00'; SELECT @SettingID AS SettingID; SELECT * FROM Minion.CheckDBSettingsDB; ---------------------Solution 2-- Multithread the checkdb.----------------------- --Now, if you've got the horsepower, and the disk to support it, you can also maximize your window by simply doing more work. --And to do that we're going to MT checkdb so we're doing more than 1 DB at a time. This works really well when you've got --a really large DB or a couple large DBs and a bunch of smaller to medium DBs because you can work on the large one, but --still chew through the others at the same time. [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'CHECKDB', @StmtOnly = 0, @Schemas = NULL, @Tables = NULL, @Include = NULL, @Exclude = NULL , @NumConcurrentProcesses = 3; --Monitor in another window. SELECT ExecutionDateTime, STATUS, PctComplete, DBName, CheckDBName, SchemaName, TableName FROM Minion.CheckDBLogDetailsCurrent WITH(nolock) ORDER BY PctComplete ASC; -------------We can also do the same thing with CHECKTABLE------------------- [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'CHECKTABLE', @StmtOnly = 0, @Schemas = NULL, @Tables = NULL, @Include = 'Minion', @Exclude = NULL , @NumConcurrentProcesses = 1, @DBInternalThreads = 3; --Monitor in another window. SELECT ExecutionDateTime, STATUS, PctComplete, DBName, CheckDBName, SchemaName, TableName FROM Minion.CheckDBLogDetailsCurrent WITH(nolock) ORDER BY PctComplete ASC; -------------And there's no reason we can't combine the 2 methods------------------- DELETE Minion.CheckDBSettingsDB WHERE ID > 2; UPDATE Minion.CheckDBSettingsDB SET IntegrityCheckLevel = NULL, [DayOfWeek] = NULL, Comment = 'MinionDefault. DO NOT REMOVE.' WHERE OpName = 'CHECKDB' AND ID = 1; INSERT INTO Minion.CheckDBSettingsDB (DBName, Port, OpLevel, OpName, Exclude, GroupOrder, GroupDBOrder, NoIndex, RepairOption, RepairOptionAgree, WithRollback, AllErrorMsgs, ExtendedLogicalChecks, NoInfoMsgs, IsTabLock, IntegrityCheckLevel, DisableDOP, IsRemote, IncludeRemoteInTimeLimit, PreferredServer, PreferredServerPort, PreferredDBName, RemoteJobName, RemoteCheckDBMode, RemoteRestoreMode, DropRemoteDB, DropRemoteJob, LockDBMode, ResultMode, HistRetDays, PushToMinion, MinionTriggerPath, AutoRepair, AutoRepairTime, DefaultSchema, DBPreCode, DBPostCode, TablePreCode, TablePostCode, DBInternalThreads, DefaultTimeEstimateMins, LogSkips, BeginTime, EndTime, DayOfWeek, IsActive, Comment) VALUES (N'Minion', NULL, 'DB', 'CHECKTABLE', 0, 10, 0, 0, 'NONE', 1, NULL, 1, 0, 0, 0, NULL, NULL, NULL, NULL, 'MINIONDEVCON', NULL, NULL, NULL, 'Disconnected', 'NONE', NULL, NULL, NULL, 'Summary', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 1, 1, '00:00:00', '23:59:00', 'Daily', 1, 'MinionDefault. DO' ) TRUNCATE TABLE [Minion].[CheckDBSettingsAutoThresholds]; INSERT INTO [Minion].[CheckDBSettingsAutoThresholds] VALUES ('MinionDefault', 'Size', 'DataAndIndex', 'GB', 5, 1, 'MINION DEFAULT. DO NOT REMOVE.' ) SELECT * FROM Minion.CheckDBSettingsDB; [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'AUTO', @StmtOnly = 0, @Schemas = NULL, @Tables = NULL, @Include = NULL, @Exclude = NULL , @NumConcurrentProcesses = 3; --Notice that @DBDBInternalThreads isn't specified. That's because each DB can have its own config in SettingsDB. --Monitor in another window. SELECT * FROM Minion.CheckDBLogDetails ORDER BY ExecutionDateTime DESC, PctComplete ASC; -------------------------------------------------------- -------------------------------------------------------- -------------------END Maximize Window------------------ -------------------------------------------------------- -------------------------------------------------------- -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- ----------------------------------------END Dynamic Settings-------------------------------------- -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- ----------------------------------------BEGIN VLDBs----------------------------------------------- -------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------- --In this case, VLDB encompasses really large and really busy. There are 3 diff scenarios to be aware of here. --1. The DB is so incredibly busy (and probably large too) that you can't complete a CHECKDB because the disk fills up and --the internal snapshot dies. Maybe you've got an extra 2TB lying around that you can take a custom snapshot on, but most likely --your SAN admin will turn down that req because they consider that frivilous.... you know, that frivilous integrity checking to make sure the --data that pays your salary is OK. --2. The DB is large enough and the server is busy enough, that you can't possibly take the several hrs or even days it would take to complete a checkDB. --3. There may be some large and some small DBs, but here it's the number of them that makes it hard to get through. There are just too many DBs on this server to checkdb in a reasonable timeframe. -------------------------------------------------------------------------- -----------------------------Scenario 1----------------------------------- --Here we're going to suggest something radical that should fix this situation. --If the problem is running out of snapshot space, then can't we just drop/create a new snapshot at defined intervals to keep things moving? --I mean, if that's the only issue here then we should be golden. And we can also offload the I/O from the prod disk some. ----Enter, Dynamic Snapshots. --Start by telling MC that you want a custom snapshot and how long you want it to last. ----We're only setting it to 1min here for the demo. You'd probably use something like 30mins or 60mins. TRUNCATE TABLE [Minion].[CheckDBSettingsSnapshot]; INSERT INTO [Minion].[CheckDBSettingsSnapshot] VALUES ('MinionDefault', 'CheckTable', 0, 0, 1, 1, NULL, NULL, NULL, NULL, 1, NULL ), ('MinionDefault', 'CHECKDB', 0, 0, NULL, 1, NULL, NULL, NULL, NULL, 1, NULL ), ('Minion', 'CheckTable', 1, 1, 1, 1, NULL, NULL, NULL, NULL, 1, NULL ), ('Demo', 'CHECKDB', 1, 1, 1, 0, NULL, NULL, NULL, NULL, 1, NULL ); SELECT * FROM [Minion].[CheckDBSettingsSnapshot]; ---!!!!!!!!!!!!!That's it. That's all you need to do to configure dynamic snapshots.!!!!!!!!!!!!!!!!!! [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'CHECKTABLE', @StmtOnly = 0, @Schemas = NULL, @Tables = NULL, @Include = 'Minion', @Exclude = NULL , @NumConcurrentProcesses = 1, @DBInternalThreads = 1; --Notice we're only using 1 InternalThread? Currently, dyanmic snapshots only work with an ST run. --Monitor in another window SELECT ID, ExecutionDateTime, Status,PctComplete, DBName, CheckDBName, TableName FROM Minion.CheckDBLogDetails ORDER BY ExecutionDateTime DESC, PctComplete ASC; --------See number of tables for each snapshotDB. SELECT CheckDBName, COUNT(*) AS CT FROM Minion.CheckDBLogDetailsCurrent GROUP BY CheckDBName ORDER BY CheckDBName; -------------------------------------------------------------------------- -----------------------------Scenario 2----------------------------------- --We're going to solve this one by offloading the checkdb to another server. --This is a very common req on really large DBs. --To offload a checkdb means we're going to run it against another server. The problem with most of these solutions is that --they have to be managed separately. The checkdb runs on a diff box, and you have to rely on tribal knowledge of the group to know --that the DB on that other box is just a restore of the prod backup and that you have to take any failures as a failure of the prod backup itself. --Other than tribal knowledge, there's a complete disconnect between the checkdb and results to the prod box. This isn't how things should be done. --So we're going to setup a remote checkdb. Of course, we're on a laptop so the remote box will have to be this one, but the process is still the same. --Here are the steps: DELETE Minion.CheckDBSettingsDB WHERE ID > 2; INSERT INTO Minion.CheckDBSettingsDB (DBName, Port, OpLevel, OpName, Exclude, GroupOrder, GroupDBOrder, NoIndex, RepairOption, RepairOptionAgree, WithRollback, AllErrorMsgs, ExtendedLogicalChecks, NoInfoMsgs, IsTabLock, IntegrityCheckLevel, DisableDOP, IsRemote, IncludeRemoteInTimeLimit, PreferredServer, PreferredServerPort, PreferredDBName, RemoteJobName, RemoteCheckDBMode, RemoteRestoreMode, DropRemoteDB, DropRemoteJob, LockDBMode, ResultMode, HistRetDays, PushToMinion, MinionTriggerPath, AutoRepair, AutoRepairTime, DefaultSchema, DBPreCode, DBPostCode, TablePreCode, TablePostCode, StmtPrefix, StmtSuffix, DBInternalThreads, DefaultTimeEstimateMins, LogSkips, BeginTime, EndTime, DayOfWeek, IsActive, Comment) VALUES (N'Demo', NULL, 'DB', 'CHECKDB', 0, 10, 0, 0, 'NONE', 1, NULL, 1, 0, 0, 0, NULL, NULL, 1, NULL, 'MINIONDEVCON', NULL, 'MalMRIssues', NULL, 'CONNECTED', 'NONE', NULL, NULL, NULL, 'Summary', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 1, 1, '00:00:00', '23:59:00', 'Daily', 1, 'Demo' ) SELECT * FROM Minion.CheckDBSettingsDB --There's a lot to talk about with RemoteRestoreMode and PreferredDBName. Valid options: NONE, LastMinionBackup. DBName can be: '%DBName%-CheckDBRemoteRestore-%Date%' --This whole thing allows you to either have an external process, or an integrated restore process. Your choice. --When you do something like this, you really need to be as inclusive as possible. -- >Consider whether you're going to hold the routine until the remote restore is done or complete it and have the remote restore update in the background. -- >Consider that you won't always have the same backup routine running everywhere so you may need to make allowances for different routines. [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'CHECKDB', @StmtOnly = 0, @Schemas = NULL, @Tables = NULL, @Include = 'Demo', @Exclude = NULL , @NumConcurrentProcesses = 1; --Notice we're only using 1 InternalThread? Currently, dyanmic snapshots only work with an ST run. --Monitor in another window SELECT ID, ExecutionDateTime, Status,PctComplete, DBName, CheckDBName, TableName FROM Minion.CheckDBLogDetails ORDER BY ExecutionDateTime DESC, PctComplete ASC; -------------------------------------------------------------------------- -----------------------------Scenario 2a---------------------------------- ------Now let's use the last backup for our checkdb. Minion.BackupMaster @DBType = 'User', @BackupType = 'Full', @StmtOnly = 0, @Include = 'Demo', @Exclude = NULL, @ReadOnly = 1,-- 1-All 2-No RO 3-RO only @Debug = 0, @SyncSettings = 0, @SyncLogs = 0, @FailJobOnError = 0, @FailJobOnWarning = 0, @TestDateTime = NULL; UPDATE Minion.CheckDBSettingsDB SET RemoteRestoreMode = 'LastMinionBackup', PreferredDBName = 'RemoteCheckDB_Restore_%DBName%_From_%Server%', DropRemoteDB = 0 WHERE DBName = 'Demo' AND OpName = 'CHECKDB' AND IsActive = 1; [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'CHECKDB', @StmtOnly = 0, @Schemas = NULL, @Tables = NULL, @Include = 'Demo', @Exclude = NULL , @NumConcurrentProcesses = 1; -------------------------------------------------------------------------- -----------------------------Scenario 3----------------------------------- --Too many DBs. --Here we've got too many DBs to be able to process in a reasonable time. Sure, if we've got the horsepower we can MT and get a lot more done, but in this case we simply don't have --that luxury. So instead of MT, we're going to setup a rotation so we're processing a certain number of DBs every day. This rotation will just keep going until it reaches the end --and then it will start over. --For this example, we'll do 10 DBs/night. TRUNCATE TABLE [Minion].[CheckDBRotationDBs] TRUNCATE TABLE [Minion].[CheckDBRotationDBsReload] TRUNCATE TABLE Minion.CheckDBLogDetails --Just to make it easier to read for the demo. UPDATE [Minion].[CheckDBSettingsRotation] SET IsActive = 1 WHERE ID = 1; [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'CHECKDB', @StmtOnly = 0, @Schemas = NULL, @Tables = NULL, @Include = NULL, @Exclude = NULL , @NumConcurrentProcesses = 1; ----Monitor in separate window. SELECT ID, ExecutionDateTime, Status,PctComplete, DBName, CheckDBName, TableName FROM Minion.CheckDBLogDetails WHERE ExecutionDateTime IN (SELECT MAX(ExecutionDateTime) FROM Minion.CheckDBLogDetails) ORDER BY ExecutionDateTime DESC, PctComplete ASC; SELECT * FROM Minion.CheckDBSettingsDB -------------------------------------------------------------------------- -----------------------------Scenario 4----------------------------------- ----Now we'll do a timed rotation for when you want to base it on a window instead of a group of DBs. TRUNCATE TABLE [Minion].[CheckDBRotationDBs] TRUNCATE TABLE [Minion].[CheckDBRotationDBsReload] TRUNCATE TABLE Minion.CheckDBLogDetails --Just to make it easier to read for the demo. UPDATE [Minion].[CheckDBSettingsRotation] SET IsActive = 0 WHERE ID = 1; UPDATE [Minion].[CheckDBSettingsRotation] SET RotationMetricValue = 1, IsActive = 1 WHERE ID = 2; UPDATE Minion.CheckDBSettingsDB SET LogSkips = 1; SELECT * FROM [Minion].[CheckDBSettingsRotation] ---------------BEGIN Add rows to get a baseline----------------- INSERT INTO Minion.CheckDBLogDetails (ExecutionDateTime, STATUS, PctComplete, DBName, CheckDBName, ServerLabel, NETBIOSName, IsRemote, PreferredServer, PreferredDBName, RemoteCheckDBMode, RemoteRestoreMode, IsClustered, IsInAG, IsPrimaryReplica, DBType, OpName, SchemaName, TableName, IndexName, IndexID, IndexType, GroupOrder, GroupDBOrder, SizeInMB, TimeLimitInMins, EstimatedTimeInSecs, EstimatedKBperMS, LastOpTimeInSecs, IncludeRemoteInTimeLimit, OpBeginTime, OpEndTime, OpRunTimeInSecs, CustomSnapshot, MaxSnapshotSizeInKB, CheckDBCmd, AllocationErrors, ConsistencyErrors, NoIndex, RepairOption, RepairOptionAgree, WithRollback, AllErrorMsgs, ExtendedLogicalChecks, NoInfoMsgs, IsTabLock, IntegrityCheckLevel, DisableDOP, LockDBMode, ResultMode, HistRetDays, PushToMinion, MinionTriggerPath, AutoRepair, AutoRepairTime, LastCheckDateTime, LastCheckResult, DBPreCodeStartDateTime, DBPreCodeEndDateTime, DBPreCodeTimeInSecs, DBPreCode, DBPostCodeStartDateTime, DBPostCodeEndDateTime, DBPostCodeTimeInSecs, DBPostCode, TablePreCodeStartDateTime, TablePreCodeEndDateTime, TablePreCodeTimeInSecs, TablePreCode, TablePostCodeStartDateTime, TablePostCodeEndDateTime, TablePostCodeTimeInSecs, TablePostCode, StmtPrefix, StmtSuffix, ProcessingThread, Warnings) VALUES (N'2017-01-31T15:09:48.063', N'Complete', 100, N'Demo', N'MalMRIssues', NULL, 'BENDYCON', 1, 'MINIONDEVCON', N'MalMRIssues', 'CONNECTED', 'NONE', 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, 60, NULL, NULL, NULL, N'2017-01-31T15:09:48.14', N'2017-01-31T15:09:51.477', 3, 1, NULL, N'DBCC CHECKDB(''MalMRIssues'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:16:40.743', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete (26 CHECKDB errors found)', 100, N'DemoNCIndex', N'DemoNCIndex', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:09:51.563', N'2017-01-31T15:09:54.557', 3, 0, NULL, N'DBCC CHECKDB(''DemoNCIndex'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 26, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2016-06-17T01:32:16.88', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'DIYPerfReporting', N'DIYPerfReporting', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:09:54.64', N'2017-01-31T15:09:55.987', 1, 0, NULL, N'DBCC CHECKDB(''DIYPerfReporting'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T15:04:31.12', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'JenDemo', N'JenDemo', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:09:56.09', N'2017-01-31T15:09:56.453', 0, 0, NULL, N'DBCC CHECKDB(''JenDemo'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T15:04:32.213', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'Latin1_General_BIN', N'Latin1_General_BIN', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:09:56.54', N'2017-01-31T15:09:56.897', 0, 0, NULL, N'DBCC CHECKDB(''Latin1_General_BIN'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T15:04:32.693', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MalMRIssues', N'MalMRIssues', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1515.52, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:09:57.173', N'2017-01-31T15:10:10.943', 13, 0, NULL, N'DBCC CHECKDB(''MalMRIssues'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T15:04:33.33', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MB11', N'MB11', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:10:11.1', N'2017-01-31T15:10:11.457', 0, 0, NULL, N'DBCC CHECKDB(''MB11'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T15:04:48.323', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MB12', N'MB12', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:10:11.55', N'2017-01-31T15:10:11.96', 0, 0, NULL, N'DBCC CHECKDB(''MB12'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T15:04:48.797', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MB12Issues', N'MB12Issues', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:10:12.047', N'2017-01-31T15:10:12.43', 0, 0, NULL, N'DBCC CHECKDB(''MB12Issues'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T15:04:49.3', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MB13Test', N'MB13Test', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:10:12.523', N'2017-01-31T15:10:12.92', 0, 0, NULL, N'DBCC CHECKDB(''MB13Test'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T15:04:49.787', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MB2005', N'MB2005', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:10:13.183', N'2017-01-31T15:10:13.603', 0, 0, NULL, N'DBCC CHECKDB(''MB2005'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:18:56.567', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MBDemo', N'MBDemo', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:10:13.743', N'2017-01-31T15:10:14.23', 1, 0, NULL, N'DBCC CHECKDB(''MBDemo'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:16:03.19', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MBInstall', N'MBInstall', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:10:14.34', N'2017-01-31T15:10:14.723', 0, 0, NULL, N'DBCC CHECKDB(''MBInstall'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:17:09.83', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'Minion', N'Minion', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 18001.92, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:10:14.83', N'2017-01-31T15:12:07.153', 113, 0, NULL, N'DBCC CHECKDB(''Minion'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T13:56:35.757', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'Minion20150131', N'Minion20150131', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:07.293', N'2017-01-31T15:12:07.713', 0, 0, NULL, N'DBCC CHECKDB(''Minion20150131'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:17:13.607', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'Minion2015-01-31', N'Minion2015-01-31', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:07.84', N'2017-01-31T15:12:08.233', 1, 0, NULL, N'DBCC CHECKDB(''Minion2015-01-31'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:17:12.11', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MinionDev', N'MinionDev', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4075.52, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:08.377', N'2017-01-31T15:12:09.16', 1, 0, NULL, N'DBCC CHECKDB(''MinionDev'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:15:57.613', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MinionDevHELP', N'MinionDevHELP', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:09.29', N'2017-01-31T15:12:09.727', 0, 0, NULL, N'DBCC CHECKDB(''MinionDevHELP'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:19:02.197', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MinionInstall', N'MinionInstall', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:09.853', N'2017-01-31T15:12:10.247', 1, 0, NULL, N'DBCC CHECKDB(''MinionInstall'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:17:14.82', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MinionInstallTest', N'MinionInstallTest', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:10.39', N'2017-01-31T15:12:10.907', 0, 0, NULL, N'DBCC CHECKDB(''MinionInstallTest'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:17:16.07', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MinionRestore', N'MinionRestore', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6000.64, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:11.047', N'2017-01-31T15:12:42.5', 31, 0, NULL, N'DBCC CHECKDB(''MinionRestore'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-30T16:37:50.2', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MR12', N'MR12', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:42.653', N'2017-01-31T15:12:43.15', 1, 0, NULL, N'DBCC CHECKDB(''MR12'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:17:25.213', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MR13Test', N'MR13Test', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:43.277', N'2017-01-31T15:12:43.843', 0, 0, NULL, N'DBCC CHECKDB(''MR13Test'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:17:27.56', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MRDemo', N'MRDemo', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:43.977', N'2017-01-31T15:12:44.687', 1, 0, NULL, N'DBCC CHECKDB(''MRDemo'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:17:29.197', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MRIssueRepro', N'MRIssueRepro', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:44.82', N'2017-01-31T15:12:45.837', 1, 0, NULL, N'DBCC CHECKDB(''MRIssueRepro'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:18:01.66', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MRNow', N'MRNow', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:45.96', N'2017-01-31T15:12:49.267', 4, 0, NULL, N'DBCC CHECKDB(''MRNow'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:16:14.343', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'MRUpgradeTest', N'MRUpgradeTest', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:49.43', N'2017-01-31T15:12:49.973', 0, 0, NULL, N'DBCC CHECKDB(''MRUpgradeTest'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:17:30.417', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'My DB Space', N'My DB Space', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:50.083', N'2017-01-31T15:12:50.453', 0, 0, NULL, N'DBCC CHECKDB(''My DB Space'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:17:39.93', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'PRECONDataWaiterPartner', N'PRECONDataWaiterPartner', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:50.577', N'2017-01-31T15:12:50.957', 0, 0, NULL, N'DBCC CHECKDB(''PRECONDataWaiterPartner'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:17:41.33', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'PRECONDBMaint', N'PRECONDBMaint', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:51.077', N'2017-01-31T15:12:52.603', 1, 0, NULL, N'DBCC CHECKDB(''PRECONDBMaint'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:17:42.643', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'ReportServer', N'ReportServer', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:52.747', N'2017-01-31T15:12:53.343', 1, 0, NULL, N'DBCC CHECKDB(''ReportServer'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:15:52.39', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'ReportServerOLD', N'ReportServerOLD', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:53.573', N'2017-01-31T15:12:54.07', 1, 0, NULL, N'DBCC CHECKDB(''ReportServerOLD'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:19:20.55', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'ReportServerOLDTempDB', N'ReportServerOLDTempDB', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:54.183', N'2017-01-31T15:12:54.593', 0, 0, NULL, N'DBCC CHECKDB(''ReportServerOLDTempDB'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:19:29.16', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'ReportServerTempDB', N'ReportServerTempDB', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:54.7', N'2017-01-31T15:12:55.1', 1, 0, NULL, N'DBCC CHECKDB(''ReportServerTempDB'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:15:53.897', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'ScriptingPrecon', N'ScriptingPrecon', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:55.21', N'2017-01-31T15:12:55.597', 0, 0, NULL, N'DBCC CHECKDB(''ScriptingPrecon'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:17:57.257', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'SnapShotTestMultiFiles', N'SnapShotTestMultiFiles', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:55.71', N'2017-01-31T15:12:56.22', 1, 0, NULL, N'DBCC CHECKDB(''SnapShotTestMultiFiles'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:16:09.557', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'Speak', N'Speak', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1228.8, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:56.333', N'2017-01-31T15:12:58.177', 2, 0, NULL, N'DBCC CHECKDB(''Speak'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:17:58.39', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'TDEBackupTest', N'TDEBackupTest', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:58.31', N'2017-01-31T15:12:58.763', 0, 0, NULL, N'DBCC CHECKDB(''TDEBackupTest'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:19:03.843', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'aaa', N'aaa', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:58.853', N'2017-01-31T15:12:59.437', 1, 0, NULL, N'DBCC CHECKDB(''aaa'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T15:05:11.32', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'AdvancedScripting', N'AdvancedScripting', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:12:59.55', N'2017-01-31T15:13:00.103', 1, 0, NULL, N'DBCC CHECKDB(''AdvancedScripting'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T15:05:11.847', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'AdventureWorks', N'AdventureWorks', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1546.24, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:13:00.197', N'2017-01-31T15:13:08.807', 8, 0, NULL, N'DBCC CHECKDB(''AdventureWorks'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2016-11-01T15:33:51.937', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'BIT', N'BIT', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:13:08.907', N'2017-01-31T15:13:09.063', 1, 0, NULL, N'DBCC CHECKDB(''BIT'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2016-11-01T15:34:04.75', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'BIT12', N'BIT12', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:13:09.163', N'2017-01-31T15:13:09.553', 0, 0, NULL, N'DBCC CHECKDB(''BIT12'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T15:05:20.04', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'BIT2', N'BIT2', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:13:09.65', N'2017-01-31T15:13:11.497', 2, 0, NULL, N'DBCC CHECKDB(''BIT2'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T15:05:20.74', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'BITFinal', N'BITFinal', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:13:11.59', N'2017-01-31T15:13:11.963', 0, 0, NULL, N'DBCC CHECKDB(''BITFinal'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T15:05:22.633', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'CDC', N'CDC', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:13:12.057', N'2017-01-31T15:13:12.46', 0, 0, NULL, N'DBCC CHECKDB(''CDC'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T15:05:23.107', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'CheckDBTest', N'CheckDBTest', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:13:12.55', N'2017-01-31T15:13:13.207', 1, 0, NULL, N'DBCC CHECKDB(''CheckDBTest'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T15:05:23.743', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete (4 CHECKDB errors found)', 100, N'CorruptDataPage1', N'CorruptDataPage1', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:13:13.313', N'2017-01-31T15:13:14.38', 1, 0, NULL, N'DBCC CHECKDB(''CorruptDataPage1'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete (4 CHECKDB errors found)', 100, N'CorruptLeafClustIndex', N'CorruptLeafClustIndex', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:13:14.497', N'2017-01-31T15:13:15.33', 1, 0, NULL, N'DBCC CHECKDB(''CorruptLeafClustIndex'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ), (N'2017-01-31T15:09:48.063', N'Complete', 100, N'DBStats', N'DBStats', NULL, 'BENDYCON', 0, NULL, NULL, NULL, NULL, 0, 0, 0, 'User', 'CHECKDB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1024, 1, NULL, NULL, NULL, NULL, N'2017-01-31T15:13:15.463', N'2017-01-31T15:13:16.66', 1, 0, NULL, N'DBCC CHECKDB(''DBStats'') WITH ALL_ERRORMSGS, TABLERESULTS; ', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, N'2017-01-31T14:19:06.85', N'N/A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, N'' ) ---------------END Add rows to get a baseline------------------- [Minion].[CheckDBMaster] @DBType = 'User', @OpName = 'CHECKDB', @StmtOnly = 0, @Schemas = NULL, @Tables = NULL, @Include = NULL, @Exclude = NULL , @NumConcurrentProcesses = 1; ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ --------------------------------Minion Backup 1.3----------------------------------------------- ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ [Minion].[BackupRestoreDB] @ServerName = 'MinionDevcon', @DBName = 'Demo', @BackupType = 'Full', @BackupLoc = 'Primary', @RestoreDBName = '%DBName%_%Date%', @StmtOnly = 0; SELECT * FROM Minion.BackupRestoreSettingsPath; DELETE Minion.BackupRestoreSettingsPath WHERE ID > 1 INSERT Minion.BackupRestoreSettingsPath(DBName, ServerName, RestoreType, FileType, TypeName, RestoreDrive, RestorePath, RestoreFileName, RestoreFileExtension, BackupLocation, RestoreDBName, ServerLabel, PathOrder, IsActive, Comment) VALUES ('Demo', 'localhost', 'Full', 'FileType', 'All', 'C:\', 'MinionDefault', 'MinionDefault', 'MinionDefault', 'Backup', '%DBName%', NULL, 0, 1, NULL ), ('Demo', 'MinionDevcon', 'Full', 'FileType', 'All', 'D:\', 'DBs\%Server%\%Instance%\', '%DBName%_From_%Server%', 'MinionDefault', 'Backup', '%DBName%', NULL, 0, 1, NULL ), ('Demo', 'AQualityServer', 'Full', 'FileType', 'mdf', 'D:\', 'DBs\%Server%\%Instance%\', '%DBName%_From_%Server%', 'MinionDefault', 'Backup', '%DBName%', NULL, 0, 1, NULL ), ('Demo', 'AQualityServer', 'Full', 'FileType', 'ldf', 'L:\', 'Logs\%Server%\%Instance%\', '%DBName%_From_%Server%', 'MinionDefault', 'Backup', '%DBName%', NULL, 0, 1, NULL ) SELECT * FROM Minion.BackupRestoreSettingsPath; INSERT [Minion].[BackupRestoreTuningThresholds](ServerName, DBName, RestoreType, SpaceType, ThresholdMeasure, ThresholdValue, Buffercount, MaxTransferSize, BlockSize, Replace, WithFlags, BeginTime, EndTime, DayOfWeek, IsActive, Comment) VALUES ('MinionDefault', N'MinionDefault', 'All', 'DataAndIndex', 'GB', 0, 200, 0, NULL, 1, NULL, NULL, NULL, NULL, 1, NULL ), ('MinionDevcon', N'Demo', 'Full', 'DataAndIndex', 'GB', 0, 50, 2097152, NULL, 1, NULL, NULL, NULL, NULL, 1, NULL ), ('MinionDevcon', N'Demo', 'Full', 'DataAndIndex', 'GB', 50, 200, 2097152, NULL, 1, NULL, NULL, NULL, NULL, 1, NULL ), ('MinionDevcon', N'Demo', 'Full', 'DataAndIndex', 'GB', 100, 400, 2097152, NULL, 1, NULL, NULL, NULL, NULL, 1, NULL ), ('MinionDevcon', N'Demo', 'Full', 'DataAndIndex', 'GB', 150, 600, 2097152, NULL, 1, NULL, NULL, NULL, NULL, 1, NULL ), ('MinionDevcon', N'Demo', 'Full', 'DataAndIndex', 'GB', 200, 1000, 2097152, NULL, 1, NULL, NULL, NULL, NULL, 1, NULL ), ('AQualityServer', N'Demo', 'Full', 'DataAndIndex', 'GB', 0, 100, 2097152, NULL, 1, NULL, NULL, NULL, NULL, 1, NULL ), ('localhost', N'MinionDev', 'Full', 'DataAndIndex', 'GB', 0, 350, 0, NULL, 1, NULL, NULL, NULL, NULL, 1, NULL ) SELECT * FROM [Minion].[BackupRestoreTuningThresholds] [Minion].[BackupRestoreDB] @ServerName = 'MinionDevcon', @DBName = 'Demo', @BackupType = 'Full', @BackupLoc = 'Primary', @RestoreDBName = '%DBName%_%Date%', @StmtOnly = 0; [Minion].[BackupRestoreDB] @ServerName = 'AQualityServer', @DBName = 'Demo', @BackupType = 'Full', @BackupLoc = 'Primary', @RestoreDBName = '%DBName%_%Date%', @StmtOnly = 0; --------------------------------------- ----------Backup Stmts----------------- --------------------------------------- [Minion].[BackupStmtGet] @DBName = 'Demo', @BackupType = 'Full', @DBSize = 5; TRUNCATE TABLE Minion.BackupSettingsPath; TRUNCATE TABLE Minion.BackupTuningThresholds INSERT Minion.BackupSettingsPath (DBName, IsMirror, BackupType, BackupLocType, BackupDrive, BackupPath, FileName, FileExtension, ServerLabel, RetHrs, FileActionMethod, FileActionMethodFlags, PathOrder, IsActive, AzureCredential, Comment) VALUES (N'MinionDefault', 0, 'All', 'Local', 'C:\', '%SoSL%\%DBName%\', '%Ordinal%of%NumFiles%%DBName%%BackupType%', '%BackupTypeExtension%', NULL, 168, NULL, NULL, 0, 1, NULL, 'Minion default. DO NOT REMOVE OR CHANGE.' ), (N'Demo', 0, 'All', 'Local', 'C:\', '%SoSL%\%DBName%\', '%Ordinal%of%NumFiles%%DBName%%BackupType%', '%BackupTypeExtension%', NULL, 168, NULL, NULL, 0, 1, NULL, 'Minion default. DO NOT REMOVE OR CHANGE.' ), (N'Demo', 0, 'All', 'Local', 'K:\', '%SoSL%\%DBName%\', '%Ordinal%of%NumFiles%%DBName%%BackupType%', '%BackupTypeExtension%', NULL, 168, NULL, NULL, 0, 1, NULL, 'Minion default. DO NOT REMOVE OR CHANGE.' ), (N'Demo', 0, 'All', 'Local', 'P:\', '%SoSL%\%DBName%\', '%Ordinal%of%NumFiles%%DBName%%BackupType%', '%BackupTypeExtension%', NULL, 168, NULL, NULL, 0, 1, NULL, 'Minion default. DO NOT REMOVE OR CHANGE.' ) INSERT Minion.BackupTuningThresholds (DBName, BackupType, SpaceType, ThresholdMeasure, ThresholdValue, NumberOfFiles, Buffercount, MaxTransferSize, Compression, BlockSize, BeginTime, EndTime, DayOfWeek, IsActive, Comment) VALUES (N'MinionDefault', 'All', 'DataAndIndex', 'GB', 0, 1, 0, 0, NULL, 0, NULL, NULL, NULL, 1, 'Minion default. DO NOT REMOVE OR CHANGE.' ), (N'MinionDefault', 'All', 'DataAndIndex', 'GB', 50, 3, 500, 0, 1, 0, NULL, NULL, NULL, 1, 'Minion default. DO NOT REMOVE OR CHANGE.' ) SELECT * FROM Minion.BackupSettingsPath; SELECT * FROM Minion.BackupTuningThresholds; ----Move Ordinal to end of filename. TRUNCATE TABLE Minion.BackupSettingsPath; INSERT Minion.BackupSettingsPath (DBName, IsMirror, BackupType, BackupLocType, BackupDrive, BackupPath, FileName, FileExtension, ServerLabel, RetHrs, FileActionMethod, FileActionMethodFlags, PathOrder, IsActive, AzureCredential, Comment) VALUES (N'MinionDefault', 0, 'All', 'Local', 'C:\', '%SoSL%\%DBName%\', '%DBName%%BackupType%_%Ordinal%of%NumFiles%', '%BackupTypeExtension%', NULL, 168, NULL, NULL, 0, 1, NULL, 'Minion default. DO NOT REMOVE OR CHANGE.' ), (N'Demo', 0, 'All', 'Local', 'C:\', '%SoSL%\%DBName%\', '%DBName%%BackupType%_%Ordinal%of%NumFiles%', '%BackupTypeExtension%', NULL, 168, NULL, NULL, 0, 1, NULL, 'Minion default. DO NOT REMOVE OR CHANGE.' ), (N'Demo', 0, 'All', 'Local', 'K:\', '%SoSL%\%DBName%\', '%DBName%%BackupType%_%Ordinal%of%NumFiles%', '%BackupTypeExtension%', NULL, 168, NULL, NULL, 0, 1, NULL, 'Minion default. DO NOT REMOVE OR CHANGE.' ), (N'Demo', 0, 'All', 'Local', 'P:\', '%SoSL%\%DBName%\', '%DBName%%BackupType%_%Ordinal%of%NumFiles%', '%BackupTypeExtension%', NULL, 168, NULL, NULL, 0, 1, NULL, 'Minion default. DO NOT REMOVE OR CHANGE.' ) SELECT * FROM Minion.BackupSettingsPath; [Minion].[BackupStmtGet] @DBName = 'Demo', @BackupType = 'Full', @DBSize = 500; ----And when you combine this with pre/post code, the solutions are limitless. You can create dated archives with special filenames, ----you can specify the server in the filename if you want to know which node it was taken from. SELECT * FROM [Minion].[DBMaintInlineTokens] ----Add netbios to filename, and include servername as well. INSERT [Minion].[DBMaintInlineTokens](DynamicName, ParseMethod, IsCustom, Definition, IsActive, Comment) VALUES ('NETBIOSName', 'LEFT(ISNULL(CAST(SERVERPROPERTY(''ComputerNamePhysicalNetBIOS'') AS VARCHAR(25)), ''''), 3) + ''Node1''', 1, 'Netbios name of the current server.', 1, NULL ) TRUNCATE TABLE Minion.BackupSettingsPath; INSERT Minion.BackupSettingsPath (DBName, IsMirror, BackupType, BackupLocType, BackupDrive, BackupPath, FileName, FileExtension, ServerLabel, RetHrs, FileActionMethod, FileActionMethodFlags, PathOrder, IsActive, AzureCredential, Comment) VALUES (N'MinionDefault', 0, 'All', 'Local', 'C:\', '%SoSL%\%DBName%\', '%Server%_|NETBIOSName|_%DBName%%BackupType%_%Ordinal%of%NumFiles%', '%BackupTypeExtension%', NULL, 168, NULL, NULL, 0, 1, NULL, 'Minion default. DO NOT REMOVE OR CHANGE.' ), (N'Demo', 0, 'All', 'Local', 'C:\', '%SoSL%\%DBName%\', '%Server%_|NETBIOSName|_%DBName%%BackupType%_%Ordinal%of%NumFiles%', '%BackupTypeExtension%', NULL, 168, NULL, NULL, 0, 1, NULL, 'Minion default. DO NOT REMOVE OR CHANGE.' ), (N'Demo', 0, 'All', 'Local', 'K:\', '%SoSL%\%DBName%\', '%Server%_|NETBIOSName|_%DBName%%BackupType%_%Ordinal%of%NumFiles%', '%BackupTypeExtension%', NULL, 168, NULL, NULL, 0, 1, NULL, 'Minion default. DO NOT REMOVE OR CHANGE.' ), (N'Demo', 0, 'All', 'Local', 'P:\', '%SoSL%\%DBName%\', '%Server%_|NETBIOSName|_%DBName%%BackupType%_%Ordinal%of%NumFiles%', '%BackupTypeExtension%', NULL, 168, NULL, NULL, 0, 1, NULL, 'Minion default. DO NOT REMOVE OR CHANGE.' ) SELECT * FROM Minion.BackupSettingsPath; [Minion].[BackupStmtGet] @DBName = 'Demo', @BackupType = 'Full', @DBSize = 500;