共用方式為


設定 Azure-SSIS Integration Runtime 以達到商務持續性和災害復原 (BCDR)

適用於:Azure Data Factory Azure Synapse Analytics

提示

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

Azure SQL Database/受控執行個體和 Azure Data Factory (ADF) 或 Synapse Pipelines 中的 SQL Server Integration Services (SSIS) 可以結合為建議的所有平台即服務 (PaaS) 解決方案,以進行 SQL Server 移轉。 您可以將 SSIS 專案部署至 Azure SQL Database/受控執行個體裝載的 SSIS 目錄資料庫 (SSISDB),然後在 ADF 或 Synapse Pipelines 的 Azure SSIS 整合執行階段上執行您的 SSIS 套件。

為達到商務持續性和災害復原 (BCDR),Azure SQL Database/受控執行個體可以與異地複寫/容錯移轉群組搭配進行設定,將主要 Azure 區域中具有讀取/寫入權限的 SSISDB (主要角色) 持續複寫至次要區域中具有唯讀權限的 SSISDB (次要角色)。 當主要區域中發生災害時,會觸發容錯移轉,主要和次要 SSISDB 會交換角色。

為達到 BCDR,您還可以設定雙重待命 Azure SSIS IR 組合,與 Azure SQL Database/受控執行個體容錯移轉群組同步運作。 這樣可讓您在任何指定時間都有一組正在執行中的 Azure-SSIS IR,其中只有一個可以存取主要 SSISDB,擷取並執行套件以及寫入套件執行記錄 (主要角色),而另一個只能針對部署在其他地方 (例如 Azure 檔案儲存體) 的套件執行相同的動作 (次要角色)。 當發生 SSISDB 容錯移轉時,主要和次要 Azure-SSIS PR 也會交換角色,而且如果兩者都正在執行中,則停機時間近乎零。

本文說明如何設定 Azure-SSIS IR 搭配 Azure SQL Database/受控執行個體容錯移轉群組,以達到 BCDR。

設定雙重待命 Azure-SSIS IR 組合搭配 Azure SQL Database 容錯移轉群組

若要設定雙重待命 Azure-SSIS IR 組合,與 Azure SQL Database 容錯移轉群組同步運作,請完成以下步驟。

  1. 您可以利用 Azure 入口網站/ADF 使用者介面,建立新的 Azure-SSIS IR 搭配主要 Azure SQL Database 伺服器,在主要區域中裝載 SSISDB。 如果現存的 Azure-SSIS IR 已附加至主要 Azure SQL Database 伺服器所裝載的 SSIDB,而且正在執行中,則您必須先停止該 Azure-SSIS IR 運作,然後才能重新進行設定。 這會是主要 Azure-SSIS IR。

    在 [整合執行階段設定] 窗格的 [部署設定] 頁面上選取以使用 SSISDB 時,請同時選取 [使用雙重待命 Azure-SSIS 整合執行階段組合搭配 SSISDB 容錯移轉] 核取方塊。 在 [雙重待命組合名稱] 中輸入名稱,以識別主要和次要 Azure-SSIS IR 的組合。 主要 Azure-SSIS IR 建立完成之後,會啟動並附加至代表您建立、具有讀取/寫入權限的主要 SSISDB。 如果您剛重新設定,則您必須將其重新啟動。

  2. 您可以使用 Azure 入口網站,在主要 Azure SQL Database 伺服器的 [概觀] 頁面上,檢查是否已建立主要 SSISDB。 建立後,您可以在 [容錯移轉群組] 頁面上,針對您的主要和次要 Azure SQL Database 伺服器建立容錯移轉群組並將 SSISDB 新增至該群組。 建立容錯移轉群組後,您可以在次要 Azure SQL Database 伺服器的 [概觀] 頁面上,檢查是否已將主要 SSISDB 複寫至具有唯讀權限的次要 SSISDB。

  3. 您可以利用 Azure 入口網站/ADF UI,建立另一個 Azure-SSIS IR 搭配次要 Azure SQL Database 伺服器,以在次要區域中裝載 SSISDB。 這會是次要 Azure-SSIS IR。 為達完整的 BCDR,請確認次要區域中也已建立其所依賴的所有資源,例如儲存自訂安裝指令碼/檔案的 Azure 儲存體,協調/排程執行套件的 ADF 等等。

    在 [整合執行階段設定] 窗格的 [部署設定] 頁面上選取以使用 SSISDB 時,請同時選取 [使用雙重待命 Azure-SSIS 整合執行階段組合搭配 SSISDB 容錯移轉] 核取方塊。 在 [雙重待命組合名稱] 中輸入同一名稱,以識別主要和次要 Azure-SSIS IR 的組合。 次要 Azure-SSIS IR 建立完成之後,會啟動並附加至次要 SSISDB。

  4. 如果要在發生 SSISDB 容錯移轉時,使停機時間近乎零,請保持兩個 Azure-SSIS IR 為執行狀態。 只有主要 Azure-SSIS IR 可以存取 SSISDB,擷取並執行套件以及寫入套件執行記錄,而次要 Azure-SSIS IR 只能針對部署在其他地方 (例如 Azure 檔案儲存體) 的套件執行相同的動作。

    如果您想要將執行成本降到最低,您可以在建立後停止次要 Azure-SSIS IR。 發生 SSISDB 容錯移轉時,您的主要和次要 Azure-SSIS IR 會交換角色。 如果主要 Azure-SSIS IR 已停止,您必須將其重新啟動。 視是否已插入至虛擬網路以及使用的插入方法,主要 Azure-SSIS IR 會在 5 分鐘內或約 20 - 30 分鐘才能執行。

  5. 如果您使用 ADF 協調/排程執行套件,請確認所有相關 ADF 管線及「執行 SSIS 套件」的活動與相關聯的觸發程序已複製到您的次要 ADF 且觸發程序的初始狀態為停用。 發生 SSISDB 容錯移轉時,您必須加以啟用。

  6. 您可以測試您的 Azure SQL Database 容錯移轉群組,在 ADF 入口網站中的 Azure-SSIS IR 監視頁面上,檢查您的主要和次要 Azure-SSIS IR 是否有交換的角色。

設定雙重待命 Azure-SSIS IR 組合搭配 Azure SQL 受控執行個體容錯移轉群組

若要設定雙重待命 Azure-SSIS IR 組合,與 Azure SQL 受控執行個體容錯移轉群組同步運作,請完成以下步驟。

  1. 您可以使用 Azure 入口網站,在主要 Azure SQL 受控執行個體的 [容錯移轉群組] 頁面上,針對您的主要和次要 Azure SQL 受控執行個體建立容錯移轉群組

  2. 您可以利用 Azure 入口網站/ADF UI,建立新的 Azure-SSIS IR 搭配主要 Azure SQL 受控執行個體,在主要區域中裝載 SSISDB。 如果現存的 Azure-SSIS IR 已附加至主要 Azure SQL 受控執行個體所裝載的 SSIDB,而且正在執行中,則您必須先停止其運作,然後才能重新進行設定。 這會是主要 Azure-SSIS IR。

    在 [整合執行階段設定] 窗格的 [部署設定] 頁面上選取以使用 SSISDB 時,請同時選取 [使用雙重待命 Azure-SSIS 整合執行階段組合搭配 SSISDB 容錯移轉] 核取方塊。 在 [雙重待命組合名稱] 中輸入名稱,以識別主要和次要 Azure-SSIS IR 的組合。 主要 Azure-SSIS IR 建立完成之後,會啟動並附加至代表您建立、具有讀取/寫入權限的主要 SSISDB。 如果您剛重新設定,則您必須將其重新啟動。 您也可以在次要 Azure SQL 受控執行個體的 [概觀] 頁面上,檢查是否已將主要 SSISDB 複寫至具有唯讀權限的次要 SSISDB。

  3. 您可以利用 Azure 入口網站/ADF UI,建立另一個 Azure-SSIS IR 搭配次要 Azure SQL 受控執行個體,在次要區域中裝載 SSISDB。 這會是次要 Azure-SSIS IR。 為達完整的 BCDR,請確認次要區域中也已建立其所依賴的所有資源,例如儲存自訂安裝指令碼/檔案的 Azure 儲存體,協調/排程執行套件的 ADF 等等。

    在 [整合執行階段設定] 窗格的 [部署設定] 頁面上選取以使用 SSISDB 時,請同時選取 [使用雙重待命 Azure-SSIS 整合執行階段組合搭配 SSISDB 容錯移轉] 核取方塊。 在 [雙重待命組合名稱] 中輸入同一名稱,以識別主要和次要 Azure-SSIS IR 的組合。 次要 Azure-SSIS IR 建立完成之後,會啟動並附加至次要 SSISDB。

  4. Azure SQL 受控執行個體可以使用資料庫主要金鑰 (DMK) 加密並保護資料庫中的敏感性資料,例如 SSISDB。 依預設,DMK 本身會使用服務主要金鑰 (SMK) 依序進行加密。 自 2021 年 9 月起,SMK 會在建立容錯移轉群組期間,從主要複寫至次要 Azure SQL 受控執行個體。 如果在此之前已建立容錯移轉群組,請從次要Azure SQL 受控執行個體刪除所有使用者資料庫,包括 SSISDB,然後重新建立您的容錯移轉群組。

  5. 如果要在發生 SSISDB 容錯移轉時,使停機時間近乎零,請保持兩個 Azure-SSIS IR 為執行狀態。 只有主要 Azure-SSIS IR 可以存取 SSISDB,擷取並執行套件以及寫入套件執行記錄,而次要 Azure-SSIS IR 只能針對部署在其他地方 (例如 Azure 檔案儲存體) 的套件執行相同的動作。

    如果您想要將執行成本降到最低,您可以在建立後停止次要 Azure-SSIS IR。 發生 SSISDB 容錯移轉時,您的主要和次要 Azure-SSIS IR 會交換角色。 如果主要 Azure-SSIS IR 已停止,您必須將其重新啟動。 視是否已插入至虛擬網路以及使用的插入方法,主要 Azure-SSIS IR 會在 5 分鐘內或約 20 - 30 分鐘才能執行。

  6. 如果您使用 Azure SQL 受控執行個體代理程式協調/排程執行套件,請確認所有相關 SSIS 作業及其作業步驟與相關聯排程已複製到您的次要 Azure SQL 受控執行個體且排程的初始狀態為停用。 使用 SSMS 完成以下步驟。

    1. 針對每個 SSIS 作業,以滑鼠右鍵按一下並選取 [編寫作業的指令碼為]、[CREATE 至] 和 [新增查詢編輯器視窗] 下拉式功能表項目,產生其指令碼。

      Generate SSIS job script

    2. 針對每個產生的 SSIS 作業指令碼,尋找命令以執行 sp_add_job 預存程序,然後視需要將值指派修改/移除為 @owner_login_name 引數。

    3. 針對每個更新的 SSIS 作業指令碼,在您的次要Azure SQL 受控執行個體上執行以複製作業及其作業步驟與相關聯排程。

    4. 使用以下指令碼建立新的 T-SQL 作業,根據主要/次要 SSISDB 角色分別在主要和次要 Azure SQL 受控受控執行個體中啟用/停用 SSIS 作業排程,並定期執行。 發生 SSISDB 容錯移轉時,會啟用已停用的 SSIS 作業排程,以及停用已啟用的作業排程。

      IF (SELECT Top 1 role_desc FROM SSISDB.sys.dm_geo_replication_link_status WHERE partner_database = 'SSISDB') = 'PRIMARY'
         BEGIN
            IF (SELECT enabled FROM msdb.dbo.sysschedules WHERE schedule_id = <ScheduleID>) = 0
               EXEC msdb.dbo.sp_update_schedule @schedule_id = <ScheduleID >, @enabled = 1
         END
      ELSE
         BEGIN
            IF (SELECT enabled FROM msdb.dbo.sysschedules WHERE schedule_id = <ScheduleID>) = 1
               EXEC msdb.dbo.sp_update_schedule @schedule_id = <ScheduleID >, @enabled = 0
         END
      
  7. 如果您使用 ADF 協調/排程執行套件,請確認所有相關 ADF 管線及「執行 SSIS 套件」的活動與相關聯的觸發程序已複製到您的次要 ADF 且觸發程序的初始狀態為停用。 發生 SSISDB 容錯移轉時,您必須加以啟用。

  8. 您可以測試您的 Azure SQL 受控執行個體容錯移轉群組,在 ADF 入口網站中的 Azure-SSIS IR 監視頁面上,檢查您的主要和次要 Azure-SSIS IR 是否有交換的角色。

將新的 Azure-SSIS IR 附加至 Azure SQL Database/受控執行個體所裝載的現有 SSISDB

如果發生災害並影響您現有的 Azure-SSIS IR,而同一區域中的 Azure SQL Database/受控執行個體未受影響,則您可以將其取代為另一個區域中的新 Azure-SSIS IR。 若要將 Azure SQL Database/受控執行個體所裝載的現有 SSISDB 附加至新的 Azure-SSIS IR,請完成以下步驟。

  1. 如果您現有的 Azure-SSIS IR 仍在執行中,您必須先使用 Azure 入口網站/ADF UI 或 Azure PowerShell 停止該 Azure-SSIS IR。 如果災害也影響同一區域中的 ADF,您可以略過此步驟。

  2. 使用 SSMS,在 Azure SQL Database/受控執行個體中,針對 SSISDB 執行以下命令更新中繼資料,允許來自新 ADF/Azure-SSIS IR 的連線。

    EXEC [catalog].[failover_integration_runtime] @data_factory_name = 'YourNewADF', @integration_runtime_name = 'YourNewAzureSSISIR'
    
  3. 使用 Azure 入口網站/ADF UIAzure PowerShell,在另一個區域中分別建立新的 ADF/Azure-SSIS IR,名為 YourNewADF/YourNewAzureSSISIR。 如果您使用 Azure 入口網站/ADF UI,在 [整合執行階段設定] 窗格的 [部署設定] 頁面上,您可以忽略測試連線錯誤。

您可以考慮以下 Azure-SSIS 的其他設定選項: