封裝的 SQL Server Agent 作業

適用于:Azure Data Factory 中的 SQL Server SSIS Integration Runtime

您可以使用 SQL Server Agent,將 SQL Server Integration Services 套件的執行自動化並排程。 您可以排程部署到 Integration Services 伺服器的封裝,並儲存在 SQL Server、SSIS 封裝存放區和檔案系統中。

注意

本文描述如何在一般情況下排程 SSIS 套件,以及如何在內部部署排程套件。 您也可以在下列平台上執行及排程 SSIS 套件:

在 SQL Server Agent 中排程作業

SQL Server Agent是SQL Server所安裝的服務,可讓您執行SQL Server Agent作業來自動化和排程工作。 SQL Server Agent服務必須先執行,才能自動執行作業。 如需詳細資訊,請參閱 Configure SQL Server Agent

當您連接到 SQL Server Database Engine 的實例時,SQL Server Agent節點會出現在 SQL Server Management Studio 物件總管 中。

若要自動化週期性工作,請使用 [新增作業] 對話方塊建立作業。 如需詳細資訊,請參閱 實作作業

建立作業後,您必須加入至少一個步驟。 作業可以包含多個步驟,且每個步驟都能執行不同的工作。 如需詳細資訊,請參閱 Manage Job Steps

在建立作業和步驟後,您就可以建立執行該作業的排程。 不過,您也可以建立以手動方式執行的未排程作業。 如需詳細資訊,請參閱 建立及附加排程至作業

透過設定通知選項可以加強作業,例如,指定作業完成時要向其傳送電子郵件的操作員,或加入警示。 如需詳細資訊,請參閱 警示

排程 Integration Services 封裝

當您建立SQL Server Agent作業來排程 Integration Services 套件時,必須新增至少一個步驟,並將步驟的類型設定為SQL Server Integration Services 封裝。 作業可以包含多個步驟,且每個步驟都能執行不同的封裝。

從作業步驟執行 Integration Services 套件就像是使用 dtexec (dtexec.exe) 和 DTExecUI (dtexecui.exe) 公用程式來執行封裝。 但不是透過使用命令列選項或 [執行封裝公用程式] 對話方塊來設定封裝的執行階段選項,而是在 [新增作業步驟] 對話方塊設定執行階段選項。 如需執行封裝之選項的詳細資訊,請參閱 dtexec 公用程式

如需詳細資訊,請參閱 使用 SQL Server Agent 排程封裝

如需示範如何使用 SQL Server Agent 來執行套件的影片,請參閱 MSDN Library 中的影片首頁:如何使用 SQL Server Agent (SQL Server Video) 自動化封裝執行

疑難排解

即使封裝在SQL SERVER DATA TOOLS (SSDT) 和命令列中順利執行,SQL Server Agent作業步驟仍無法啟動封裝。 此問題有一些常見的原因,以及數個建議的解決方案。 如需詳細資訊,請參閱下列資源。

在SQL Server Agent作業步驟啟動封裝之後,封裝執行可能會失敗,或封裝可能會成功執行,但會產生非預期的結果。 您可以使用下列工具對這些問題進行疑難排解。

  • 對於儲存在 SQL Server MSDB 資料庫、SSIS 封裝存放區或本機電腦上的資料夾中儲存的套件,您可以使用記錄檔檢視器,以及執行封裝期間所產生的任何記錄和偵錯傾印檔案。

    若要使用記錄檔檢視器,請執行下列操作。

    1. 在 物件總管 中以滑鼠右鍵按一下SQL Server Agent作業,然後選取 [檢視歷程記錄]。

    2. 利用 [訊息] 資料行中的 [作業失敗] 訊息,尋找 [記錄檔摘要] 方塊中的作業執行。

    3. 展開作業節點,然後選取作業步驟,以檢視 [ 記錄檔摘要 ] 方塊下方區域中訊息的詳細資料。

  • 對於儲存在 SSISDB 資料庫中的套件,您也可以使用 記錄檔檢視器 ,以及在執行封裝期間產生的任何記錄和偵錯傾印檔案。 此外,您也可以使用 Integration Services 伺服器的報表。

    若要在報表中尋找與作業執行相關聯之封裝執行的資訊,請執行下列操作。

    1. 依照上述步驟檢視作業步驟之訊息的詳細資料。

    2. 尋找訊息中列出的執行識別碼。

    3. 在 [物件總管] 中展開 [Integration Services 目錄] 節點。

    4. 以滑鼠右鍵按一下 [SSISDB],指向 [報表],然後按一下 [標準報表],然後選取 [所有執行]。

    5. 在 [所有執行] 報表中,於 [識別碼] 資料行中尋找執行識別碼。 選取 [ 概觀]、 [所有訊息]或 [ 執行效能 ],以檢視此封裝執行的相關資訊。

    如需 [概觀]、[所有訊息] 和 [執行效能] 報告的詳細資訊,請參閱 Integration Services 伺服器的報表

使用 SQL Server Agent 排程封裝

下列程式提供使用執行封裝的SQL Server Agent作業步驟,將封裝執行自動化的步驟。

使用 SQL Server Agent 自動化封裝執行

  1. 在 SQL Server Management Studio中,連接到您要在其中建立作業的SQL Server實例,或包含您要新增步驟之作業的實例。

  2. 展開 物件總管 中的 [SQL Server Agent] 節點,然後執行下列其中一項工作:

    • 若要建立新的作業,請以滑鼠右鍵按一下 [ 作業 ],然後選取 [ 新增作業]。

    • 若要將步驟新增至現有的作業,請展開 [ 作業],以滑鼠右鍵按一下作業,然後選取 [ 屬性]。

  3. 在 [ 一般 ] 頁面上,如果您要建立新的作業,請提供作業名稱、選取擁有者和作業類別目錄,以及選擇性地提供作業描述。

  4. 若要讓作業可用於排程,請選取 [已啟用]。

  5. 若要為您想要排程的套件建立作業步驟,請選取 [ 步驟],然後選取 [ 新增]。

  6. 選取 [Integration Services 封裝] 作為作業步驟類型。

  7. 在 [執行身分] 清單中,選取 [SQL Server Agent 服務帳戶] 或選取具有作業步驟將使用之認證的 Proxy 帳戶。 如需建立 Proxy 帳戶的資訊,請參閱 建立 SQL Server Agent Proxy

    使用 Proxy 帳戶而非SQL Server Agent 服務帳戶,可解決使用 SQL Server Agent 執行套件時可能發生的常見問題。 如需這些問題的詳細資訊,請參閱 Microsoft 知識庫文章:當您從SQL Server Agent作業步驟呼叫 SSIS 套件時,SSIS 套件不會執行

    • 使用 Proxy 執行作業時,必須有下列安全性專案,作業才能順利執行。

      Proxy 所使用的認證登入、執行SQL Server Agent的帳戶,以及執行SQL Server服務的帳戶需要下列許可權:

      • 本機安全性原則屬性:取代進程層級權杖
      • 完整控制 %SYSTEMROOT%\Temp

      未放在安全性項目中會導致作業失敗,並會顯示類似如下錯誤訊息:作業失敗。 用戶端不會保留必要的許可權。

      注意

      如果 Proxy 帳戶所使用認證的密碼變更,您就需要更新認證密碼。 否則,作業步驟將會失敗。

      如需設定SQL Server Agent服務帳戶的相關資訊,請參閱設定 SQL Server Agent (SQL Server 組態管理員) 的服務啟動帳戶

  8. 在 [ 封裝來源 ] 清單方塊中,選取套件的來源,然後設定作業步驟的選項。

    下表描述可能的封裝來源。

    封裝來源 描述
    SSIS 目錄 儲存在 SSISDB 資料庫中的封裝。 封裝包含在部署到 Integration Services 伺服器的 Integration Services 專案中。
    SQL Server 儲存在 MSDB 資料庫中的封裝。 您可以使用 Integration Services 服務來管理這些套件。
    SSIS 封裝存放區 儲存在您電腦上預設資料夾中的封裝。 預設資料夾為< drive >:\Program Files\Microsoft SQL Server\110\DTS\Packages。 您可以使用 Integration Services 服務來管理這些套件。

    注意:您可以藉由修改 Integration Services 的組態檔,指定不同的資料夾,或指定要由 Integration Services 服務管理之檔案系統中的其他資料夾。 如需詳細資訊,請參閱 Integration Services Service (SSIS Service)
    檔案系統 儲存在您本機電腦上任何資料夾中的封裝。

    下表描述根據您選取的封裝來源,可供作業步驟使用的組態選項。

    重要

    如果封裝受到密碼保護,當您按一下 [新增作業步驟] 對話方塊的 [一般] 頁面上的任何索引標籤時 ([封裝] 索引標籤除外),會需要在顯示的 [封裝密碼] 對話方塊中輸入密碼。 否則,SQL Server Agent作業將無法執行封裝。

    套件來源:SSIS 目錄

    索引標籤 選項。
    套件 Server

    輸入或選取主控 SSISDB 目錄之資料庫伺服器執行個體的名稱。

    SSIS 目錄 是套件來源時,您只能使用 Microsoft Windows 使用者帳戶登入伺服器。 SQL Server驗證無法使用。
    套件

    選取省略號按鈕,然後選取套件。

    您會在物件總管的 [Integration Services 目錄] 節點下,選取資料夾中的封裝。
    參數

    位於 [組態] 索引標籤上。
    [Integration Services 專案轉換精靈] 可讓您以參數取代封裝組態。

    [參數] 索引標籤會顯示您在設計套件時新增的參數,例如使用 SQL Server Data Tools (SSDT) 。 當您將 Integration Services 專案從封裝部署模型轉換成專案部署模型時,索引標籤也會顯示新增至封裝的參數。 輸入包含在封裝中之參數的新值。 您可以輸入常值,或使用包含在已對應至參數之伺服器環境變數中的值。

    若要輸入常值,請選取參數旁邊的省略號按鈕。 [編輯執行的常值] 對話方塊隨即出現。

    若要使用環境變數,請選取 [ 環境 ],然後選取包含您想要使用之變數的環境。

    **重要**如果您已將多個參數和/或連接管理員屬性對應至多個環境中所包含的變數,SQL Server Agent會顯示錯誤訊息。 對於某個特定執行,封裝只能藉由單一伺服器環境中包含的值執行。

    如需如何建立伺服器環境以及將變數對應至參數的資訊,請參閱部署 Integration Services (SSIS) 專案和套件
    連接管理員

    位於 [組態] 索引標籤上。
    變更連接管理員屬性的值。 例如,您可以變更伺服器名稱。 SSIS 伺服器上會自動產生連接管理員屬性的參數。 若要變更屬性值,您可以輸入常值,或使用包含在已對應至連接管理員屬性之伺服器環境變數中的值。

    若要輸入常值,請選取參數旁邊的省略號按鈕。 [編輯執行的常值] 對話方塊隨即出現。

    若要使用環境變數,請選取 [ 環境 ],然後選取包含您想要使用之變數的環境。

    **重要**如果您已將多個參數和/或連接管理員屬性對應至多個環境中所包含的變數,SQL Server Agent會顯示錯誤訊息。 對於某個特定執行,封裝只能藉由單一伺服器環境中包含的值執行。

    如需如何建立伺服器環境以及將變數對應至連線管理員屬性的資訊,請參閱部署 Integration Services (SSIS) 專案和套件
    進階

    位於 [組態] 索引標籤上。
    設定封裝執行的下列其他設定:
    屬性覆寫

    選取 [新增 ] 以輸入封裝屬性的新值、指定屬性路徑,並指出屬性值是否敏感。 Integration Services 伺服器會加密敏感性資料。 若要編輯或移除屬性的設定,請選取 [屬性覆寫] 方塊中的資料列,然後選取 [ 編輯 ] 或 [ 移除]。 您可以執行下列其中一個動作來尋找屬性路徑:

    -從 XML 組態檔 (*.dtsconfig) 檔案複製屬性路徑。 路徑會在檔案的 [組態] 區段中列出,做為 [路徑] 屬性的值。 以下是 MaximumErrorCount 屬性的路徑範例:\Package.Properties[MaximumErrorCount]

    -執行 [封裝組態精靈],並從最後的 [正在完成精靈] 頁面複製屬性路徑。 然後您就可以取消精靈。



    注意: [屬性覆寫 ] 選項適用于具有您從舊版 Integration Services 升級之組態的套件。 您使用 SQL Server 2019 Integration Services (SSIS) 建立的套件,並部署到 Integration Services 伺服器會使用參數,而不是組態。
    記錄層級

    選取下列其中一個封裝執行的記錄層級。 選取 [效能 ] 或 [ 詳細資訊 ] 記錄層級可能會影響封裝執行的效能。


    關閉記錄功能。 只記錄封裝執行狀態。

    基本
    記錄所有事件,自訂和診斷事件除外。 這是記錄層級的預設值。

    效能
    只記錄效能統計資料,以及 OnError 和 OnWarning 事件。

    詳細資訊
    記錄所有事件,包括自訂和診斷事件。

    您選取的記錄層級會決定在 SSISDB 檢視和 Integration Services 伺服器的報表中顯示的資訊。 如需詳細資訊,請參閱 Integration Services (SSIS) 記錄
    在發生錯誤時傾印

    指定在封裝執行期間發生任何錯誤時,是否產生偵錯傾印檔案。 這些檔案會包含有關封裝執行的資訊,可幫助您針對問題進行疑難排解。 當您選取此選項,並在執行期間發生錯誤時,Integration Services 會建立 .mdmp 檔案 (二進位檔案) 和 .tmp 檔案 (文字檔) 。 根據預設,Integration Services 會將檔案儲存在< 磁片磁碟機 > :\Program Files\Microsoft SQL Server\110\Shared\ErrorDumps 資料夾中。
    32 位元執行階段

    指出是否要在已安裝 64 位版本的 SQL Server 和 SQL Server Agent 的 64 位電腦上,使用 32 位版本的 dtexec 公用程式來執行套件。

    例如,如果您的套件使用 64 位版本無法使用的原生 OLE DB 提供者,您可能需要使用 32 位版本的 dtexec 來執行套件。 如需詳細資訊,請參閱 Integration Services 的 64 位元考量

    根據預設,當您選取SQL Server Integration Services 封裝作業步驟類型時,SQL Server Agent使用系統自動叫用的 dtexec 公用程式版本來執行封裝。 系統會根據電腦處理器叫用 32 位或 64 位版本的公用程式,以及電腦上執行的SQL Server和SQL Server Agent版本。

    套件來源:SQL Server、SSIS 套件存放區或檔案系統

    您可以針對儲存在 SQL Server、SSIS 封裝存放區或檔案系統中的封裝設定的許多選項,這些選項會對應至 dtexec 命令提示字元公用程式的命令列選項。 如需公用程式和命令列選項的詳細資訊,請參閱 dtexec 公用程式

    索引標籤 選項。
    套件

    這些是儲存在 SQL Server 或 SSIS 封裝存放區中的套件索引標籤選項。
    Server

    輸入或選取SQL Server或 Integration Services 服務的資料庫伺服器實例名稱。
    [使用 Windows 驗證]

    選取此選項即可使用 Microsoft Windows 使用者帳戶登入伺服器。
    [使用 SQL Server 驗證]

    當使用者透過不信任連接並指定登入名稱和密碼進行連接時,SQL Server 本身會執行驗證,檢查是否已建立 SQL Server 登入帳戶,而且指定的密碼是否符合先前記錄的密碼。 如果 SQL Server 找不到登入帳戶,驗證將會失敗,而且使用者會收到錯誤訊息。
    使用者名稱
    密碼
    套件

    選取省略號按鈕,然後選取套件。

    您會在物件總管的 [存放的封裝] 節點下,選取資料夾中的封裝。
    套件

    這些是儲存在檔案系統中之封裝的索引標籤選項。
    套件

    輸入封裝檔案的完整路徑,或選取省略號按鈕以選取套件。
    組態 加入 XML 組態檔,以特定組態執行封裝。 使用封裝組態在執行階段更新封裝屬性的值。

    此選項對應至 dtexec/ConfigFile選項。

    如需了解封裝組態套用的方式,請參閱< Package Configurations>。 如需如何建立封裝組態的資訊,請參閱 建立封裝組態
    命令檔 在另一個檔案中,指定要以 dtexec執行的其他選項。

    例如,您可以納入包含 /Dump errorcode 選項的檔案,以便在封裝執行過程中發生一個或多個指定的事件時,產生偵錯傾印檔案。

    您可以建立多個檔案,然後使用 [命令檔] 選項指定適當的檔案,藉此以不同的選項組合執行封裝。

    [命令檔] 選項對應至 dtexec/CommandFile 選項。
    資料來源 檢視包含在封裝中的連接管理員。 若要修改連接字串,請選取連線管理員,然後選取連接字串。

    此選項對應至 dtexec/Connection選項。
    執行選項 發生驗證警告時封裝就失敗
    指出是否將警告訊息視為錯誤。 如果您選取此選項,而在驗證期間發生警告,則封裝會在驗證期間失敗。 此選項對應至 dtexec/WarnAsError選項。

    驗證封裝但不執行
    指出在驗證階段之後,是否停止執行封裝 (並不會實際執行封裝)。 此選項對應至 dtexec/Validate選項。

    覆寫 MacConcurrentExecutables 屬性
    指定封裝可以同時執行的可執行檔數量。 值為 -1,表示封裝可以執行的最大可執行檔數目,等於執行封裝之電腦上的處理器總數再加 2。 此選項對應至 dtexec/MaxConcurrent選項。

    啟用封裝檢查點
    指出在執行封裝期間,封裝是否要使用檢查點。 如需詳細資訊,請參閱 使用檢查點來重新啟動封裝

    此選項對應于dtexec/CheckPointing選項。

    覆寫重新啟動選項
    指出是否為封裝上的 CheckpointUsage 屬性設定新值。 從 [重新啟動選項] 清單方塊中選取值。

    此選項對應至 dtexec/Restart選項。

    使用 32 位元執行階段
    指出是否在已安裝 64 位版本的 SQL Server 和 SQL Server Agent 的 64 位電腦上,使用 32 位版本的 dtexec 公用程式來執行套件。

    例如,如果您的套件使用 64 位版本無法使用的原生 OLE DB 提供者,您可能需要使用 32 位版本的 dtexec 來執行套件。 如需詳細資訊,請參閱 Integration Services 的 64 位元考量

    根據預設,當您選取SQL Server Integration Services 封裝作業步驟類型時,SQL Server Agent使用系統自動叫用的 dtexec 公用程式版本來執行封裝。 系統會根據電腦處理器叫用 32 位或 64 位版本的公用程式,以及電腦上執行的SQL Server和SQL Server Agent版本。
    Logging 讓記錄提供者與執行封裝產生關聯。

    文字檔的 SSIS 記錄提供者
    將記錄項目寫入 ASCII 文字檔中

    SQL Server 的 SSIS 記錄提供者
    將記錄項目寫入 MSDB 資料庫中的 sysssislog 資料表。

    SQL Server Profiler 的 SSIS 記錄提供者
    寫入您可以使用 SQL Server Profiler 檢視的追蹤檔。

    Windows 事件記錄檔的 SSIS 記錄提供者
    將記錄項目寫入 Windows 事件記錄檔中的應用程式記錄檔。

    XML 檔案的 SSIS 記錄提供者
    將記錄檔寫入 XML 檔案。

    針對文字檔、XML 檔案和SQL Server Profiler記錄提供者,您要選取封裝中包含的檔案連線管理員。 針對SQL Server記錄提供者,您選取封裝中包含的 OLE DB 連線管理員。

    此選項對應至 dtexec/Logger選項。
    設定值 覆寫封裝屬性設定。 在 [屬性] 方塊的 [屬性路徑] 和 [值] 資料行中輸入值。 在您輸入某個屬性的值之後,[屬性] 對話方塊中就會出現一個空白資料列,讓您輸入其他屬性的值。

    若要從 [屬性] 方塊中移除屬性,請選取資料列,然後選取 [ 移除]。

    您可以執行下列其中一個動作來尋找屬性路徑:

    -從 XML 組態檔 (*.dtsconfig) 檔案複製屬性路徑。 路徑會在檔案的 [組態] 區段中列出,做為 [路徑] 屬性的值。 以下是 MaximumErrorCount 屬性的路徑範例:\Package.Properties[MaximumErrorCount]

    -執行 [封裝組態精靈],並從最後的 [正在完成精靈] 頁面複製屬性路徑。 然後您就可以取消精靈。
    驗證 只執行簽署的封裝
    指出是否已檢查封裝簽章。 如果未簽署套件,或簽章無效,封裝就會失敗。 此選項對應至 dtexec/VerifySigned選項。

    確認封裝組建
    指出是否已對照此選項旁的 [組建] 方塊中所輸入的組建編號,驗證封裝的組建編號。 如果發生不相符的情況,封裝將不會執行。 此選項對應至 dtexec/VerifyBuild選項。

    確認封裝識別碼
    指出是否已驗證封裝的 GUID,方法是將它與此選項旁的 [封裝識別碼] 方塊中所輸入的封裝識別碼相比較。 此選項對應至 dtexec/VerifyPackageID選項。

    確認版本識別碼
    指出是否已驗證封裝的版本 GUID,方法是將它與此選項旁的 [版本識別碼] 方塊中所輸入的版本識別碼相比較。 此選項對應至 dtexec/VerifyVersionID選項。
    命令列 修改 dtexec 的命令列選項。 如需選項的詳細資訊,請參閱 dtexec 公用程式

    還原原始選項
    使用您在 [Job Set Properties (作業集屬性)] 對話方塊的 [封裝]、[組態]、[命令檔]、[資料來源]、[執行選項]、[記錄]、[設定值] 和 [驗證] 索引標籤中設定的命令列選項。

    手動編輯命令
    在 [命令列] 方塊中輸入其他命令列選項。

    選取 [確定] 以將變更儲存至作業步驟之前,您可以按一下 [還原原始選項],以移除您在[命令列] 方塊中輸入的所有其他選項。

    **提示** 您可以將命令列複製到 [命令提示字元] 視窗,新增 dtexec ,然後從命令列執行封裝。 這是產生命令列文字的簡單方式。
  9. 選取 [確定 ] 以儲存設定並關閉 [ 新增作業步驟 ] 對話方塊。

    注意

    對於儲存在 [SSIS 目錄] 中的封裝,如果有未解析的參數或連線管理員屬性設定,則 [確定] 按鈕會停用。 當您使用包含在伺服器環境變數中的值設定參數或屬性,而且符合下列其中一項條件時,未解析的設定就會發生。

    未選取 [組態] 索引標籤的 [環境] 核取方塊。

    [組態] 索引標籤上的清單方塊中未選取包含變數的伺服器環境。

  10. 若要建立作業步驟的排程,請在 [選取頁面] 窗格中選取 [排程]。 如需如何設定排程的資訊,請參閱 排程作業

    提示

    當您命名排程時,請考慮使用唯一且具描述性的名稱,以便更輕鬆地區分排程與其他SQL Server Agent排程。

另請參閱

執行專案和套件

外部資源