閱讀英文

共用方式為


針對 SSIS Integration Runtime 中的套件執行進行疑難排解

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用 (部分機器翻譯)!

本文包含在 SSIS Integration Runtime 中執行 SQL Server Integration Services (SSIS) 套件時,可能會發現的最常見錯誤。 其描述可能的原因與解決錯誤的動作。

一般

疑難排解記錄位於何處

使用 Azure Data Factory 入口網站可查看 SSIS 套件執行活動的輸出。 輸出包含執行結果、錯誤訊息,以及作業識別碼。 如需詳細資料,請參閱監視管線

SSIS 類別目錄 (SSISDB) 可用來查看執行的詳細記錄。 如需詳細資料,請參閱監視執行中的套件與其他作業

常見錯誤、原因和解決方案

錯誤訊息:「已超過連線逾時」或「服務在處理您的要求時發生錯誤。 然後再試一次。 "

以下是可能的原因與建議的動作:

  • 資料來源或目的地已超載。 請檢查資料來源或目的地的負載,確認是否有足夠的容量。 例如,若您使用 Azure SQL Database,建議在資料庫可能逾時的情況下考慮擴增。
  • SSIS Integration Runtime 與資料來源或目的地之間的網路不穩定,尤其是跨區域連線或在內部部署與 Azure 之間連線時。 請遵循下列步驟,在 SSIS 套件中套用重試模式:
    • 請確定您的 SSIS 套件可在失敗時重新執行,且不會有副作用 (例如資料遺失或資料重複)。
    • 在 [一般] 索引標籤中,設定 [執行 SSIS 套件活動] 的 [重試] 和 [重試間隔]在 [一般] 索引標籤上設定屬性
    • 若是 ADO.NET 與 OLE DB 來源或目的地元件,請在 SSIS 套件或 SSIS 活動的連線管理員中,設定 ConnectRetryCountConnectRetryInterval

此問題通常表示資料來源或目的地無法從 SSIS 整合執行階段中存取。 原因可能有所不同。 請嘗試下列動作:

  • 確定您已正確地傳遞資料來源或目的地名稱/IP。
  • 確定已正確設定了防火牆。
  • 若您的資料來源或目的地位於內部部署環境,請確定您的虛擬網路已正確設定:
    • 您可以藉由在相同的虛擬網路中佈建 Azure VM,來確定問題是否來自虛擬網路設定。 然後檢查是否可以從 Azure VM 存取資料來源或目的地。
    • 您可以在將 Azure-SSIS Integration Runtime 加入虛擬網路中,找到有關搭配 SSIS Integration Runtime 一起使用虛擬網路的詳細資料。

錯誤訊息:「ADO NET 來源無法取得連線 '...'」和「無法建立受控連線管理員。 "

可能的原因是套件中所使用的 ADO.NET 提供者,並未安裝在 SSIS Integration Runtime 中。 您可以使用自訂安裝來安裝提供者。 您可以在 Azure-SSIS Integration Runtime 的自訂安裝中,找到關於更多自訂安裝的詳細資料。

錯誤訊息:「找不到連線 '...'」

舊版 SQL Server Management Studio (SSMS) 中的已知問題可能會造成此錯誤。 如果使用 SSMS 進行部署的機器上未安裝套件中包含的自訂元件 (例如:SSIS Azure Feature Pack 或合作夥伴元件),則 SSMS 會移除該元件並造成錯誤。 請將 SSMS 升級至已修正該問題的最新版本。

錯誤訊息:「SSIS 執行程式結束代碼:-1073741819。 "

  • 可能的原因和建議的動作:
    • 發生此錯誤的原因可能是在多個執行緒中平行執行多個 Excel 來源或目的地時,受限於 Excel 的來源與目的地限制。 您可以變更 Excel 元件,以依序方式執行,或是透過已將 ExecuteOutOfProcess 屬性設定為 True 的「執行套件工作」,將多個 Excel 來源或目的地分成不同的套件工作並加以觸發,藉此解決此限制問題。

錯誤訊息:「磁碟空間不足」

此錯誤表示本機磁碟已用完了 SSIS Integration Runtime 節點。 請檢查您的套件或自訂安裝是否消耗了大量的磁碟空間:

  • 若您的套件消耗掉了磁碟空間,則在執行完套件之後,將會釋放磁碟空間。
  • 若是自訂安裝消耗掉了磁碟空間,則必須停止 SSIS Integration Runtime,並修改您的指令碼,然後再次啟動 Integration Runtime。 您針對自訂安裝所指定的整個 Azure Blob 容器,將會複製到 SSIS Integration Runtime 節點,因此請檢查該容器下是否有任何不必要的內容。

錯誤訊息:「無法從 master 擷取資源。 Microsoft.SqlServer.IntegrationServices.Scale.ScaleoutContract.Common.MasterResponseFailedException: Code:300004。 描述:載入檔案 "***" 失敗。 "

  • 可能的原因和建議的動作:
    • 若 SSIS 活動正在從檔案系統 (套件檔案或專案檔) 執行套件,則在無法使用您在 SSIS 活動中所提供的套件存取認證來存取專案、套件或設定檔時,就會發生此錯誤
      • 若您使用 Azure 檔案:
        • 檔案路徑應以 \\<storage account name>.file.core.windows.net\<file share path> 為開頭
        • 網域應為 "Azure"
        • 使用者名稱應為<儲存體帳戶名稱>
        • 密碼應為<儲存體存取金鑰>
      • 若您使用內部部署檔案,請檢查是否已正確設定 VNet、套件存取認證與權限,讓 Azure-SSIS Integration Runtime 可以存取內部部署檔案共用

錯誤訊息:「在連線中指定的檔案名稱 '...' 無效」

  • 可能的原因和建議的動作:
    • 指定了無效的檔案名稱
    • 請確定您在連線管理員中使用的是 FQDN (完整網域名稱),而不是簡短的時間

錯誤訊息:「無法開啟檔案 '...'」

當套件執行在 SSIS Integration Runtime 的本機磁碟中找不到檔案時,就會發生此錯誤。 請嘗試下列動作:

  • 請勿在執行於 SSIS Integration Runtime 中的套件中,使用絕對路徑。 請改用目前的執行工作目錄 (.) 或暫存資料夾 (%TEMP%)。
  • 若需要將某些檔案保存在 SSIS Integration Runtime 節點上,請依自訂安裝中所述來準備檔案。 執行完成之後,將會清除工作目錄中的所有檔案。
  • 請使用 Azure 檔案儲存體,而不是將檔案儲存於 SSIS Integration Runtime 節點中。 如需詳細資料,請參閱使用 Azure 檔案共用

錯誤訊息:「資料庫 'SSISDB' 已達其大小配額」

可能的原因是,在 Azure SQL Database 或 SQL 受控執行個體中建立的 SSISDB 資料庫,已達其配額。 請嘗試下列動作:

錯誤訊息:「資料庫的要求限制為...,且已達到其限制。 "

如果在 SSIS Integration Runtime 中平行執行了許多套件,則因為 SSISDB 已到達其要求限制,所以可能會發生此錯誤。 請考慮加大 SSISDB 的 DTU 以解決此問題。 您可以在邏輯伺服器的 SQL Database 限制中找到詳細資料。

錯誤訊息:「SSIS 作業失敗,發生非預期的作業狀態:...」

此錯誤大多是因為暫時性問題所致,所以請嘗試重新執行套件執行。 請遵循下列步驟,在 SSIS 套件中套用重試模式:

  • 請確定您的 SSIS 套件可在失敗時重新執行,且不會有副作用 (例如資料遺失或資料重複)。
  • 在 [一般] 索引標籤中,設定 [執行 SSIS 套件活動] 的 [重試] 和 [重試間隔]在 [一般] 索引標籤上設定屬性
  • 若是 ADO.NET 與 OLE DB 來源或目的地元件,請在 SSIS 套件或 SSIS 活動的連線管理員中,設定 ConnectRetryCountConnectRetryInterval

錯誤訊息:「沒有任何作用中的背景工作。 "

此錯誤通常表示 SSIS Integration Runtime 的狀態不良。 請檢查 Azure 入口網站的狀態與詳細錯誤。 如需詳細資訊,請參閱 Azure SSIS Integration Runtime

錯誤訊息:「因為我們無法存取您針對自訂安裝所提供的 Azure Blob 容器,所以無法升級您的 Integration Runtime,而且最終將會停止運作。 "

當 SSIS Integration Runtime 無法存取針對自訂安裝所設定的儲存體時,就會發生此錯誤。 檢查您提供的共用存取簽章 (SAS) URI 是否有效且尚未到期。

錯誤訊息:「Microsoft OLE DB Provider for Analysis Services。 'HRESULT:0x80004005 描述:' COM 錯誤:COM 錯誤:mscorlib;叫用的目標已擲回例外狀況」

其中一個可能的原因是已為 Azure Analysis Services 驗證,設定了已啟用 Microsoft Entra 多重要素驗證的使用者名稱或密碼。 SSIS Integration Runtime 不支援此驗證。 請嘗試使用服務主體進行 Azure Analysis Services 驗證:

  1. 使用服務主體進行自動化中所述,來準備服務主體。

  2. 在連線管理員中,設定 [使用特定的使用者名稱與密碼]:將 app:<AppID>@<TenantID> 設定為使用者名稱,並將 clientSecret 設定為密碼。 以下是格式正確的使用者名稱範例:

    app:12345678-9012-3456-789a-bcdef012345678@9abcdef0-1234-5678-9abc-def0123456789abc

  3. 在連線管理員中,設定 [使用特定的使用者名稱與密碼]:將 AppID 設定為使用者名稱,並將 clientSecret 設定為密碼。

錯誤訊息:「ADONET 來源無法取得連線 {GUID},出現下列錯誤訊息:使用受控識別時,使用者 'NT AUTHORITY\ANONYMOUS LOGON' 登入失敗」

當參數 ConnectUsingManagedIdentityTrue 時,請確定您未將連線管理員的驗證方法設定為 Active Directory 密碼驗證。 您可以將其改設定為當設有 ConnectUsingManagedIdentity 時,忽略的 [SQL 驗證]

錯誤訊息:「...的 0xC020801F,OData 來源 [...]:無法從執行階段連線管理員取得受控連線」

其中一個可能的原因是,OData 來源所需的 SSIS Integration Runtime 中,未啟用傳輸層安全性 (TLS)。 您可以使用自訂安裝,在 SSIS Integration Runtime 中啟用 TLS。 如需詳細資料,請參閱無法從 SSIS 連線至 Project Online OData,以及 Azure-SSIS Integration Runtime 的自訂安裝

錯誤訊息:「作業 guid 為 ... 的要求暫存工作失敗,因為發生錯誤:無法分派暫存作業,錯誤訊息:Microsoft.SqlServer.IntegrationServices.AisAgentCore.AisAgentException:無法載入資料 Proxy。 "

請確定您的 Azure-SSIS Integration Runtime 已設定有自我裝載整合執行階段。 如需詳細資料,請參閱將自我裝載 IR 設定為 ADF 中 Azure-SSIS IR 的 Proxy

錯誤訊息:「暫存工作狀態:失敗。 暫存工作錯誤:錯誤碼:2010,錯誤訊息:自我裝載整合執行階段...已離線」

確定已安裝並啟動您的自我裝載整合執行階段。 如需詳細資料,請參閱建立及設定自我裝載整合執行階段

錯誤訊息:「暫存工作錯誤:錯誤碼:2906,錯誤訊息:套件執行失敗。 輸出:{"OperationErrorMessages":「錯誤:要求的 OLE DB 提供者...未註冊。 若未安裝 64 位元驅動程式,請以 32 位元模式執行套件工作...」

確定您套件中 OLE DB 連接器所使用的對應提供者,已正確地安裝在自我裝載整合執行階段機器上。 如需詳細資料,請參閱將自我裝載 IR 設定為 ADF 中 Azure-SSIS IR 的 Proxy

錯誤訊息:「暫存工作錯誤:錯誤碼:2906,錯誤訊息:套件執行失敗。 輸出:{"OperationErrorMessages":「錯誤:System.IO.FileLoadException:無法載入檔案或組件 'Microsoft.WindowsAzure.Storage, Version=..., Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其中一個相依性。 找到的組件資訊清單定義,與組件參考.'... " 不符」

其中一個可能原因是您的自我裝載整合執行階段未正確安裝或升級。 建議您下載並重新安裝最新的自我裝載整合執行階段。 如需詳細資料,請參閱建立及設定自我裝載整合執行階段

錯誤訊息:「暫存工作失敗。 TaskStatus:失敗,錯誤碼:2906,錯誤訊息:套件執行失敗。 如需詳細資料,請選取在相同資料列上執行的活動輸出。」,輸出:{"OperationErrorMessages":「2021/4/14/ 早上 7:10:35 + 00:00 : = 無法啟動具名管道 Proxy...」

檢查是否已將安全性原則正確地指派給執行自我裝載 IR 服務的帳戶。 若要在執行 SSIS 套件活動上使用 Windows 驗證,或是在 SSIS 類別目錄 (SSISDB) 中設定了執行認證,則必須將相同的安全性原則指派給使用的 Windows 帳戶。 如需詳細資料,請參閱將自我裝載 IR 設定為 ADF 中 Azure-SSIS IR 的 Proxy

錯誤訊息:「要求中繼資料時,需要連線。 若為離線工作,請在 [SSIS] 功能表上取消選取 [離線工作] 以啟用連線

  • 可能的原因和建議的動作:

錯誤訊息:「暫存工作狀態:失敗。 暫存工作錯誤: 錯誤碼:2906,錯誤訊息:套件執行失敗。 輸出:{"OperationErrorMessages": "SSIS Executor exit code: -1.\n", "LogLocation": "...\SSISTelemetry\ExecutionLog\...", "effectiveIntegrationRuntime": "...", "executionDuration": ..., "durationInQueue": { "integrationRuntimeQueue": ... }} "

請確定自我裝載整合執行階段機器上已安裝了 Visual C++ 執行階段。 如需詳細資料,請參閱將自我裝載 IR 設定為 ADF 中 Azure-SSIS IR 的 Proxy

錯誤訊息:「從暫存資料環境讀取時逾時」

當以 SHIR 作為資料 Proxy 的 SSIS-IR 無法成功從暫存 Blob 讀取資料時,就會發生此錯誤。 通常是因為 SHIR 無法將內部部署資料傳送至暫存 Blob。 然後 SSIS-IR 嘗試讀取暫存資料失敗並發生逾時錯誤。 您必須檢查 C:\ProgramData\SSISTelemetry 資料夾中的 SHIR 記錄來取得執行階段記錄,以及檢察 C:\ProgramData\SSISTelemetry\ExecutionLog 資料夾來取得執行記錄,以便進一步調查為何 SHIR 尚未將資料成功上傳至暫存 Blob。

多個套件執行未預期地觸發

  • 可能的原因和建議的動作:
    • ADF 預存程序活動或查閱活動都可用來觸發 SSIS 套件執行。 T-SQL 命令可能會遇到暫時性問題,並觸發了重新執行,而如此會導致多個套件執行。
    • 請改用 ExecuteSSISPackage 活動,以確定除非活動中的使用者設定了重試計數,否則不會重新執行套件執行。 如需詳細資料,請參閱使用 Execute SSIS 套件活動,執行 SSIS 套件
    • 藉由檢查是否已觸發執行,來調整您的 T-SQL 命令以重新執行

套件執行的時間太長

以下是可能的原因與建議的動作:

  • SSIS Integration Runtime 上排定了過多的套件執行。 而所有這些執行全都在佇列中等候其執行的時間到來。
  • SSIS Integration Runtime 已停止或狀態不良。 如需了解如何檢查 SSIS Integration Runtime 狀態與錯誤,請參閱 Azure-SSIS Integration Runtime

我們也建議您在 [一般] 索引標籤上設定逾時:

在 [一般] 索引標籤上設定屬性 .

套件執行效能不佳

請嘗試下列動作:

  • 確定 SSIS Integration Runtime 是否與資料來源和目的地位於相同的區域中。

  • 將套件執行的記錄層級設定為 [效能],以收集執行中各項元件的持續時間資訊。 如需詳細資料,請參閱 Integration Service (SSIS) 記錄

  • 查看 Azure 入口網站中的 IR 節點效能:

    • 如需如何監視 SSIS Integration Runtime 的相關資訊,請參閱Azure-SSIS Integration Runtime
    • 您可以藉由檢視 Azure 入口網站中資料處理站的計量,找到 SSIS Integration Runtime 的 CPU/記憶體歷程記錄。 監視 SSIS 整合運行時間的計量