自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

系統(tǒng)庫-SQL Server MSDB探究

數據庫 SQL Server
在本文中,我們論述了 Msdb 數據庫的一些重要特性。我們看到備份恢復相關信息以及 SQL Server 代理作業(yè)、維護計劃和日志傳送相關信息都存儲在 msdb 中。

概述

MSDB 數據庫是 4 個可見系統(tǒng)數據庫之一,另外3個分別是master、model 和 TempDB 。MSDB目的是跟蹤一系列常見 DBA 活動歷史記錄,如備份和恢復。它還包含 SQL Server 代理的所有數據,包括作業(yè)、步驟、運算符、警報和執(zhí)行歷史記錄。有時 MSDB 用于存儲 SSIS 包,盡管它更常見地存儲在實例上的 SSIS 目錄數據庫中。下面探討一下MSDB一些特性

MSDB特性

1、備份和恢復歷史存儲在 msdb 中

msdb 包含備份還原歷史記錄。因此,我們可以通過查詢相應的表來獲得幾乎所有關于已執(zhí)行備份的信息。在 SSMS 中,我們可以在msdb > Tables > System Tables下找到這些表:

例如,backupset表包含有關每個備份集的信息。如果我們沒有對實例執(zhí)行任何備份,則此表將為空:

SELECT *  FROM [msdb].[dbo].[backupset]

如我們所見,備份集表中沒有行:

現在,讓我們進行備份,看看相關信息是如何存儲在表中的。為此,我們右鍵單擊 SSMS 上的用戶數據庫,選擇 任務 > 備份...:

然后,我們選擇備份類型(我們選擇了完整備份)和備份文件的名稱:

備份完成后,我們再次運行之前的查詢,可以看到backupset表現在返回了數據。它包含已執(zhí)行備份的記錄:

如果我們想要獲取在實例上執(zhí)行的備份的更詳細信息,可以運行關于備份表的關聯查詢。例如,下面的查詢返回實例上成功完成的每個備份的數據庫名稱、備份文件名和路徑、備份類型、大小、開始和完成日期:

USE msdb
GO

SELECT bs.database_name, bmf.physical_device_name,
CASE bs.type WHEN 'D' THEN 'FULL'
WHEN 'I' THEN 'DIFFERENTIAL'
WHEN 'L' THEN 'TRNSACTION LOG'
ELSE bs.type
END AS BackupType,
bs.backup_size AS BackupSizeInBytes,
bs.backup_start_date, backup_finish_date
FROM
backupmediafamily bmf
INNER JOIN
msdb.dbo.backupset bs
ON bmf.media_set_id = bs.media_set_id

示列如下:

2、msdb 數據庫包含 SQL Server 代理作業(yè)相關信息

SQL Server 代理作業(yè)的信息也存儲在 msdb 數據庫中。例如,通過使用下面的查詢,我們可以檢索當前實例上作業(yè)的一些詳細信息:

USE msdb
GO

SELECT j.name,
jh.run_date,
jh.step_name,
jh.run_time,
jh.run_duration
FROM
sysjobs j
INNER JOIN
sysjobhistory jh
ON j.job_id = jh.job_id

我們使用msdb 數據庫的sysjobs和sysjobhistory表來查看實例中的作業(yè)執(zhí)行歷史記錄。結果為空,這意味著還沒有作業(yè)歷史記錄:

3、 msdb 數據庫包含用于創(chuàng)建作業(yè)、步驟、計劃等存儲過程

上面,我們使用 SSMS 可視化界面創(chuàng)建了一個作業(yè)。也可以使用相應的存儲過程通過 T-SQL 代碼創(chuàng)建作業(yè)。這些過程存儲在 msdb 數據庫中。為了更好地理解我們正在談論的存儲過程,讓我們生成上面創(chuàng)建的作業(yè)的創(chuàng)建腳本。我們右鍵單擊作業(yè)名稱,選擇Script Job as > CREATE To > New Query Editor Window:

在新的查詢窗口中,我們可以看到用于創(chuàng)建作業(yè)的完整腳本。為了輕松找到并突出顯示腳本中使用的 msdb 數據庫的存儲過程,我們只需在搜索框中 鍵入msdb :

由此可見,msdb數據庫的sp_add_job和sp_add_jobstep 存儲過程是用來創(chuàng)建作業(yè)和作業(yè)步驟的。我們可以通過在 msdb 數據庫的Programmability > Stored Procedures > System Stored Procedures下,找到這些存儲過程的代碼, 然后右鍵單擊其中一個并選擇 Modify:

這些過程只是與作業(yè)相關的存儲過程的兩個示例。在 msdb 中還有其他處理作業(yè)的過程,例如刪除作業(yè)和作業(yè)步驟、獲取 SQL Server 代理作業(yè)相關信息等過程。

4、msdb 數據庫包含與維護計劃相關的信息,但不在“sysdbmaintplan_”表中

維護計劃相關信息存儲在 msdb 數據庫中。讓我們創(chuàng)建一個維護計劃并查看相關信息的存儲位置。在 SSMS 中,我們使用維護計劃向導創(chuàng)建一個新的維護計劃:

我們選擇一個備份數據庫(完整)任務作為示例,并為兩個數據庫創(chuàng)建一個備份數據庫任務:

創(chuàng)建好維護計劃后,我們在msdb中查找相應的信息。當我們展開msdb 數據庫下的“System Tables” 時,我們可以看到一些以“sysdbmaintplan_”開頭的表。這可能會令人困惑,因為一方面,顧名思義,這些表應該包含維護計劃相關的數據,但另一方面,當我們查詢這些表時,它們是空的:

USE msdb
GO
SELECT * FROM sysdbmaintplans
SELECT * FROM sysdbmaintplan_databases
SELECT * FROM sysdbmaintplan_jobs
SELECT * FROM sysdbmaintplan_history

即使我們執(zhí)行了維護計劃,我們也可以看到這些表中沒有相關信息:

這是因為從 SQL Server 2005 開始,這些表中的數據沒有更改,它們的存在只是為了保留現有信息,以防從舊版本升級。根據微軟的說法,上述表將在 SQL Server 的未來版本中進行剔除。但是,可以在 SSIS 包相關表中找到有關維護計劃的信息。由于任何維護計劃都會創(chuàng)建一個由 SQL Server 代理作業(yè)運行的 SSIS 包,如果我們查詢 msdb 數據庫中的sysssispackages和sysssispackagefolders 表,我們可以在那里找到有關我們的維護計劃的信息:

USE msdb
GO
SELECT * FROM sysssispackages

SELECT * FROM sysssispackagefolders

在結果集中,上面創(chuàng)建的維護計劃相關信息以紅色突出顯示:

5、msdb 數據庫包含與日志傳送相關的信息

日志傳送相關信息和存儲過程也存儲在 msdb 數據庫中。如果我們使用“l(fā)og_shipping”關鍵字過濾msdb數據庫的系統(tǒng)表,我們可以看到日志傳送相關的表:

如果我們在系統(tǒng)存儲過程中使用相同的關鍵字,我們可以找到配置和監(jiān)控日志傳送的存儲過程:

結論

綜上所述,在本文中,我們論述了 msdb 數據庫的一些重要特性。我們看到備份恢復相關信息以及 SQL Server 代理作業(yè)、維護計劃和日志傳送相關信息都存儲在 msdb 中。此外,在 msdb 庫中還有用于實現和監(jiān)控不同數據庫任務的存儲過程,例如創(chuàng)建 SQL Server 代理作業(yè)或配置日志傳送等。

責任編輯:姜華 來源: 博客園
相關推薦

2022-09-27 21:22:02

SQL Server數據庫

2022-10-13 21:07:48

數據庫SQL Server

2010-11-09 16:29:39

SQL Server死

2022-09-05 17:09:55

SQL Server數據庫

2022-08-26 17:22:12

SQL數據庫

2022-09-22 19:09:11

SQL Server數據庫

2022-09-22 22:51:32

Master數據庫

2010-03-16 10:12:40

SQL Server

2010-07-15 17:28:50

SQL Server

2011-08-15 15:40:57

SQL Server 系統(tǒng)數據庫

2010-07-07 14:53:04

SQL Server數

2010-11-08 14:02:40

SQL Server系

2010-10-21 16:33:55

sql server系

2010-11-10 15:07:40

sql server系

2010-07-08 11:05:14

SQL Server數

2010-06-30 08:46:51

升級SQL Serve

2010-10-21 15:13:20

SQL Server系

2011-03-07 13:27:13

SQLCase

2010-06-29 17:56:47

正確升級SQL Ser

2010-11-10 14:54:24

SQL Server系
點贊
收藏

51CTO技術棧公眾號