匯入大型集合

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

針對數據遷移工具警告的資料庫太大,需要不同的數據封裝方法才能遷移至 Azure DevOps Services。 如果您不確定集合是否超過大小閾值,您應該在集合上執行數據遷移工具驗證。 驗證可讓您知道是否需要使用 SQL Azure VM 方法來匯入。

判斷您是否可以減少集合大小

在繼續之前,建議您先檢查以查看是否可以清除數據。 一段時間后,集合可以建置大量數據。 此成長是 DevOps 程式的自然部分,但您可能會發現您不需要保留所有數據。 不再相關數據的一些常見範例是較舊的工作區和建置結果。

清除較舊的、不再相關的成品可能會移除比您預期更多的空間,而且可以判斷您是否使用 DACPAC 匯入方法或 SQL Azure VM。

重要

刪除較舊的數據之後,除非您還原集合的較舊備份, 否則無法 復原。

如果您處於 DACPAC 閾值之下,請遵循指示來 產生要匯入的 DACPAC 。 如果您仍然無法在 DACPAC 閾值下取得資料庫,您必須設定 SQL Azure VM 以匯入至 Azure DevOps Services。

設定 SQL Azure VM 以匯入至 Azure DevOps Services

讓我們逐步解說如何完成此作業。 概括而言,您將:

  • 設定 SQL Azure VM。
  • (選擇性)僅限制對 Azure DevOps Services IP 的存取。
  • 設定IP防火牆例外狀況。
  • 在 VM 上還原資料庫。
  • 設定要匯入的集合。
  • 將匯入規格檔案設定為以 VM 為目標

設定 SQL Azure VM

只要按幾下滑鼠,您就可以從 Azure 入口網站 設定 SQL Azure VM。 若要瞭解如何,請參閱使用 Azure 入口網站 搭配 SQL Server 布建 Windows 虛擬機。

注意

設定 SQL Azure VM 時,請記住,VM 和鏈接資料磁碟的效能將對匯入的效能產生重大影響。 基於這個理由,我們 強烈建議

  • 在D8s_v5_* 或更新層級選取 VM 大小
  • 使用受控磁碟
  • 諮詢 虛擬機和磁碟效能。 請確定您的基礎結構已設定,如此一來,VM IOPS 或記憶體 IOPS 都不會成為匯入效能的瓶頸。 例如,確保連結至 VM 的數據磁碟數目足以支援來自 VM 的 IOPS。

Azure DevOps Services 可在全球各地的數個 Azure 區域中取得。 下表可看到這些專案。

重要

為了確保匯入成功啟動,請務必將數據放在正確的區域中。 如果您在下表所列區域以外的位置設定 SQL Azure VM,匯入將無法啟動。

如果您使用這個匯入方法,請參閱下表,以判斷建立 SQL Azure VM 的位置。 不支援在此清單中建立 VM 以外的區域來執行匯入。

所需的匯入區域 SQL Azure VM 區域
中央 美國 美國中部
西歐 西歐
澳大利亞東部 澳大利亞東部
巴西南部 巴西南部
印度南部 印度南部
加拿大中部 加拿大中部
亞太地區 東南亞 (新加坡)
英國南部 英國南部

雖然 Azure DevOps Services 適用於美國多個區域,但只有 Central 美國 區域接受新的組織。 公司目前無法將其數據匯入其他美國 Azure 區域。

注意

DACPAC 客戶應參閱<步驟 3:上傳 DACPAC 檔案>一節中的區域數據表。 上述指導方針僅適用於 SQL Azure VM。

以下是一些建議的 SQL Azure VM 組態:

  • 將 SQL 暫存資料庫 設定為使用磁碟驅動器 C 以外的磁碟驅動器。在理想情況下,磁碟驅動器應該有足夠的可用空間;至少相當於資料庫 最大的數據表
  • 如果您在縮小源資料庫大小仍然超過 1 TB,您需要附加額外的 1 TB 磁碟,並將其合併成單一分割區,以在 VM 上還原資料庫。
  • 如果您的集合資料庫大小超過 1 TB,請考慮針對暫存資料庫和收集資料庫使用 SSD。 此外,請考慮使用具有16個虛擬CPU和128 GB RAM的大型VM。
  • 您必須有公用的IP位址,服務才能連線到這部計算機。

僅限制對 Azure DevOps Services IP 的存取

如需詳細資訊,請參閱僅限 Azure DevOps Services IP 的存取權頁面。

在 VM 上還原資料庫

設定並設定 Azure VM 之後,您必須將卸離備份從 Azure DevOps Server 實例移至 Azure VM。 Azure 有 數個記載的方法 可協助您完成這項工作。 集合資料庫必須在 SQL 實例上還原,而且不需要在 VM 上安裝 Azure DevOps Server。

設定要匯入的集合

在 Azure VM 上還原集合資料庫之後,請設定 SQL 登入以允許 Azure DevOps Services 連線到資料庫以匯入數據。 此登入只 允許單一資料庫的讀取 許可權。

若要啟動,請在 VM 上開啟 SQL Server Management Studio,然後針對要匯入的資料庫開啟新的查詢視窗。

將資料庫的復原設定為簡單:

ALTER DATABASE [<Database name>] SET RECOVERY SIMPLE;

建立資料庫的 SQL 登入,並指派該登入 『TFSEXECROLE』:

USE [<database name>]
CREATE LOGIN <pick a username> WITH PASSWORD = '<pick a password>'
CREATE USER <username> FOR LOGIN <username> WITH DEFAULT_SCHEMA=[dbo]
EXEC sp_addrolemember @rolename='TFSEXECROLE', @membername='<username>'

在 Fabrikam 範例之後,這兩個 SQL 命令會是:

ALTER DATABASE [Foo] SET RECOVERY SIMPLE;

USE [Foo]
CREATE LOGIN fabrikam WITH PASSWORD = 'fabrikamimport1!'
CREATE USER fabrikam FOR LOGIN fabrikam WITH DEFAULT_SCHEMA=[dbo]
EXEC sp_addrolemember @rolename='TFSEXECROLE', @membername='fabrikam'

注意

請務必在 VM 上的 SQL Server Management Studio 中啟用 SQL Server 和 Windows 驗證 模式。 如果您未啟用驗證模式,匯入將會失敗。

將匯入規格檔案設定為以 VM 為目標

更新匯入規格檔案,以包含如何連線到 SQL Server 實例的相關信息。 開啟您的匯入規格檔案,並進行下列更新:

  1. 從來源檔案物件中移除 DACPAC 參數。

    變更前的匯入規格會顯示在下列程式代碼中:

    變更前匯入規格的螢幕快照。

    變更之後的匯入規格會顯示在下列程式代碼中:

    變更之後匯入規格的螢幕快照。

  2. 填寫必要的參數,並在規格檔案中的來源物件中新增下列屬性物件。

    "Properties":
    {
        "ConnectionString": "Data Source={SQL Azure VM Public IP};Initial Catalog={Database Name};Integrated Security=False;User ID={SQL Login Username};Password={SQL Login Password};Encrypt=True;TrustServerCertificate=True" 
    }
    

在 Fabrikam 範例套用變更之後,匯入規格看起來會像下面這樣:

參考 SQL Azure VM 的匯入規格螢幕快照。

您的匯入規格現在已設定為使用 SQL Azure VM 進行匯入。 繼續進行其餘準備步驟,以匯入至 Azure DevOps Services。 匯入完成後,請務必刪除 SQL 登入或輪替密碼。 匯入完成後,Microsoft 不會保留登入資訊。