1

我的團隊幾乎全是新的,我們繼承了幾個自動化作業,我們幾乎沒有文檔(工作描述中沒有任何文檔)。我們有數百個在SQL Server代理和各種服務器上運行的自動化作業,因此我想開始記錄一些基本信息(這些作業是什麼時間安排的?他們通常需要多長時間?他們多久失敗一次?是執行時間長度是靜態還是增長?如果它是一個SSIS包,它位於哪裏以及它做了什麼?如果它是一個報告,它是否可以遷移到SSRS調度程序?)。如何有效地記錄SQL Server代理作業

我們在該地區的一所大學曾問我們是否可以利用任何實習生。儘管我們有很多工作,但我們無法授予非員工敏感數據的訪問權限。我正在考慮將數據庫恢復到另一臺服務器,並截斷敏感數據表,使系統數據庫保持完整,以記錄計劃任務。我不確定這是否是一個好主意,因爲我可能會花費盡可能多的時間來「保證」數據,因爲實際任務需要完成。有沒有人有這種類型的問題的任何創造性的解決方案?

也許是這樣的:

http://bradsruminations.blogspot.com/2011/04/documenting-your-sql-agent-jobs.html http://www.elsasoft.org/forum/topic.asp?TOPIC_ID=164

我想聽到任何反饋,其他人誰已經克服了這些類型的挑戰。我感謝您的幫助!!!

回答

0

我從來沒有使用過這個工具,但我聽說過一些關於Dataedo的好東西。 https://dataedo.com/

0

所有這些信息都存儲在MSSQL的表中,您可以通過查詢這些系統表來檢索信息。以下適用於SQL 2012以後,您可以使用下面的列表查詢作業,計劃等現在MSDN是在這裏成爲你的朋友。

  • dbo.sysalerts:每個警報都包含一行。
  • dbo.syscategories:包含SQL Server使用的類別 Management Studio用於組織作業,警報和操作員。
  • dbo.sysdownloadlist:包含所有 目標服務器的下載指令隊列。
  • dbo.sysjobactivity:包含有關當前的SQL Server 代理作業活動和狀態信息。
  • dbo.sysjobhistory:包含有關SQL Server代理執行 計劃作業的信息。
  • dbo.sysjobs:將每個計劃作業的信息存儲爲由SQL Server代理執行的 。
  • dbo.sysjobschedules:包含調度信息的職位是由SQL Server代理
  • dbo.sysjobservers執行 :存儲關聯或與一個或多個目標服務器中 特定工作的關係。
  • dbo.sysjobsteps:包含SQL Server代理執行的作業中每個步驟的信息爲 。
  • dbo.sysjobstepslogs:包含有關作業步驟日誌的信息。
  • dbo.sysnotifications:爲每個通知包含一行。
  • dbo.sysoperators:爲每個SQL Server代理運算符包含一行。
  • dbo.sysproxies:包含有關SQL Server代理代理 帳戶的信息。
  • dbo.sysproxylogin: SQL Server登錄與每個SQL Server代理帳戶的 相關聯的記錄。
  • dbo.sysproxysubsystem:記錄每個代理帳戶使用的SQL Server代理子系統是 。
  • dbo.sysschedules:包含有關SQL Server代理作業 計劃的信息。
  • dbo.syssessions:包含每個SQL的SQL Server代理程序開始日期 服務器代理程序會話。每次SQL Server代理服務啓動時都會創建一個會話。
  • dbo.syssubsystems:包含有關所有可用SQL Server的信息 代理代理子系統。
  • dbo.systargetservergroup成員:目標服務器的記錄是 目前已列入此多服務器組中。
  • dbo.systargetservergroups:目標服務器組的記錄是 目前已在此多服務器環境中登記。
  • dbo.systargetservers:目標服務器的記錄當前爲 已列入此多服務器操作域。
  • dbo.systaskids:包含在之前的 版本中創建的任務到當前的 版本中的Management Studio作業的映射。

BIG CAVEAT:這不會告訴你,如果該作業運行SQL腳本,那麼該作業會發生什麼。您需要查看腳本中的作業,然後添加說明。這就是爲什麼你第一次勤奮和注意細節。