日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

SQL Server數(shù)據(jù)庫判斷最近一次的備份執(zhí)行結果(最新推薦)

瀏覽:37日期:2023-05-02 10:03:12
目錄
  • 1 麻煩的地方
  • 2 獲取errorlog的trace表
  • 3 結合備份表backupset,判斷備份狀態(tài)篩選出所有數(shù)據(jù)庫的備份任務執(zhí)行情況
  • 4 形成用于告警的SQL語句

1 麻煩的地方

在SQL Server的官方文檔里面可以看到備份和還原的表,但是這些表里面只能找到備份成功的相關信息,無法找到備份失敗的記錄,比如msdb.dbo.backupset。對于一些監(jiān)控系統(tǒng)未監(jiān)控作業(yè)的情況下,想要監(jiān)控數(shù)據(jù)庫備份任務執(zhí)行失敗而觸發(fā)告警規(guī)則,有些麻煩。
但是SQL server內(nèi)部是可以通過查詢errorlog來判斷數(shù)據(jù)庫備份作業(yè)是否成功:

2 獲取errorlog的trace表

我們可以借助sys.traces定位到errorlog的trace文件路徑,然后通過再通過fn_trace_gettable將errlog的trace文件轉(zhuǎn)換為普通的表來查詢即可。

定位errorlog的trace文件物理路徑

SELECT  REVERSE(    SUBSTRING(      REVERSE([path]),      CHARINDEX(CHAR(92), REVERSE([path])),      260    )  ) + N"log.trc"FROM  sys.tracesWHERE  is_default = 1

輸出結果:

2. 得到路徑后,使用fn_trace_gettable將errolog的trace文件轉(zhuǎn)換為普通的數(shù)據(jù)表

SELECT  *FROM  sys.fn_trace_gettable(    "S:\MSSQL13.MSSQLSERVER\MSSQL\Log\log.trc",    default  )

3. 查找與備份相關的事件記錄,在trace文件中對應的EventClass為115,并將所有備份開頭的語句篩選出來

SELECT  TextData,Databasename,StartTimeFROM  sys.fn_trace_gettable(    "S:\MSSQL13.MSSQLSERVER\MSSQL\Log\log.trc",    default  )WHERE  EventClass = 115  AND UPPER(CONVERT(nvarchar(max), TextData)) LIKE "BACKUP%"

從返回的TextData中沒有找到是否關于備份成功或者失敗的說明,也沒有在其它列中找到相關描述,需要結合msdb.dbo.backupset來判斷。

3 結合備份表backupset,判斷備份狀態(tài)篩選出所有數(shù)據(jù)庫的備份任務執(zhí)行情況

從查詢的結果可知,每個成功的備份都有1個開始時間和結束時間,考慮將開始時間與trace文件轉(zhuǎn)換的表進行對比: flowchart LR A[trace表的獲取備份記錄和時間]--> B[取得StartTime列]B[與backupset表對比判斷]--> C{是否存在與StartTime列對應的值}C--存在-->D[備份成功]C--不存在-->E[備份失敗]

形成了具體的思路后,下面將trace轉(zhuǎn)換的表的StartTime列與backupset表的backup_start_date列進行對比判斷
2. 判斷存在對應的值則說明備份成功,不存在則備份失敗

SELECT  dt.DatabaseName,  dt.StartTime,  bs.backup_start_date,  bs.backup_finish_date,  [Status] = CASE    WHEN bs.backup_start_date IS NULL THEN (dt.DatabaseName) + "數(shù)據(jù)庫備份失敗"    ELSE (dt.DatabaseName) + "數(shù)據(jù)庫備份成功"  ENDFROM  sys.fn_trace_gettable(    "S:\MSSQL13.MSSQLSERVER\MSSQL\Log\log.trc",    default  ) AS dt  LEFT OUTER JOIN msdb.dbo.backupset AS bs ON dt.DatabaseName = bs.database_name  AND ABS(    DATEDIFF(SECOND, dt.StartTime, bs.backup_start_date)  ) < 5WHERE  dt.EventClass = 115  AND UPPER(CONVERT(nvarchar(max), dt.TextData)) LIKE N"BACKUP%"ORDER BY  dt.StartTime DESC;

4 形成用于告警的SQL語句

完成上面的操作之后,我們已經(jīng)能夠看到所有數(shù)據(jù)庫的備份是成功還是失敗的狀態(tài),現(xiàn)在還需要將SQL再度細化,輸出所有數(shù)據(jù)庫最近一次備份執(zhí)行成功或者失敗的信息:即每個數(shù)據(jù)庫只有一行記錄用于說明最近一次的備份狀態(tài)。
下面有兩種寫法可以實現(xiàn),第1種是游標的寫法,性能極差,后來找chatgpt一起討論之后,采用了group by優(yōu)化,形成第2種寫法。

第1種,游標查看每個數(shù)據(jù)庫最近一次備份狀態(tài)

DBCC FREEDECLARE @databaseName1 nvarchar(100)DECLARE @sql nvarchar(4000)DECLARE db_cursor CURSOR FOR    SELECT name    FROM sys.databasesOPEN db_cursorFETCH NEXT FROM db_cursor INTO @databaseName1WHILE @@FETCH_STATUS = 0  BEGIN      SET @sql = "	SELECT  TOP 1 dt.DatabaseName,  dt.StartTime,  bs.backup_start_date,  bs.backup_finish_date,  [Status] = CASE    WHEN bs.backup_start_date IS NULL THEN (dt.DatabaseName) + ""數(shù)據(jù)庫備份失敗""    ELSE (dt.DatabaseName) + ""數(shù)據(jù)庫備份成功""  ENDFROM  sys.fn_trace_gettable(    (      SELECTREVERSE(  SUBSTRING(    REVERSE([path]),    CHARINDEX(CHAR(92), REVERSE([path])),    260  )) + N""log.trc""      FROMsys.traces      WHEREis_default = 1    ),    default  ) AS dt  LEFT OUTER JOIN msdb.dbo.backupset AS bs ON dt.DatabaseName = bs.database_name  AND ABS(    DATEDIFF(SECOND, dt.StartTime, bs.backup_start_date)  ) < 5WHERE  dt.EventClass = 115  AND UPPER(CONVERT(nvarchar(max), dt.TextData)) LIKE N""BACKUP%""  AND dt.DatabaseName=""" + @databaseName1 +""" ORDER BY dt.StartTime DESC"    EXEC sp_executesql @sql    FETCH NEXT FROM db_cursor INTO @databaseName1END CLOSE db_cursorDEALLOCATE db_cursor

可以看到性能極差,查詢3條數(shù)據(jù)耗時24秒,每次游標都要到消耗臨時表和進行大量的邏輯讀取。

 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。表 "Worktable"。掃描計數(shù) 0,邏輯讀取 14 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysobjvalues"。掃描計數(shù) 14,邏輯讀取 36 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "syspalvalues"。掃描計數(shù) 0,邏輯讀取 98 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysguidrefs"。掃描計數(shù) 2,邏輯讀取 30 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysclsobjs"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "syssingleobjrefs"。掃描計數(shù) 7,邏輯讀取 42 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysdbreg"。掃描計數(shù) 1,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。(1 行受影響) SQL Server 執(zhí)行時間:   CPU 時間 = 31 毫秒,占用時間 = 27 毫秒。表 "Worktable"。掃描計數(shù) 0,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysobjvalues"。掃描計數(shù) 2,邏輯讀取 6 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "syspalvalues"。掃描計數(shù) 0,邏輯讀取 14 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysguidrefs"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysclsobjs"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "syssingleobjrefs"。掃描計數(shù) 1,邏輯讀取 6 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysdbreg"。掃描計數(shù) 0,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。(1 行受影響) SQL Server 執(zhí)行時間:   CPU 時間 = 16 毫秒,占用時間 = 23 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。SQL Server 分析和編譯時間:    CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。(1 行受影響)表 "backupset"。掃描計數(shù) 1,邏輯讀取 3 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "Worktable"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。(1 行受影響) SQL Server 執(zhí)行時間:   CPU 時間 = 468 毫秒,占用時間 = 678 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 468 毫秒,占用時間 = 678 毫秒。表 "Worktable"。掃描計數(shù) 0,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysobjvalues"。掃描計數(shù) 2,邏輯讀取 6 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "syspalvalues"。掃描計數(shù) 0,邏輯讀取 14 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysguidrefs"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysclsobjs"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "syssingleobjrefs"。掃描計數(shù) 1,邏輯讀取 6 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysdbreg"。掃描計數(shù) 0,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。(1 行受影響) SQL Server 執(zhí)行時間:   CPU 時間 = 16 毫秒,占用時間 = 23 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。SQL Server 分析和編譯時間:    CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。(0 行受影響)表 "Worktable"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。(1 行受影響) SQL Server 執(zhí)行時間:   CPU 時間 = 406 毫秒,占用時間 = 732 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 406 毫秒,占用時間 = 732 毫秒。表 "Worktable"。掃描計數(shù) 0,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysobjvalues"。掃描計數(shù) 2,邏輯讀取 6 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "syspalvalues"。掃描計數(shù) 0,邏輯讀取 14 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysguidrefs"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysclsobjs"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "syssingleobjrefs"。掃描計數(shù) 1,邏輯讀取 6 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysdbreg"。掃描計數(shù) 0,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。(1 行受影響) SQL Server 執(zhí)行時間:   CPU 時間 = 16 毫秒,占用時間 = 21 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。SQL Server 分析和編譯時間:    CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。(0 行受影響)表 "Worktable"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。(1 行受影響) SQL Server 執(zhí)行時間:   CPU 時間 = 422 毫秒,占用時間 = 659 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 422 毫秒,占用時間 = 660 毫秒。表 "Worktable"。掃描計數(shù) 0,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysobjvalues"。掃描計數(shù) 2,邏輯讀取 6 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "syspalvalues"。掃描計數(shù) 0,邏輯讀取 14 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysguidrefs"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysclsobjs"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "syssingleobjrefs"。掃描計數(shù) 1,邏輯讀取 6 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysdbreg"。掃描計數(shù) 0,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。(1 行受影響) SQL Server 執(zhí)行時間:   CPU 時間 = 15 毫秒,占用時間 = 616 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。SQL Server 分析和編譯時間:    CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。(0 行受影響)表 "Worktable"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。(1 行受影響) SQL Server 執(zhí)行時間:   CPU 時間 = 375 毫秒,占用時間 = 678 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 375 毫秒,占用時間 = 678 毫秒。表 "Worktable"。掃描計數(shù) 0,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysobjvalues"。掃描計數(shù) 2,邏輯讀取 6 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "syspalvalues"。掃描計數(shù) 0,邏輯讀取 14 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysguidrefs"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysclsobjs"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "syssingleobjrefs"。掃描計數(shù) 1,邏輯讀取 6 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysdbreg"。掃描計數(shù) 0,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。(1 行受影響) SQL Server 執(zhí)行時間:   CPU 時間 = 16 毫秒,占用時間 = 1286 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。SQL Server 分析和編譯時間:    CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。(1 行受影響)表 "backupset"。掃描計數(shù) 1,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "Worktable"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。(1 行受影響) SQL Server 執(zhí)行時間:   CPU 時間 = 375 毫秒,占用時間 = 781 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 375 毫秒,占用時間 = 781 毫秒。表 "Worktable"。掃描計數(shù) 0,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysobjvalues"。掃描計數(shù) 2,邏輯讀取 6 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "syspalvalues"。掃描計數(shù) 0,邏輯讀取 14 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysguidrefs"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysclsobjs"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "syssingleobjrefs"。掃描計數(shù) 1,邏輯讀取 6 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysdbreg"。掃描計數(shù) 0,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。(1 行受影響) SQL Server 執(zhí)行時間:   CPU 時間 = 31 毫秒,占用時間 = 1608 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。SQL Server 分析和編譯時間:    CPU 時間 = 13 毫秒,占用時間 = 13 毫秒。(1 行受影響)表 "backupset"。掃描計數(shù) 1,邏輯讀取 3 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "Worktable"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。(1 行受影響) SQL Server 執(zhí)行時間:   CPU 時間 = 390 毫秒,占用時間 = 737 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 406 毫秒,占用時間 = 751 毫秒。表 "Worktable"。掃描計數(shù) 0,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysobjvalues"。掃描計數(shù) 2,邏輯讀取 6 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "syspalvalues"。掃描計數(shù) 0,邏輯讀取 14 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysguidrefs"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysclsobjs"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "syssingleobjrefs"。掃描計數(shù) 1,邏輯讀取 6 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "sysdbreg"。掃描計數(shù) 0,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。(1 行受影響) SQL Server 執(zhí)行時間:   CPU 時間 = 16 毫秒,占用時間 = 20 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。SQL Server 分析和編譯時間:    CPU 時間 = 12 毫秒,占用時間 = 12 毫秒。(0 行受影響)表 "Worktable"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。(1 行受影響) SQL Server 執(zhí)行時間:   CPU 時間 = 468 毫秒,占用時間 = 2492 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 484 毫秒,占用時間 = 2505 毫秒。表 "Worktable"。掃描計數(shù) 0,邏輯讀取 2 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "Worktable"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "Worktable"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。(1 行受影響) SQL Server 執(zhí)行時間:   CPU 時間 = 16 毫秒,占用時間 = 23 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。SQL Server 分析和編譯時間:    CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。

第2種,使用MAX函數(shù)和group by優(yōu)化

SELECT    [Status] = MAX(CASE      WHEN bs.backup_start_date IS NULL THEN dt.DatabaseName+"數(shù)據(jù)庫備份失敗"      ELSE dt.DatabaseName+"數(shù)據(jù)庫備份成功"    END)  FROM    sys.fn_trace_gettable(      (SELECT  REVERSE(    SUBSTRING(      REVERSE([path]),      CHARINDEX(CHAR(92), REVERSE([path])),      260    )  ) + N"log.trc"FROM  sys.tracesWHERE  is_default = 1      ),      default    ) AS dt    LEFT OUTER JOIN msdb.dbo.backupset AS bs ON dt.DatabaseName = bs.database_name      AND ABS(DATEDIFF(SECOND, dt.StartTime, bs.backup_start_date)) < 5  WHERE    dt.EventClass = 115    AND UPPER(CONVERT(nvarchar(max), dt.TextData)) LIKE "BACKUP%"  GROUP BY    dt.DatabaseName

這次執(zhí)行只要1秒鐘,占用的資源也極低。

SQL Server 分析和編譯時間:    CPU 時間 = 15 毫秒,占用時間 = 20 毫秒。(3 行受影響)表 "Worktable"。掃描計數(shù) 0,邏輯讀取 0 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。表 "backupset"。掃描計數(shù) 1,邏輯讀取 48 次,物理讀取 0 次,預讀 0 次,lob 邏輯讀取 0 次,lob 物理讀取 0 次,lob 預讀 0 次。 SQL Server 執(zhí)行時間:   CPU 時間 = 469 毫秒,占用時間 = 935 毫秒。SQL Server 分析和編譯時間:    CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。 SQL Server 執(zhí)行時間:   CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。

截止到此,基本大功告成了。接下來要實現(xiàn)的就是監(jiān)控系統(tǒng)怎么取得指標和觸發(fā)告警,具體可以根據(jù)不同的監(jiān)控平臺進行配置。
實際上還可以通過xp_readerrorlog來讀取errlog更加快速得篩選出備份失敗的記錄,但本次沒有再測試,有興趣的朋友可以自行參考測試。

到此這篇關于SQL Server數(shù)據(jù)庫判斷最近一次的備份執(zhí)行結果的文章就介紹到這了,更多相關SQL Server最近一次的備份執(zhí)行結果內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持!

標簽: MsSQL
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久久国产精品网站| 国产精品亚洲一区二区三区在线观看| 国产欧美精品| 天堂精品久久久久| 午夜宅男久久久| 中文字幕日韩亚洲| 亚洲欧洲免费| 日韩av中文在线观看| 91亚洲无吗| 久久超级碰碰| 国产精品亚洲产品| 国产一区二区精品福利地址| 成人精品高清在线视频| 999久久久免费精品国产| 久久亚洲精精品中文字幕| 久久在线91| 国产理论在线| 亚洲精品电影| 亚洲资源网站| 精品99久久| 伊人精品视频| 国产精品毛片久久久| 久久香蕉网站| 欧美日韩日本国产亚洲在线| 亚洲精品伦理| 日韩一区电影| 亚洲综合婷婷| 特黄毛片在线观看| 午夜亚洲福利| 精品国产乱码久久久久久1区2匹| 韩国久久久久久| 亚洲一区二区av| 福利欧美精品在线| 亚洲天堂免费| 日韩欧美精品| 日韩高清电影免费| 色综合www| 国产亚洲电影| 丝袜脚交一区二区| 免费福利视频一区二区三区| 中文字幕成人| 免费污视频在线一区| 欧美日本三区| 免费久久99精品国产自在现线| 国产九九精品| 亚洲一区二区免费看| 国产成人精品亚洲日本在线观看| 日韩av网站在线观看| 亚洲欧美日韩视频二区| 国产精品久久久久av电视剧| 国产精品qvod| 日韩国产欧美在线播放| 亚洲综合日本| 亚洲神马久久| 鲁大师成人一区二区三区 | 午夜欧美精品| 国产成人免费av一区二区午夜| 久久国产精品色av免费看| 免费观看不卡av| 日韩中文视频| caoporn视频在线| 国产精品国产一区| 红杏一区二区三区| 国产精品久久久久久妇女| 日本成人在线网站| 亚洲一二三区视频| 国产美女精品| 蜜桃av一区| 视频一区日韩精品| 日韩国产一区二| 青草综合视频| 国产欧美日韩亚洲一区二区三区| 欧美日韩一视频区二区| 鲁大师成人一区二区三区| 伊人精品视频| 日韩综合小视频| 欧美偷窥清纯综合图区| 欧美综合社区国产| 欧美日韩亚洲一区三区| 欧美国产中文高清| 国产一区二区三区四区二区| 欧美激情亚洲| 丝袜av一区| 亚洲在线成人| 久久国产视频网| 国产精品va视频| 欧美片第1页| 日本欧美不卡| 激情综合网五月| 蜜桃视频第一区免费观看| 日韩精品午夜视频| 国产欧美一区二区三区国产幕精品 | 欧美日韩亚洲一区在线观看| 国产精品tv| 欧美性感美女一区二区| 三级欧美韩日大片在线看| 天堂成人免费av电影一区| 日韩一二三区在线观看| 老牛国内精品亚洲成av人片| 久久国产亚洲| 亚洲精品动态| 久久久久久夜| 久久国产成人| 精品国产精品久久一区免费式| 久久理论电影| 国产伦精品一区二区三区在线播放| 国产不卡一区| 日欧美一区二区| 久久久久.com| 国产伦精品一区二区三区视频 | 日韩av有码| 中文字幕av一区二区三区人| 久久精品国产99国产| 亚洲视频播放| 欧美日韩国产v| 亚洲精品看片| 午夜日本精品| 在线看片福利| 欧美黑人巨大videos精品| 日韩在线卡一卡二| 欧美日韩精品免费观看视欧美高清免费大片 | 国产在线不卡一区二区三区| 鲁大师影院一区二区三区| 国产一区二区三区四区五区 | 亚洲国产不卡| 日韩天堂在线| 久久麻豆视频| 欧美一区久久| 婷婷成人av| 亚洲少妇自拍| 亚洲成人日韩| 国产一区日韩| 日韩精品一区二区三区中文在线| 日韩在线视频精品| 精品美女在线视频| 国产探花一区在线观看| 蜜臀久久久久久久| 国产亚洲毛片在线| 亚洲国产日韩欧美在线| 亚洲国产专区校园欧美| 麻豆视频在线看| 欧美激情一区| 麻豆国产精品一区二区三区| 国产精品66| 欧美极品一区二区三区| 国产精品va视频| 欧美视频久久| 欧美日韩在线精品一区二区三区激情综合 | 免费在线观看一区| 欧美黑人做爰爽爽爽| 国产美女亚洲精品7777| 国产精品欧美在线观看| 一区二区精品伦理...| 久久久久欧美精品| 欧美午夜不卡| 男女男精品视频网| 日韩精品一区二区三区免费视频| 亚洲精品少妇| 亚洲精品黄色| 久久不见久久见中文字幕免费 | 乱人伦精品视频在线观看| 日韩欧美精品一区二区综合视频| 麻豆精品久久| 一区在线免费观看| 色综合五月天| 久久av电影| 国产精品115| 亚洲精选久久| 久久精品动漫| 99久久夜色精品国产亚洲狼| 精品在线网站观看| 免费在线观看视频一区| 亚洲大片在线| 青草久久视频| 91亚洲精品在看在线观看高清| 免费成人在线影院| 午夜视频一区二区在线观看| 色爱av综合网| 综合日韩av| 成人啊v在线| 日韩激情一区二区| 日韩不卡视频在线观看| 国产伦理一区| 97成人在线| 日韩高清不卡一区二区| 久久国产人妖系列| 日韩成人av影视| 国产精品视频一区视频二区| 欧美日一区二区三区在线观看国产免 | 日韩精品久久久久久久电影99爱| 自由日本语亚洲人高潮| 欧美日韩亚洲一区在线观看| 99精品视频精品精品视频| 日本午夜精品久久久久| 亚洲精品乱码日韩| 成人av动漫在线观看| 激情久久99| 综合激情在线| 最近国产精品视频| 久久成人精品|